Android Tools

Here are some development tools useful for working with Android

adb
adb is the android debugger - it also doubles as file transfer agent. The setup consists of an adbd on the target in the /sbin directory. On the host two programs are run: the adb application (in the SDK's tools directory) and an adb server, started by the adb application.

For emulators, adb will usually run automagically.

For real boards - with debugging over USB, you might need to do work, as is documented here: http://developer.android.com/guide/developing/device.html#setting-up.

For real boards that do not have a USB connection but have Ethernet instead, you might need to do a few tricks. ADBHOST= tools/adb kill-server ADBHOST= tools/adb shell
 * make sure that adbd runs on the board. If it doesn't run, you might want to check the init.rc file.
 * make sure that the network connection between host and the board is working - test pinging both ways.
 * on the host, type the following (and yes, you need to specify the board's IP address on the host):
 * you should now get a prompt on the board, you can exit the prompt if you want.
 * tools/adb devices should now list the device.

aapt
The Android Asset Packaging Tool is used to create, inspect and manage Android packages.

You can use this to see details about a package, it's resources, and xml information.

The Android developer page on aapt is somewhat meager.

See Android aapt for substantially more information.

fastboot

 * Fastboot - Android Fastboot is a tool to boot and manipulate the partitions on an Android development phone.

The emulator is a version of QEMU, which mimics the instruction set of an ARM processor, and the hardware that one might find on a mobile phone. The emulator runs on an x86 system, but executes an ARM linux kernel and programs. The flow of control is:
 * toolchains -
 * logging system -
 * Emulator - See http://developer.android.com/guide/developing/tools/emulator.html
 * application ->
 * dalvik VM ->
 * C/C++ libraries ->
 * ARM linux kernel ->
 * emulated instructions and hardware (QEMU)->
 * C libraries->
 * x86 kernel ->
 * real hardware

traceview

 * Google's main page describing traceview: http://developer.android.com/guide/developing/tools/traceview.html
 * http://www.bottomlesspit.org/file_download/2/Android_SDK_Traceview_tool.pdf - good overview presentation by Olivier Bilodeau
 * presentation with speaker notes: http://www.bottomlesspit.org/file_download/3/Android_SDK_Traceview_tool_w_speakernotes.pdf

agcc

 * agcc - A wrapper tool for compiling native Android apps (linked directly to bionic)
 * See http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html

bootchart

 * bootchart

busybox
Android ships with a utility suite (called 'toolbox') that is not busybox.

You can get a binary busybox for Android here The site includes instructions for easy installation on your device.

smem

 * smem

strace

 * strace
 * Statically linked binary available at: http://benno.id.au/blog/2007/11/18/android-runtime-strace
 * Instructions for building Android strace - http://discuz-android.blogspot.com/2008/01/create-google-android-strace-tool.html

Serial Cable for G1
You can build a serial cable to use with the G1, which is helpful to see kernel boot messages on the serial console.

See http://www.instructables.com/id/Android_G1_Serial_Cable

Back to Android Portal