I'm trying to set up the android SDK to develop a simple program on the command line in Linux (Ubuntu 9.10). I tried eclipse, but it has know problems running on Ubuntu, so I gave up on it. Here's what I've done so far:
Available Android targets:
id: 1 or "android-3" Name: Android 1.5 Type: Platform API level: 3 Revision: 1 Skins: HVGA-P, HVGA (default), QVGA-P, QVGA-L, HVGA-L
id: 2 or "Google Inc.:Google APIs:3" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 3 Description: Android + Google APIs Based on Android 1.5 (API level 3) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
id: 3 or "android-4" Name: Android 1.6 Type: Platform API level: 4 Revision: 1 Skins: HVGA (default), WVGA800, WVGA854, QVGA
id: 4 or "Google Inc.:Google APIs:4" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 2 Description: Android + Google APIs Based on Android 1.6 (API level 4) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WVGA854, HVGA (default), QVGA, WVGA800
id: 5 or "android-6" Name: Android 2.0.1 Type: Platform API level: 6 Revision: 1 Skins: WQVGA432, HVGA (default), WVGA800, WVGA854, WQVGA400, QVGA id: 6 or "Google Inc.:Google APIs:6" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 1 Description: Android + Google APIs Based on Android 2.0.1 (API level 6) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, QVGA, WVGA800
id: 7 or "android-7" Name: Android 2.1 Type: Platform API level: 7 Revision: 1 Skins: WQVGA432, HVGA (default), WVGA800, WVGA854, WQVGA400, QVGA
id: 8 or "Google Inc.:Google APIs:7" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 1 Description: Android + Google APIs Based on Android 2.1 (API level 7) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, QVGA, WVGA800
I want to create a simple hello world program for my motorola droid. Which of these targets should I use?
How do I see the Skins?
If I run 'android' from the command line it says that that there are no virtual devices. Is a virtual device the same as a target?
How do I get a droid skin and/or a droid target and/or a droid virtual device?
I THINK that I need to run something like 'android create avd --target 2 --name my_avd', but not sure. Is there a step-by-step list of how to do this somewhere?
thanks, Bob
Later:
I figured out that I had to create targets (=virtual devices) like this:
android create avd -t 1 -n myavd1
.......
android create avd -t 8 -n myavd8
This gave me 8 virtual devices in the gui when I ran 'android' from the command line.
Does anyone know what api level / platform to use for the Droid? And where to get the right skin? Is there anything hardware-specifications, that I need to know for Droid development?
Finally, are there any lists of steps to create a hello world app from the command line (linux) and run it on the emulator and then run it on a real phone?
Bob
Though I routinely use an IDE (or a GUI wrapper) for development, I find Android's CLI to be particularly displeasing.
I have recently begun converting all of my Android projects to be Maven manged. There is a growing community around using this method and it can be quite pleasant.
The idea is built around the maven-android-plugin which does all the heavy lifting. There are samples which show various use cases (non-Java languages, multi-module projects, etc.). Tedious CLI tasks such as shrinking the APK size with proguard, signing the APK, and zipaligning the APK have all been automated.
There has also been a custom format, .apklib
, developed for distributing Android library projects via Maven repositories.
When you couple all these features with the already existing advantaged Maven affords (automated testing, module support, dependency management, automated release, maven site generation, etc.) you really get a very streamlined workflow.