Adbtool这个工具是SDK软件开发包的一部分;1.显示连接到计算机的设备序列号及状态(offl;#adbdevices;E.g.:C:\>adbdevicesLi;2.知道想连接的设备的序列号后可以用下面方式发布;adb–s<serialnumbe
ADB (Android debug bridge) Adb tool 这个工具是SDK软件开发包的一部分,可用它来管理操作与开发计算机相连的模拟器和设备,用它来查看日志,调试信息,也可以用adb tool 来实现某些自动化和脚本功能,详细用法介绍如下: 1. 显示连接到计算机的设备序列号及状态(offline or devices) #adb devices E.g.:C:\> adb devices List of devices attached Emulator-5554 device HT841LC1977 device 2. 知道想连接的设备的序列号后可以 用下面方式发布命令 adb –s <serial number> <command> 要获取特定设备的状态, #adb –s emulator-5554 get-state 我们通常 –d 标示对已经连接的某个唯一设备发布命令,用-e 标示对唯一的模拟实例发布命令 比如 我们连接了android手机 可以用下列命令来查询序列号: #adb –d get-serialno
3. 启停 ADB 服务进程 停服务 # adb –s emulator-5554 kill-server 启动检查ADB服务进程 # adb –s emulator-5554 start-server 4. 向设备发送、提取文件 发送文件:#adb push <计算机本地文件路径> <远程文件路径> 如把pic.jpg 文件从计算机拷贝到设备SD卡download目录下 #adb –s HT841LC1977 push C:\pic.jpg /sdcard/download/pic.jpg 从设备提取文件:adb pull <远程文件路径> <计算机本地文件路径> #adb –s HT841LC1977 pull /sdcard/download/pic.jpg C:\pic.jpg 5. 安装android 包(.apk)文件 #adb –e install <apk file path> 6. 重装应用程序 # adb –e install –r C:\snake.apk 卸载应用程序 # adb –e uninstall C:\snake.apk 7. 使用adb 来看LogCat 日志记录 # adb –e logcat <option> <filter> 默认日志记录为简要模式,如果要显示来自线程 ID20054的“信息”类日志消息,使用了过滤标志 AppLog:例如 # adb –e logcat I/AppLog(20054): An informational Log message. 要更改日志模式使其包含日期信息: # adb –e logcat –v time 01-05 21:52:22.465 I/AppLog(20054): Another Log message. 显示出来的消息结果是,日期格式和时间,后面紧跟着事件的严重类型,标示,进程ID 及日志消息 如:# adb –e logcat –v time –b radio 01-11 15:06:18.343 1327 1522 D ConnectivityService: 过滤标示符:冗杂(Verbose, V)调试(Debug,D)信息(Info,I)警告(Warning, W)错误(Error,E)致命错误(Fatal,F) 无打扰(Silent,S) 过滤标记和事件的组合格式: <Target name>: <过滤标记> 我们也可用用通配符(*)来过滤日志消息 如用*过滤出“错误”和“致命错误”日志消息: #adb logcat *:E 例如:# adb logcat –v time AppLog:V *:S 等价于 # adb logcat –v time AppLog:* *:S 8. 清除日志 可以用-c 标记 #adb –e logcat –c 9. 将日志重定向到设备上一个文件中 #adb –e logcat –f /sdcard/mylog.txt *:I 或者 #adb logcat –f /sdcard/mylog.txt *:I
10. 一般默认情况下我们看到的都是android的主日志,另外还存在事件日志和无线日志, 我们一般用-b 标志来连接其他日志缓冲,其语法格式: #adb logcat –b events ?看事件日志 #adb logcat –b radio ?看无线电日志 11. 生成bug 报告 用bugreport命令来创建详细的应用程序bug 报告 #adb –e bugreport 如果要打印通过USB连接的手机设备调试信息用下面命令 #adb –d bugreport 12. ADB包含了一个shell接口(ash)我们可以使用它来直接操作设备,发布命令以及 运行二进制文件,还可以使用shell来运行内建的命令行程序,如用monkey做压力测试,adb shell 可以接受一般常用的shell命令如 pwd,ls,cd 等linux命令
具体命令运用方法如下: 发布单条命令:#adb shell <command>
要列出模拟器或设备/sdcard/download/目录下的文件,可以使用如下命令: #adb –e shell ls /sdcard/download 启动和使用一个shell 会话: 一般我们用 #adb shell 启动会话,但是我们通常会连接一些特定序列号的设备,之前讲到了连接特定序列号设备一般用emulator-5554命令启停,所以对特定序列号启动shell命令如下: #adb –s emulator-5554 shell #<type commands here> #exit 结束对话用exit 退出,那么终止和启动都一样 #adb –s emulator-5554 shell stop #adb –s emulator-5554 shell start 如果你要重启特定序列号设备,可以简便用一条命令完成上面两个步骤 #adb –s emulator-5554 shell reboot 如果你要执行多个命令行,可以用上面介绍的shell会话 #adb –s emulator-5554 shell #stop #start #cat /sdcard/download/test.sh #exit 13. 通过shell安装和使用自定义二进制文件 比如安装一个免费软件busybox,busyBox提供了一系列熟悉而有用的unix功能,一般linux/unix 命令被打包在一个单独的二进制文件里,具体安装方法: 1) 到网上下载busybox二进制文件 2) 3) 4) http:/benno.id.au/blog/2007/11/14/android-busy-box 使用adb shell 在模拟器或设备上生成一个/data/local/busybox/文件夹 #adb shell mkdir /data/local/busybox/ 将二进制busybox拷贝到创建的文件夹 #adb –e push D:\busybox /data/local/busybox 运行adb shell,导航至busybox目录 #adb –e shell #cd /data/local/busybox #chmod +x busybox 安装busybox ,# ./busybox - install 5) PS: 为了导航到相关路径方便,我们可以在环境变量里面设定path,然后定义该路径的别名。
14. Exerciser/Monkey工具向指定应用程序发送随机事件 前面已经讲了使用shell 会话,那么这节我们讲下使用Monkey 进行应用程序压力测 试。 运用Monkey 工具的命令语法格式如下: #adb shell monkey –p <package> <options> <event count> 例如:让“猴子”在模拟器或设备上的应用程序GroceryList 中产生5个随机事件 #adb –s emulator-5554 shell #adb monkey –p com.androidbook.grocerylist 5 要想知道这只猴子到底干了些什么可用 –v 标签来列举查看生成的事件 #adb –s emulator-5554 shell # monkey –p com.androidbook.grocerylist –v 5 上面命令执行后输出如下: :SendKey: 21 // KEYCODE_DPAD_LEFT :Sending Trackball ACTION_MOVE x=-4.0 y=2.0 :Sending Trackball ACTION_UP x=0.0 y=0.0 :SendKey: 82 // KEYCODE_MENU :SendKey: 22 // KEYCODE_DPAD_RIGHT :SendKey: 23 // KEYCODE_DPAD_CENTER :Dropped: keys=0 pointers=0 trackballs=0 // Monkey finished 从上面的输出我们可以看到这只猴子做了些什么呢??它做了:导航时间(左)两次轨迹球事件,点了Menu按钮 和之后的两次导航事件(右,中)。看到这里大家可能有点晕不要急,请跟我往下看你会明白什么是导航事件 我们把monkey事件列一个表说明 从上表中,我们可以指定monkey应用程序产生事件的类型,指定命令行标签,设定 百分比权重,应用语法格式: Monkey [<command line flag> <percentage>…] <event count> 比如:要猴子只做触屏事件 #adb –s emulator-5554 shell # monkey –p com.androidbook.grocerylist –pct—touch 100 –v 5
使用种子(seed)选项(option) 来让随机事件可以被重复使用 seed特性是可以让你修改事件序列的一部分,之后你可以重新运行这一序列,这可用于检查bug的修复情况。 要设置“种子”可以使用-s 标签 Monkey –p <package> -s <seed> -v <event count> 例如:通过设置不同的起始“种子”来修改这个5个事件,我们把种子设为555 #adb –s emulator-5554 shell # monkey –p com.androidbook.grocerylist –s 555 –v 5 上面我们已经把种子设定好了,如果发现bug 等fix bug后下一次我们就能够使用seed重新进行这个随机动作来验证这个bug。 Hint:做压力测试时我们可以随意的生成seed,并将其发送给monkey记录结果,如果应用程序在某个种子下出现了bug,则在记录bug的同时记录这个seed 和seed相关的命令行,在bug修正后重新使用它进行测试。 一般默认情况下,monkey会尽可能快的速度产生事件,我们可以通过一些option来控制减缓这一过程。方法如下: Monkey –p com.androidbook. grocerylist –v –throttle 1000 5 monkey –throttle <暂停事件 –1s=1000ms> <event count>
--throttle <milliseconds> 在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成
# monkey –p com.androidbook.grocerylist –v –throttle 1000 5 如果你还想深入学习monkey 请参考 http://developer./guide/developing/tools/monkey.html 15. 通过ADB 查看和操作SQLite数据库 我们一般在开发应用程序中创建和使用SQLite数据库,除此之外我们还可以在adb tool中使用标准的sqlite3数据库工具,本文档介绍快速入门执行任务操作,详细具体的sqlite3工具的使用介绍请看。 SQLite是一个轻量级的数据库,它被包含在一个磁盘上的文件中,android应用程序将其私有数据库(SQLite或其他)存储在特定的应用程序目录中。 目录如下:/data/data/<application package name>/databases/<database name> 数据库采用标准的文件格式,可以跨平台使用,也可以用Dalvik调试监视服务(Dalvik Debug Monitor Service,DDMS)中的文具浏览器取出数据库文件,并且使用第三方工具查看。 SQLite数据库在命令行接口名称sqlite3,那么在adb shell中怎么连接sqlite数据库呢?具体操作如下: #adb –s emulator-5554 shell #sqlite3 /data/data/<application package name>/databases/<database name>
|
|