Android的 adb 命令的几个用法

接触 Android 开发也已经2年多了,从入门到目前能开发些小东西也经历了不少,还好对 Java 没有放弃过,并且有2年多的经验,还算顺利。

翻开笔记,是时候该整理一下,归个档了,第一篇就写从 Android 周边工具开始吧。

adb 全称 Android Debug Bridge,可想而知它的用处。

先看一下官方页面上的用法

adb [-d|-e|-s <serialNumber>] <command>

因此 adb 还可以后面跟 command 来进行组合,实现更多功能。

这里 -d 意思是 device 直接连某一个设备, -e 是 emulator 直接连某一个模拟器,-s 就是在多个设备的情况下,后跟 serialNumber ,即设备名称。

下面就根据 command 来挑几个好用的

主要用法

abd devices    //打印设备列表
adb shell        //进入shell, 因为Android是基于linux 内核,所以到shell以后,可以做很多事情

日志

adb logcat        //后跟各类参数

这里贴一个手头在用的脚本

pid=`adb shell ps | grep com.example.ui | awk '{print $2}'`
adb logcat -c
adb logcat -v threadtime *:i | grep --color=auto $pid

直接做成一个脚本, com.example.ui 替换成需要打印日志的应用,然后在 cmd 下运行,丢到大屏幕上边看边调试吧。。。

应用文件

adb install   /path/to/apk            //安装应用
adb uninstall   packagename        //卸载应用
adb pull /path/to/file  /path/to/local    //把手机上的文件下载下来
adb push /path/to/apk  /data/data    //把apk或文件推送到某个目录

一些有用的命令

截屏

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

26 是屏幕点亮或者熄灭,是个 toggle button

adb shell input keyevent 26

发送一些 intent 或者broadcast 给设备

adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE

发条短消息到10086 , 22 是发送键, 66 是回车键

adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body "hello" --ez exit_on_sent true
adb shell input keyevent 22
adb shell input keyevent 66

获取设备的一些属性

adb shell getprop

测试

Monkey 测试,比较酷, 像只猴子乱测试 ,可以指定某个包, 事件次数

adb shell monkey -v -p your.package.name 500

虽说是个 monkey 测试,假若结合python 脚本,结合 发送按键 的 adb 命令,加上这个monkey可以做到有针对性的测试和随机测试。