Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set up android SDK for command line development on linux?

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:

  1. downloaded android-sdk_r05-linux_86.tgz from http://developer.android.com/sdk/index.html
  2. tar xvzf android-sdk_r05-linux_86.tgz
  3. ln -s android-sdk-linux_86 android
  4. in .tcshrc added setenv PATH .....:/home/user/android/tools
  5. source .tcshrc
  6. ran 'android'. This opened a gui. Under available packages: I installed everything, and quit the gui.
  7. ran 'android list targets' and It listed these:

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

like image 866
user292344 Avatar asked Mar 12 '10 12:03

user292344


People also ask

What is Android SDK command-line tool?

The sdkmanager is a command line tool that allows you to view, install, update, and uninstall packages for the Android SDK. If you're using Android Studio, then you do not need to use this tool and you can instead manage your SDK packages from the IDE.

How install sdk tools in Linux?

Go to Android SDK and navigate to the SDK Tools Only section. Copy the URL for the download that's appropriate for your build machine OS. Unzip and place the contents within your home directory. The directory names can be anything you like, but save the files in somewhere easy to find (i.e. ~/android-sdk).

What is sdk command-line tools?

The Android SDK Command-Line Tools package contains various tools for building and debugging Android apps. It is released concurrently with Android Studio and is installed in the android_sdk /cmdline-tools/ version /bin/ directory.


2 Answers

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.

Oh, and it can control and deploy the emulator, too!

like image 74
Jake Wharton Avatar answered Sep 28 '22 18:09

Jake Wharton


want to create a simple hello world program for my Motorola droid. Which of these targets should I use?

Droid was by stock a 2.0 (API 6) but as of 14th March 2011 its 2.2.2 (FRG83G). You Should target for 2.0 because not all droids are 2.2.2.

How do I see the Skins?

How do I get a droid skin and/or a droid target and/or a droid virtual device?

You need to install Skins for Motorola Droid. Check the MotoDev Website here..

http://developer.motorola.com/docstools/tools/

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?

No targets and virtual Devices are different. You need to create a Virtual Device from a Target.

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?

API Level: 6 or Higher should Do because not all devices are updated.

Specifications: See here http://developer.motorola.com/products/droid/

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?

Go for Eclipse + Ubuntu.. Its easier to setup Skins and addons as well. Addons best match the physical device. Other options would be to use tedious for development(for a beginner like yourself). Ask you doubts here or post as a separate question. You would definitely get a respose.

HTC recently made a small guide for developers to help in command-line tools. Please take a look at it here http://htcdev.com/devcenter/opensense-sdk/quick-guide#building

You can also use Eclipse+ MotoDev studio...

http://developer.motorola.com/docstools/motodevstudio/

like image 22
Anoop Chandrika HarisudhanNair Avatar answered Sep 28 '22 17:09

Anoop Chandrika HarisudhanNair