androidsdk更新adb⼯具,AndroidSDK中ADB的使⽤
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
Packageandroidsdk安装步骤
(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(指定仿真器来操作)
$ 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 ail
adb install与adb uninstall可以⽤来安装与移除APK 应⽤程序组件,但是必须注意的是adb
install后⾯是接apk⽂件名称,然⽽adb uninstall
后⾯是域名形式的package名称,例如ail。详细的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/sdcard              (复制⽂件到SD存储卡)
例如:adb push mp3 /sdcard
$ adb pull.                (从Android系统下载⽂件)
例如:adb pull /data/app/ail
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通信端⼝