asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0

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 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通信端口


posted on 2011-06-17 12:21 汪杰 阅读(495) 评论(0)  编辑 收藏 引用 所属分类: Java
只有注册用户登录后才能发表评论。

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 457536
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜