adb全称是Android Debug Bridge,它是一个命令行工具,通过它可以与Android设备进行交互,可以进行常见的安装/卸载app、打开app、查看app的日志等操作。
官网请移步Android Debug Bridge (adb)
一,以Android sdk,配置环境变量
第一步,需要安装Android studio
android开发专用的IDE是Android Studio
在下载安装AndroidStudio过程中会自动下载SDK,SDK中包含adb环境,具体是在sdk文件路径/platform-tools/adb:
第二步,打开Terminal 终端,并且进入当前用户的Home目录
这是需要创建.bash_profile文件(存在就不创建)
创建 :
touch .bash_profile
打开:
vim .bash_profile
第三步,打开之后进入编辑模式,在文末编辑添加如下代码(编辑模式:按字母键i)
第四步,保存并退出
退出:
:wq
如果报错,可以输入:wq! 强制退出
保存:
source .bash_profile
第五步,验证adb 安装成功
输入
adb version
二,自行下载platform-tools包,配置环境变量
这个是最朴素的方式,适用于绝大多数同学。
在这里下载对应的版本即可:
下载完成后解压(将文件放置到一个不常改动的目录下,避免误删),然后给文件配置环境变量,还是Android sdk配置为例:这个platform-tools
文件夹我是放在Downloads
目录下的。
# 在没有android sdk的情况下,单独配置platform-tools,支持adb命令
export PATH=${PATH}:~/Downloads/platform-tools
配置好之后,关闭并重启终端,adb环境即可生效。
验证是否安装成功
adb --version
可用于校验adb环境是否配置好:
$ adb --version
Android Debug Bridge version 1.0.41
Version 31.0.3-7562133
Installed as /Users/xxx/Downloads/platform-tools/adb
可以看到,adb的安装路径就是配置的路径。
ADB 使用:
一、adb shell
安卓系统是基于Linux系统开发,也就支持常见的Linux的命令,这些命令都保存在手机“/system/bin”的目录下,通过adb shell 便可以调用这些命令。
进入“/system/bin”该文件夹下便可以看到这些命令,如下图,常用的dumpsys、echo
对于以上的所有命令可以再后面跟上【-help】查看具体用法
1、adb shell screencap <手机路径>
adb shell screencap /sdcard/test.png :截屏操作,appUI自动化常用命令,当case执行失败时,如果句柄丢失,也就是出现ANR或者崩溃时,框架无法截图,最好自己处理截图操作~
adb shell screencap /sdcard/test.png
对手机当前屏幕进行截屏,然后保存在手机sdcard目录下面,命名为test.png
adb pull /sdcard/test.png
把sdcard目录下面的test.png图片拉到电脑,默认拉取到你当前执行的工作目录
2、adb shell dumpsys
强大的dump工具,可以输出很多系统信息,例如window,activity,task/back stack信息,wifi信息等。
专项测试的时候对这些命令非常有用,举例:
内存、adb shell dumpsys meminfo com.xxxxx.xxxx | findstr TOTAL
CPU、adb shell dumpsys cpuinfo | findstr com.xxxxx.xxxx
功耗、adb shell dumpsys battery
GPU、adb shell dumpsys gfxinfo com.xxxxx.xxxx
3.打印所有包名
adb shell pm list packages
➜ ~ adb shell pm list packages
package:com.huawei.floatMms
package:com.android.defcontainer
package:com.tencent.mm
4.查看所有已经连接上的设备
adb devices
5.安装卸载
adb install <apk文件路径>
adb install -r <apk文件路径> 通过install命令来安装apk文件,-r参数可以重新安装某个应用并保留应用数据
adb install -r ~/chrome.apk
卸载应用:
adb uninstall <软件名>
adb uninstall -k < 软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件
adb uninstall com.android.chrome
6.关机命令
adb shell
su
reboot -p
二、Linux命令实例
//进入设备
adb shell
//进入指定目录"/data/local/tmp"
cd /data/local/tmp
//查看目录
ls
//进入根目录
cd /
//进入指定目录"/data/local/tmp"
cd /data/local/tmp
//查看分区列表
df
//在当前目录下创建名为1的.txt文件(再创建个两个,命名为2和3,方便后面继续学习使用)
touch 1.txt
//列出所有文件(包括隐藏文件)的详细信息,此时可以查看刚刚的1.txt是否创建成功
ls -al
//在当前目录下创建一个名为1的文件夹
mkdir1
//列出所有文件(包括隐藏文件)的详细信息,此时可以查看刚刚的目录文件夹是否创建成功
ls -al
//在当前目录下创建递归目录,2下面包含3,3下面包含4
mkdir -p 2/3/4
//回到上一级目录,连续操作两次让他回到cd /data/local/tmp目录下
cd ..
//将1.txt文件移动到1目录中(剪切效果)
mv 1.txt 1
//进入1目录cd 1
//查看1.txt是否移动进去了
ls
//返回上一级目录
cd ..
//将当前目录下的2.txt文件复制到名为2的目录下并命名为2.txt
dd if=2.txtof=2/22.txt
//进入到目录2中
cd 2
//查看上个文件操作是否操作成功
ls
//回到上一级目录
cd ..
//进入1目录
cd 1
//删除当前目录下的1.txt文件
rm 1.txt
//回到上一级目
cd ..
//删除名为1的目录
rmdir 1
//查看删除操作是否删除成功
ls
//查看文件权限信息
la -al
//修改2.txt的文件权限为最高
chomd 777 2.txt
//查看刚刚修改的文件权限信息是否成功
la -al
//查看2.txt文件的md5
md5 2.txt
//查看挂载设备信息
mount
//将system分区变成可读可写"mount -o [option] devices directory"
mount -o remount,rw /dev/block/sda6 /system
//查看刚刚的修改是否成功
mount
//查看分区列表
df
//卸载掉"/storage/sdcard"分区挂载
umount /storage/sdcard
//查看刚刚的卸载是否成功
df
//输入点内容到2.txt中
echo 333 >>2.txt
echo 222 >>2.txt
//查看2.txt文件
cat 2.txt
//指出两个文件是否存在差异
cmp 2.txt 3.txt
//复制2.txt文件夹并粘贴到当前目录中,命名为22.txt
dd if=2.txt of=22.txt
//指出两个文件是否存在差异
cmp 2.txt 3.txt
cd
//在2目录下创建一个名为2o.txt的2的硬连接文件(因为2的目录下已经存在2.txt文件,不然使用"ln 2.txt 2"命令就可以了)
ln 2.txt 2/2o.txt
//进入到2目录
cd 2
//查看2o.txt文件内容
cat 2o.txt
//在2o.txt文件中加入内容
echo >>2o.txt
//返回上一级目录
cd ..
//查看连接文件2.txt的文件内容是否与2o.txt一致
cat 2.txt