ADB 学习笔记
1.说在前面
最近在一家Android公司实习,是系统优化相关的模块,发现Android的调试工具一般都是使用ADB,所以来进行一个简单的学习入门。
2.adb简介
adb全称为(android debug bridge)安卓调试桥,顾名思义就是搭建电脑和安卓之间的桥梁,让我们可以通过电脑来操作安卓手机。
那其实虽然官方说只能调试安卓手机,但是我了解到我们可以在Mac系统中安装xcode来通过adb调试ios设备。
3.adb安装
最简单办法
本身 adb 是android SDK自带的一个工具。
最简单的使用方法只用到三个文件就能实现adb控制:
之后配置电脑环境变量path。
推荐安装SDK来使用
进入官方SDK网页下载压缩包或者安装包。
在SDK包的 platform-tools 为adb的路径,并且该文件夹配置到环境变量path中。
这样就算安装好啦!我们在任何一个目录都能进行adb的使用。
验证安装是否成功
在cmd窗口中使用
adb version
,如果看到版本,大功告成。
4.电脑连接设备
建议先使用 android 模拟器操作,避免开始操作失误造成手机错误。
多次点击手机版本号打开开发者选项。
在开发者选项中,打开usb调试。
通过数据线连接电脑与手机。
一般情况会自动识别并进行连接,或者我们可以通过
adb connect 127.0.0.1:端口号
,不同的手机端口号不同,可以在网上查阅资料获取。之后通过
adb devices
可以显示所有已经连接的设备名称。当列表中显示
127.0.0.1:端口号 device
device表示连接成功。
5.常用adb命令
由于 Android 系统底层是基于 Linux 内核来进行开发的,所一很多 Linux 命令在 adb 中都可以使用。
adb shell
用于进入安卓系统进行操作。比如常用的 ls,cd,vi 等基本命令都可以直接使用。
exit 用于退出 Android 系统。
adb install [apk包路径]
将指定路径的 apk 安装包安装到已经连接到的手机。
adb uninstall [app的包名-package]
卸载对应包名的应用。
adb shell pm list package
进入安卓系统中,使用 pm(包管理) 操作将所有的包名列出来。
在这个命令后面可以加一个 -3 表示只显示第三方的应用包名。
这个 pm 是已经封装好的脚本,在安卓系统的 sys 文件夹中的 bin 文件夹中可以找到。
adb pull /system/Framework/pm.jar [Desktop]
把安卓系统中的对应文件拉取到电脑上对应的目录,Desktop 代表了电脑桌面。
adb push [电脑上的文件路径] [手机上的目录路径]
把电脑上对应的文件上传到手机对应的位置。
adb shell dumpsys activity | findstr “mFocuse”
这个命令等价于在安卓系统中执行 dumpsys activity | grep “mFocuse”
意思是获取到当前手机聚焦页面的activity。
除了这个方法,我们可可以使用SDK中的 aapt 工具:
在刚才下载的 SDK 中找到 build-tools 下的 aapt.exe 文件
执行 aapt dump badging [安装包apk的路径] | find launchable
这个命令就可以解析相应的 apk 并且获取到启动的 activity。
这两种方法,第一种是不稳定的,不一定就是启动的 activity ,所以我们一般使用第二种方法,更为稳妥。
还有第三种方式获取:
使用 monkey 工具。
adb shell mokey -p [被测包名] -v -v -v 1
这段代码的意思是压测一个 app ,并且使用最高级别的日志记录,只执行一次。
在上面的日志信息中,我们就能找到一个 + Using Main Activity 的 Activity。
adb shell am start -W -S [应用的包名]/[刚才找到的启动Activity]
这个命令就可以启动应用了。-W 表示等待该Activity启动完成后返回, —S 表示把这个放在栈的最顶端。
adb shell input tap [x坐标] [y坐标]
根据坐标去点击相应的地方。相应的滑动的操作,可以查阅文档使用。
adb shell input keyevent [keycode编码]
调用安卓系统中的一些系统按键。不用背的哦,用的时候搜一下就完事。
6.互动命令
input 命令就是和当前 Activity 进行操作的一个命令
adb shell input text [内容]
这个命令就可以模拟键盘输入,并将指定的文本内容输入到当前活动窗口中的文本框或文本区域中。
7.adb完成自动化操作
先获取包名
根据包名获取启动的 Activity
根据上一步获取的,启动应用。
根绝我们学习的一些互动命令,就可以进行相应的操作。
那这个脚本文件怎么生成呢?
我们可以编写好命令之后放入 .bat 文件中,这里要注意 bat 文件中的注释符号不是 ’#‘ ,也不是 ‘//‘ 而是 ’rem‘。
之后双击运行就好。