分享

ADB (Android debug bridge) 快速入门使用手册29

 嘉恩督 2015-05-16
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>

三亿文库3y.

 


    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多