原文:eLinux.org
翻译:@willis
校订:@lzufalcon
本文介绍了一些在 Android 上使用的实用开发工具
adb 是 Android 调试器 - 同时也可以用于双向文件传输。 它的组成部分包含了目标调试机 /sbin
目录下的adbd
。 在主机上有两个程序运行:adb 应用程序(在 SDK 的 tools
目录下) 和 adb 服务器,adb 服务器由 adb 应用程序启动。
相对模拟器而言,adb 通常会自动运行。
在实体开发板上 - 通过 USB 调试,你可能要处理如下的事情,见: http://developer.android.com/guide/developing/device.html#setting-up。
在实体开发板上没有 USB 连接器但是有网卡的话,你需要注意一些小技巧。
init.rc
文件。 ADBHOST=<target-ip> tools/adb kill-server
ADBHOST=<target-ip> tools/adb shell
tools/adb devices
应该就显示了该设备。
有时候,在非 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
一个 Android 资源打包工具,用于创建,检查和管理 Android 资源包。
你可以使用这个工具查看资源包的细节,它的资源,xml 文件信息。
[Android 开发网站的aapt] (http://developer.android.com/guide/developing/tools/aapt.html) 信息不够充分
查阅 Android aapt 可以获取更多实质性的信息。
Dalvik 调试监控服务是一个基于主机运行的工具,用于和 Android 目标系统进行交互,并可以显示大量的信息,包括 log, cpu 和内存占用,以及许多独立进程的信息。
Android Fastboot 是一个用于 Android 工程机引导和修改分区的工具。
Android 提供了预先构建的工具链(C/C++ 编译器和连接器),但是要求安装外部源的一个 java 编译器(JDK)。
从 NDK r5 版本起(2010 年 12 月),toolchains 可以用于独立交叉编译模式。见 NDK 里面 dos/STANDALONE-TOOLCHAIN.html 了解详情。之前,toolchains 可以用于系统编译,但是它比较麻烦,并且在编译 Android 系统之外的本地层程序时容易出错。
emulator 是 QEMU 的版本之一,模仿手机上能够找到的 ARM 处理器的指令集和硬件。emulator 运行在 x86 系统上,但是运行的是 ARM Linux 内核和程序。控制流程如下:
应用程序 -\>
Activity 管理器 - 可以用于通过命令行启动应用程序,或者发送 intends 来运行应用程序。
打印出系统状态信息。扫描 /proc 文件系统,收集各种系统属性,存放到单一报告中,并能容易的发送该报告给需要的人或者开发帮助。
一个用于访问 Android 系统 log 的用户工具。它的实现基于 adb 内部的一个特殊的选项(我不太确定 "adb logcat" 和 "adb shell logcat" 之间的区别)。
你可以找到更多有关 logcat 的信息, 在 Android logger 和 http://developer.android.com/guide/developing/tools/adb.html#logcat
procrank 显示系统上的进程列表,并通过内存利用率的其中某一个选项进行排序(如: -v 通过VSS排序)。见 Android Memory Usage#procrank
可以用来发送私有服务信息。
用法: 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 是一个命令行数据库的客户端程序,用于管理 sqlite 数据库。
见 http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/,获取教程和一些使用sqlite 的例子。
在 Android 系统上,toolbox 是一个类似与 busybox 的工具。它是一个多功能的程序,单一的二进制文件中提供了许多不同的命令。包括了:ps, ls,top,stop,start(在 Android 系统上停止和启动服务)
见 Android toolbox, 了解各个命令的细节。
Android 集成了一个程序套件 (叫做 'toolbox'),但不是 busybox。
你可以获取一个二进制的 Android busybox 这里 包括了如何在你的设备上快速安装的说明文档。
如果你有兴趣集成 busybox 工具到平台编译环境:
Eclipse (当前版本 3.4 或者 3.5) 是官方支持的集成化开发环境(IDE),使用了 Android 开发者工具(ADT)插件,通过它,开发人员可以使用任意的文本编辑器编写 Java 和 XML 文件,然后使用命令行工具(要求有 JDK 和 Apache Ant)来创建,编译和调试 Android 应用程序,同时控制连接的 Android 设备(比如,远程触发重启,安装软件包等)。
你可以在 G1 上用串口线串接,通过串口终端进行有效分析内核启动信息。
见 http://www.instructables.com/id/Android_G1_Serial_Cable
分类: