全部博文(185)
分类:
2010-03-30 11:36:27
3.6 Android SDK开发工具使用方法
Android SDK开发工具中有几个重要的指令:adb、ddms、emulator与mksdcard、dx tool等,先前我们已经使用了其中的一些指令,本节会再详细介绍这些指令的高级用法与应用。
3.6.1 ADB系统除错与连结工具
在前面几个章节,我们已经多次使用adb指令进行APK组件的安装,虽然adb(Android debug bridge)是Android系统的除错工具,但是从前面章节的放置文件到SD存储卡与安装APK应用程序,应该已经体会到adb是操作Android系统不可或缺的重要工具。adb是与Android仿真器沟通最重要的桥梁。如果要跟Android底层的Linux操作系统进行沟通,就必须通过Android SDK tools目录下的adb (android debug bridge) 指令来进行操作。这个adb除了提供程序码除错功能外,最重要的功能是它可以将Eclipse编译好所生成的Android应用程序组件Android Package (apk),直接连接安装到Android仿真器上或者手机装置上,因此程序开发在Eclipse环境中完成后,Android仿真器上就直接会有这个应用程序的图标icon了。另外adb除错工具也支持命令列模式shell指令,可以输入指令来进行一些除错动作。这些实用的adb指令如下:
- $ adb devices (显示当前有多少个仿真器正在运行)
- List of devices attached
- emulator-5554 device
- emulator-5556 device
- emulator-5558 device
运行adb devices会显示有多少个仿真器正在运行,上面的例子指出有5554、5556、5558三个仿真器正在运行,如果没有运行仿真器,则显示 no device。
- $ adb -s <serialNumber> <command> (指定仿真器来操作)
- $ adb -s emulator-5554 install email.apk
adb -s可以指定仿真器序号,用来选择操纵哪一个仿真器,例如adb -s emulator-5554 install email.apk,指定将email.apk安装在仿真器emulator-5554。
- $ adb install apkfile (安装APK应用程序组件)
- 例如:adb install email.apk
- $ adb uninstall package (移除APK应用程序组件)
- 例如:adb uninstall com.android.email
adb install与adb uninstall可以用来安装与移除APK 应用程序组件,但是必须注意的是adb install后面是接apk文件名称,然而adb uninstall 后面是域名形式的package名称,例如com.android.email。详细的package名称可以由Android操作系统目录/data/data或者由/data/app来查得。
- $ adb shell (进入Android系统指令列模式)
- $ ls
- $ dmesg (查看Android Linux Kernel运作消息)
运行adb shell可以进入Android操作系统指令列模式,如此一来就可以直接看到Android系统的目录结构,因为Android是Linux操作系统的一种,所以Shell指令和Linux系统是相同的,例如ls(显示文件目录)、cd(进入目录)、rm(删除文件)、mv(移动文件)、mkdir(生成目录)与rmdir(删除目录)等指令。
- $ adb push <file/dir> /sdcard (复制文件到SD存储卡)
- 例如:adb push mp3 /sdcard
- $ adb pull <file/dir> . (从Android系统下载文件)
- 例如:adb pull /data/app/com.android.email
adb push可以上载文件到SD存储卡目录/sdcard,因为其他目录有访问权限问题无法写入,所以一般都是将文件放到/sdcard目录下。adb pull则是将文件从Android系统下载到一般计算机上,常用的例子除了从/sdcard下载文件外,也可以从/data/data或/data/app目录将APK文件抽出来,提供已经安装成功的APK应用程序,给其他使用者安装。
- $ adb logcat (监控仿真器运作记录)
adb logcat会实时监控Android仿真器运行时所生成的记录,此项功能对于程序开发人员用来除错帮助很大,开发人员可以从记录中得到应用程序运行时发生的错误消息。运行adb logcat后,若要离开监控模式,可以按Ctrl+C。
- $ adb bugreport (生成adb除错报告)
开发人员若要进一步得知系统生成的所有错误消息报告,可以运行adb bugreport指令来实现,该指令会将Android系统的dumpsys、dumpstate与logcat信息都显示出来。
- $ adb get-state (获得adb服务器运作状态)
adb get-state会显示adb服务器的运作状态为何,共有offline (脱机)、bootloader (开机中)、与device (运作中) 三种状态。
- $ adb start-server (启动adb服务器)
- $ adb kill-server (关掉adb服务器)
通常启动Android服务器时,就会启动adb服务器了。可以使用adb get-state来查知adb的状态。如果没有启动可以运行adb start-server启动它,若不想进行除错监控,可以运行adb kill-server关掉它。
- $ adb forward tcp:6100 tcp:7100 (更改仿真器网络TCP通信端口)
- Android仿真器内定的TCP port为6100,若有需要可以运行adb forward指令改成另外一个通信端口。
- $ adb version (显示adb版本)
您可以运行adb version查看当前使用的Android SDK adb版本。
- $ adb help (显示adb指令参数)
adb help会显示所有adb指令的用法,详细的adb指令参数如表3-1所示。
表3-1 adb指令参数表
用 途 |
指 令 |
功 能 描 述 |
参数 |
adb -d |
当Android手机用USB连接计算机时, 可通过adb -d对该装置下命令 |
adb -e |
对正在运行的仿真器下指令 | |
adb -s |
指定仿真器序号 | |
一般用途 |
adb devices |
显示当前启动的仿真器装置序号 |
adb help |
显示adb指令用法 | |
adb version |
显示adb版本 | |
信息处理 |
adb install |
安装APK应用程序组件 |
adb push |
上传文件或目录 | |
adb pull |
下载文件或目录 | |
指令列 |
adb shell |
进入Android系统命令列模式 |
除错 |
adb logcat |
监控仿真器运作记录 |
adb bugreport |
生成adb除错报告 | |
服务器 |
adb start-server |
启动adb服务器 |
adb kill-server |
关闭adb服务器 | |
adb get-state |
取得adb服务器运作状态 | |
adb get-serialno |
获得仿真器运行序号 | |
网络 |
adb forward tcp:port |
更改仿真器的网络TCP通信端口 |