Android non-Eclipse command line projects viable? - android

Let's say that I'm doing an Android project at the office, and that it is not just a hobby project, and that it is actually intended to be released and mass distributed. Would there be anything crippling about using the Android command line tools to manage the project, and just ignoring Eclipse? They describe here how to manage projects on the command line:
http://developer.android.com/guide/developing/projects/projects-cmdline.html
However, I can't get a feel for if those tools are production quality or not. Basically, I'm afraid that if I use the command line tools then somewhere down the line I'll have to do task "X", only to find out that task "X" is basically impossible or insanely difficult without Eclipse. Are there any such task X's? Or are the Android command line project tools actually viable for commercial projects?
I already know that you won't have a GUI designer, but I'm not that crazy about the GUI designer in Eclipse anyway. I constantly find myself pressing "Run Project" to debug my GUIs on the actual device anyway (layout preview be damned).
As for debugging, for the limited amount of debugging I do command line jdb is adequate, even if not always completely pleasant. And I bet I could set up a GUI debugger if I really had to.
The question is, are there any problems that would be considered effectively insurmountable without Eclipse? Or are there just minor annoyances that can be easily worked around (like the two I just mentioned above).
I realize that stack overflow isn't meant for discussion questions, and this question might seem like just that, but I think it doesn't have to be. If there really is something gigantically terrible about not using Eclipse, someone will mention it, and I'll give them the green check mark. If there isn't, then perhaps someone can point me to examples of existing large projects that use the command line tools instead of Eclipse, and I'll give that the green check mark instead.

Many people use Ant to build Android projects from the command line. Actually, in my opinion this is the preferred way, since it allows you to check everything that you need into a source control system and get predictable and repeatable builds every time.
So, the answer is "Yes"! Take a look at Using Ant to Automate Building Android article for more in-depth explanation how you manage this. Of course, using Eclipse is very convenient, but you don't really need it to build Android applications.

I use Maven for all of mine. See android-maven-plugin.

Related

Best way of version control, stable builds and exporting/ a project on multiple devices

today it's a shorter question I'd like to ask, to hear your opinions as I suppose some do this differently than others.
First of all,, I have an Android Studio project and am rather a novice on this subject of Android Development. That's why slight changes in the java or xml files could and did make my latest app unstable/ crashing.
Therefore I was asking myself wether Android Studio offers a way to backup stable builds - I could imagine this like a save-as option where you backup the working version and continue working on the the one but have a stable one backed up.
I know there's the export project function but I tried it out a couple of times and having worked on a project on the same device before, prior to reimporting a project causes an error and that's not the way I guess you should handle it in this situation.
I was looking at Google Cloud for using both version control and the option to commit new versions to the trunk and update them at a different location (different device). If that's the solution you propose, I need to look more closely into the documentation to get it up and running (set up the repository already but no clue how to commit changes/ versions).
So, long story short, what tool/ option do you prefer to have an export and a version control option unified for Android Studio?
Interested to hear and thankful for any advice on that!
There are multiple solutions,
Just find your solution/project in your file explorer and back it up, if you need it again just open the project with Android Studio. (not the most popular one)
Use a version control system like git. Link to tutorial (This is the most popular one), If u are unfamiliar with git, just google it and there are tons of examples and documentation. With git you can tag commits and after u mess up revert to the tagged commit
Git is the simpliest.
It's supported by AndroidStudio and later on you can upload your project to GitHub to access it from anywhere.
You can use it with terminal and shorcut keys, incons as well.
You also can make separate branches in order to make and test more versions parallely.
For more info take a look at: https://git-scm.com/about
and of course github: https://github.com/
Regards,
Cs

How to build and run Android-Eye

Lately, while attempting to build an interesting open source android-web streamer: Android-Eye, I noticed that several people, including myself have been stumped by process of building the application given that it contains c/c++ code that (I think) needs to be compiled by the android ndk before anything can work. The fact that the dev doesn't seem to be active anymore doesn't make this any easier.
I've been trying to get this to work for well over 3 days now and can say with full confidence that I do not posses the knowledge (especially for the ndk) to get this thing built. The long list of things i've tried is too extensive to be covered in this post but here are a few git issues posted by others that have experienced similar issues as me:
https://github.com/Teaonly/android-eye/issues/32
https://github.com/Teaonly/android-eye/issues/27
I understand that it may look as if I am asking to be "spoonfed" the process of building the application but a few pushes in the right direction would be excellent :)
BTW, I have access to windows and mac boxes incase that influences the build process.
Thanks

Qt android ndk - app crashes

I've been recently trying to make some very simple app in Qt, and yesterday it used to work correctly on both Desktop and Android (using android ndk, I know it's not good to make android apps in c++, but I just want to try).
Today, out of nowhere, application output says sth like this:
The only thing I've found was cleaning app's cache and data, restarting phone, rebuilding, none of these things worked
A Qt app has an array of used .so library names, somewhere in the resources.
On start-up, it loads all these .so libraries (via loadLibrary()).
The order in which the libraries are loaded is important: functions cannot
reference functions defined in libraries that have not yet been loaded. So implementing a circular dependency is tricky.
From the logs I see that
some function in libszachy_android_1.so (is it the right name? it's a bit strange) invokes srand() that has not yet been loaded; maybe, it is mentioned later in the load list, but loadLibrary() has no idea about the planned future.
Therefore, you get this.
If your code worked yesterday, you likely have made some changes. If you use version control, you likely can compare the today's and yesterday's versions and see the difference. Maybe, you have inserted a forward reference (in the load list sense). OTOH, sometimes both Eclipse and make cannot detect that the source has changed and make incorrect builds (I did observe this, but cannot reproduce). Did you try to uninstall the app from the phone? Did you try to remove all existing .so files in the build directories (rm *.so)?
Maybe, one of your .so modules is broken: sometimes an object is generated despite of errors and it may get used in subsequent builds (at least this is how I can explain the build glitches).
Maybe, you have no memory left on the device, and the .so could not be unpacked correctly.
I suggest examining the application directory with adb shell on a rooted device.
PS you posted a screenshot that is barely readable. Please replace it with the relevant portion of the adb logcat output (I hope you know how to use it; if not, the first thing to do is to learn adb logcat and adb shell).

Library based application installs 2 APK files, not one - Why?

I am trying to restructure an existing app so that, except for a few override-able methods in a derived activity, all code will reside in a library. This still doesn't work for some reason, but in the process of attempting to troubleshoot this, I discovered much to my dismay that there are two .apk files installed, not one (when I run a debug session from eclipse):
The first (and larger file) is
having the original library name.
The second (only 20KB in size) is
having the derived application name.
Why is that and where can I learn more about this?
Could that explain the ClassNotFoundException problem I am having?
I found the answer myself. It turns out that I had 2 critical settings in the Properties of both projects not set correctly:
In the library project, "Is Library"
was not checked for some reason. I
could swear that I checked it, but
knowing how whimsical the Android
development environment under
Eclipse can be, I suspect that it
was unchecked by Eclipse (or the ADT
plugin) as a result of some glitch.
In the application project, I
neglected to add my library project
as a reference via the Add...
button. (how dumb could I be?)
Hoping this can be useful for other newbies to come.

Benefits of switching from Eclipse to IntelliJ IDEA for Android development [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have been using Eclipse for Android development and don't have a problem with it (I also use it for Web Service and C++ development under Linux) but I want to give IntelliJ IDEA a go as it appears to have favourable reviews. This is easily possibly now that IDEA 10 has been released with Android support enabled in the Community Edition.
I have looked at IDEA and it looks pretty good to me with the only downside being the lack of UI on .xml file editing (AndroidManifest.xml for example) and the user interface builder provided with ADT 9.0.
Has anyone got experience they can share on IntelliJ IDEA and Android development?
EDIT: Thanks all; I'm sticking with Eclipse as I know it pretty well and it allows me to do pretty much anything (Java-related) I like for free. I shouldn't look a gift horse in the mouth!
The only benefit for me: You code as fast as formula 1 :). Really. If you're used to Resharper in .NET programming, then you will code as fast as in .NET. Even faster.
Bad thing: lack of some Eclipse's tools (browse my questions for details) and it seems that Eclipse's compiler--which you can use from IntelliJ as well--is better. Because of the lack of some tools you are forced to use many 3rd party tools.
The bottom line is: if you don't have problems with Eclipse, then stick to it. I hated Eclipse's slowness and that's why I moved to IntelliJ.
EDIT 23 Jan 2013
IntelliJ has improved a lot. They now have UI visual editor, a great connection to Android SDK and at this moment I can't really think of any feature which Eclipse has and IDEA does not have. What's better, I will say again that IDEA has more features than Eclipse.
EDIT 11 Mar 2014
Again IntelliJ improved. With its visual UI editor for XML layouts and itself being used as the base for Google's Android Studio, its still the best IDE around.
The only flaws for Android developer are IMHO:
it still does not perfectly import dependencies (libraries) so you have to fix things manually
it does not perfectly recognizes other projects (modules) which sometimes you have to add those modules manually
a support for Google Glass does not exist
All this is referring to when importing projects made in Eclipse, which happens very often to anyone working on multiple Android projects.
I have used both, they aren't that different. A lot of it is just what you are used to. Personally, if you aren't having any problems with Eclipse, I would not suggest switching. There are no advantages that are worth the learning curve.
I switched to IDEA for my android development.
Intellisense actually works
IDEA is much faster
The refactoring is nicely done, and the "inspections" catch a lot of places where refactoring would make sense
Things I miss:
The new Layout viewer from Android 3.0. I always modify the layout xml, but it's nice to be able to switch over and get an idea of what it will look like without running the app. I do load up eclipse for this reason when I do heavy layout editing.
Hover documentation. In intelliJ, you have to press ctrl+Q to get the javaDoc of an existing method call (vs intellisense popping up as you code).
I know eclipse is free, but come on, I don’t know how people actually use it to build software. I like open source as much as the next guy, I just like “high quality open source” which may be an oxymoron.
I want to get work done and not fight the tool no matter how free it is.
After 2 years of Android Development on Eclipse I finally give up. I hate it because:
1. Eclipse is slow.
2. Search and autocomplete is poor.
3. Require big among of memory.
4. Crashing and hanging constantly.
5. Correct or incorrect way of closing Eclipse may cause workspace and settings crash.
Eclipse: reminding me every time I use why I normally don't use it. -
Romain Guy
You can check some of interesting IntelliJ IDEA features here
Google has introduced new intellij-based IDE for android development (if you dont want to pay for intellij), you can find more info here http://developer.android.com/sdk/installing/studio.html
I am interested in this question too. For me, eclipse starts to be slow as more plugins installed: CDT, aptana, pydev, ADT....
IDEA seems like a light-weighted and interesting alternative. For the lacking of layout xml editing, you may do it with http://www.droiddraw.org/, or its desktop version. Pretty amazingly easy after reading the droiddraw tutorials.
I haven't got enough experience with IDEA, so cannot help a lot. Hope more people cast light on this issue.
Thanks,
Frank
I think Eclipse has all the features that an IDE should have these days.
But from my point of view it does everything on the wrong way (I am a Visual Studio fan).
After I tried IDEA, I had to realize that it can be customized to act nearly the same as VS, so it IS a very good IDE.
And the version 12 has UI editor for Android.
I can say that try to compare their IntelliSense (or whatever you call it), the debugger (including watches) and the editor. Much more better, smarter, faster for a daily use.
IDEA ultimate is not free, but if you would like to make money with programming I think you can make it easier with professional tools.
I would never pay for Eclipse.
As a new IDEA user I found the IDE to be somewhat overwhelming at first. The IDE contains more options than I thought possible and can bring into question - "Just how many checkboxes can you fit on a screen". Once the shock passed and I was able to complete a small project, I'm in love. Sorry Eclipse, but you were kind of flakey and would have unpredictable behavior. IDEA is rock solid.
As a programmer I want rock solid tools and sometimes the phrase "you get what you pay for" is valid.
Google's Android Studio is built on top of IDEA, assuming that it will be the "Official" developer tool when it reaches 1.0, it might be worth getting up to speed by learning IDEA.
It also has a "dark" theme built in so you don't have to mess around with Eclipse plugins.
Quick comparison
between eclipse 4.3.2 and intellij 13.0.2:
I will refer to intellij idea as I as an abbreviation below (e.g. I12 means intellij idea version 12)
Both are fine .
Pro Intellij are:
Faster compiler mode:(introduced in I12) exactly as with eclipse, now Intellij compiles everything continuously in the background and shows you files that doesn't compile with red zigzag. Exactly as Eclipse but less heavier and more responsive .
Android UI editor: (introduced in I11) even better than the one in eclipse ADT plugin: it shows more properties as android:layout_span ,i.e. Advanced properties that are hidden in Eclipse UI editor forcing you to edit them from Layout XML , can be easily editted from Intellij UI editor. Also while Eclipse UI editor hangs when selecting multiple components then editting one common property , this is extremely fast and easy in Intellij UI editor. It also can show you a preview while editing XML code, which you can't do in eclipse.
Best content assist : it auto completes when you enter next limiter (space or semicolon or brackets or dot ) you don't have to press enter then press the next limiter, exactly as Visual Studio Intellisense. Also Intellij puts most relevant result on top. another feature introduced in I12 is that it searches if matches are available from the middle not from start.
Fast: intellij is much faster than Eclipse. Eclipse 3.8 is slow and Eclipse 4.2 is even slower due some bugs, that were fixed gradually in Eclipse 4.2.1 and 4.2.2 releases .
more stable than eclipse. In Eclipse, A row of Layout properties editor may stick on screen while you scroll, a very bad UI glitch. Also Eclipse x64 crashes very frequently as compared with eclipse x86 or Intellij, may be because of bugs in JDK x64.
Add framework support:( New in I13) a wizard to add framework support
As of intellij 13, it has wizard like (New->Android-> Android Activity) as that in eclipse adt plugin , maybe the only difference is the intellij wizard may force you to a higher minimum SDK version, while eclipse doesn't .
Con Intellij:
Gradle: Android project wizard: (New in I13) when you create an app you can define in a gui wizerd : min sdk , target sdk , icons and theme (all these fills in the gap between eclipse and previous Is) and support mode ( an advantage over eclipse). Although this might be considered an advantage, gradle added so many errors to managing an android project, that intellij became not usable as before in intellij 12. most errors require either changing configuration and updating a maven repo from internet , or navigating to a folder and running a command from terminal.
Doesn't support NDK (Native Development Kit for development in C/C++)
I have been using IDEA for professional Android development for almost a year, it is much better than Eclipse because:
The IDE is much faster and stable
Excellent interface designer
Other good enhancements such color picker in XML, creating resource directories and creating String resources.
IDEA is much better for Android development and you will increase your productivity for sure, Google knows this, that is why Android Studio is built on top of IDEA

Categories

Resources