Android-adb使用详解
2020-11-26 本文已影响0人
沉淀者
一、adb shell
image.png安卓系统是基于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
image.png强大的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