原文:eLinux.org
翻译:@willis
校订:@lzufalcon

Android 工具集

本文介绍了一些在 Android 上使用的实用开发工具

目录

Android SDK

host-side tools

adb

adb 是 Android 调试器 - 同时也可以用于双向文件传输。 它的组成部分包含了目标调试机 /sbin目录下的adbd。 在主机上有两个程序运行:adb 应用程序(在 SDK 的 tools 目录下) 和 adb 服务器,adb 服务器由 adb 应用程序启动。

相对模拟器而言,adb 通常会自动运行。

在实体开发板上 - 通过 USB 调试,你可能要处理如下的事情,见: http://developer.android.com/guide/developing/device.html#setting-up

在实体开发板上没有 USB 连接器但是有网卡的话,你需要注意一些小技巧。

  • 确保开发板的 adbd 工作正常。如果它没有工作,你可能需要检查 init.rc 文件。
  • 确保主机与开发板的网络连接正常工作 - 双向测试 ping 连接。
  • 在主机上,输入如下的指令(你需要在主机上指定开发板的 IP 地址)
  ADBHOST=<target-ip> tools/adb kill-server
  ADBHOST=<target-ip> tools/adb shell
  • 现在你应该会在开发板上得到一个提示框,如有需要,你可以退出提示。
  • tools/adb devices 应该就显示了该设备。

在非 Android 系统上运行 adbd

有时候,在非 Android 嵌入式 Linux 系统中使用 adb 是很有用的。有一个用于 adb(源于2104-04-05) 的 patch 补丁来规避 "Android-isms"。说明文档在 README.NONANDROID.TXT 文件中。

File:0001-Add-support-for-non-Android-use-of-adbd.patch

'cd' 命令进入 /system/core/adb 目录,打补丁到你的 adb 目录下:

$ git am 0001-Add-support-for-non-Android-use-of-adbd.patch

aapt

一个 Android 资源打包工具,用于创建,检查和管理 Android 资源包。

你可以使用这个工具查看资源包的细节,它的资源,xml 文件信息。

[Android 开发网站的aapt] (http://developer.android.com/guide/developing/tools/aapt.html) 信息不够充分

查阅 Android aapt 可以获取更多实质性的信息。

ddms

Dalvik 调试监控服务是一个基于主机运行的工具,用于和 Android 目标系统进行交互,并可以显示大量的信息,包括 log, cpu 和内存占用,以及许多独立进程的信息。

DDMS 开发者指南

Fastboot

Android Fastboot 是一个用于 Android 工程机引导和修改分区的工具。

Toolchains

Android 提供了预先构建的工具链(C/C++ 编译器和连接器),但是要求安装外部源的一个 java 编译器(JDK)。

从 NDK r5 版本起(2010 年 12 月),toolchains 可以用于独立交叉编译模式。见 NDK 里面 dos/STANDALONE-TOOLCHAIN.html 了解详情。之前,toolchains 可以用于系统编译,但是它比较麻烦,并且在编译 Android 系统之外的本地层程序时容易出错。

Emulator

emulator 是 QEMU 的版本之一,模仿手机上能够找到的 ARM 处理器的指令集和硬件。emulator 运行在 x86 系统上,但是运行的是 ARM Linux 内核和程序。控制流程如下:

  •   应用程序 -\>
    
    • dalvik 虚拟机 ->
    • C/C++ 库 ->
    • ARM linux 内核 ->
    • 仿真指令集和硬件 (QEMU)->
    • C 库->
    • x86 内核 ->
    • 真正硬件

traceview

target-side tools

am

Activity 管理器 - 可以用于通过命令行启动应用程序,或者发送 intends 来运行应用程序。

dumpstate

打印出系统状态信息。扫描 /proc 文件系统,收集各种系统属性,存放到单一报告中,并能容易的发送该报告给需要的人或者开发帮助。

logcat

一个用于访问 Android 系统 log 的用户工具。它的实现基于 adb 内部的一个特殊的选项(我不太确定 "adb logcat" 和 "adb shell logcat" 之间的区别)。

你可以找到更多有关 logcat 的信息, 在 Android loggerhttp://developer.android.com/guide/developing/tools/adb.html#logcat

monkey

procrank

procrank 显示系统上的进程列表,并通过内存利用率的其中某一个选项进行排序(如: -v 通过VSS排序)。见 Android Memory Usage#procrank

service

可以用来发送私有服务信息。

用法: service [-h|-?]
       service list
       service check SERVICE
       service call SERVICE CODE [i32 INT | s16 STR] ...
参数:
   i32: 发送包里面写一个整数 INT。
   s16: 发送包里面写一个 UTF-16 的字符串 STR

在某个论坛里,我发现可以切换 portrait 和 landscape 模式:

$ service call window 18 i32 1 # 模拟器上设置 landscape
$ service call window 18 i32 0 # 模拟器上设置 portait

"service list" 将展示各种可以通讯的service 列表。

sqlite3

sqlite3 是一个命令行数据库的客户端程序,用于管理 sqlite 数据库。

http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/,获取教程和一些使用sqlite 的例子。

toolbox

在 Android 系统上,toolbox 是一个类似与 busybox 的工具。它是一个多功能的程序,单一的二进制文件中提供了许多不同的命令。包括了:ps, ls,top,stop,start(在 Android 系统上停止和启动服务)

Android toolbox, 了解各个命令的细节。

other tools

agcc

  • agcc - 一个用户编译本地层 Android 应用的打包工具(直接链接到 bionic)
    • 见 http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html](http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html)

bootchart

busybox

Android 集成了一个程序套件 (叫做 'toolbox'),但不是 busybox。

你可以获取一个二进制的 Android busybox 这里 包括了如何在你的设备上快速安装的说明文档。

如果你有兴趣集成 busybox 工具到平台编译环境:

smem

strace

Eclipse

Eclipse (当前版本 3.4 或者 3.5) 是官方支持的集成化开发环境(IDE),使用了 Android 开发者工具(ADT)插件,通过它,开发人员可以使用任意的文本编辑器编写 Java 和 XML 文件,然后使用命令行工具(要求有 JDK 和 Apache Ant)来创建,编译和调试 Android 应用程序,同时控制连接的 Android 设备(比如,远程触发重启,安装软件包等)。

Hardware

Serial Cable for G1

你可以在 G1 上用串口线串接,通过串口终端进行有效分析内核启动信息。

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

回到 Android Portal

分类:


书籍推荐