adb全稱是Android Debug Bridge眯勾,它是一個命令行工具,通過它可以與Android設(shè)備進行交互珠月,可以進行常見的安裝/卸載app孟辑、打開app哎甲、查看app的日志等操作。
官網(wǎng)請移步Android Debug Bridge (adb)
一饲嗽,以Android sdk炭玫,配置環(huán)境變量
第一步,需要安裝Android studio
android開發(fā)專用的IDE是Android Studio
在下載安裝AndroidStudio過程中會自動下載SDK貌虾,SDK中包含adb環(huán)境吞加,具體是在sdk文件路徑/platform-tools/adb:
第二步,打開Terminal 終端,并且進入當(dāng)前用戶的Home目錄
這是需要創(chuàng)建.bash_profile文件(存在就不創(chuàng)建)
創(chuàng)建 :
touch .bash_profile
打開:
vim .bash_profile
第三步衔憨,打開之后進入編輯模式叶圃,在文末編輯添加如下代碼(編輯模式:按字母鍵i)
第四步,保存并退出
退出:
:wq
如果報錯巫财,可以輸入:wq! 強制退出
保存:
source .bash_profile
第五步盗似,驗證adb 安裝成功
輸入
adb version
二哩陕,自行下載platform-tools包平项,配置環(huán)境變量
這個是最樸素的方式,適用于絕大多數(shù)同學(xué)悍及。
在這里下載對應(yīng)的版本即可:
下載完成后解壓(將文件放置到一個不常改動的目錄下闽瓢,避免誤刪),然后給文件配置環(huán)境變量心赶,還是Android sdk配置為例:這個platform-tools
文件夾我是放在Downloads
目錄下的扣讼。
# 在沒有android sdk的情況下,單獨配置platform-tools缨叫,支持adb命令
export PATH=${PATH}:~/Downloads/platform-tools
配置好之后椭符,關(guān)閉并重啟終端,adb環(huán)境即可生效耻姥。
驗證是否安裝成功
adb --version
可用于校驗adb環(huán)境是否配置好:
$ 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
安卓系統(tǒng)是基于Linux系統(tǒng)開發(fā),也就支持常見的Linux的命令,這些命令都保存在手機“/system/bin”的目錄下蒸健,通過adb shell 便可以調(diào)用這些命令。
進入“/system/bin”該文件夾下便可以看到這些命令婉商,如下圖似忧,常用的dumpsys、echo
對于以上的所有命令可以再后面跟上【-help】查看具體用法
1丈秩、adb shell screencap <手機路徑>
adb shell screencap /sdcard/test.png :截屏操作盯捌,appUI自動化常用命令,當(dāng)case執(zhí)行失敗時蘑秽,如果句柄丟失挽唉,也就是出現(xiàn)ANR或者崩潰時,框架無法截圖筷狼,最好自己處理截圖操作~
adb shell screencap /sdcard/test.png
對手機當(dāng)前屏幕進行截屏瓶籽,然后保存在手機sdcard目錄下面,命名為test.png
adb pull /sdcard/test.png
把sdcard目錄下面的test.png圖片拉到電腦埂材,默認拉取到你當(dāng)前執(zhí)行的工作目錄
2塑顺、adb shell dumpsys
強大的dump工具,可以輸出很多系統(tǒng)信息,例如window严拒,activity扬绪,task/back stack信息,wifi信息等裤唠。
專項測試的時候?qū)@些命令非常有用挤牛,舉例:
內(nèi)存、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.查看所有已經(jīng)連接上的設(shè)備
adb devices
5.安裝卸載
adb install <apk文件路徑>
adb install -r <apk文件路徑> 通過install命令來安裝apk文件航瞭,-r參數(shù)可以重新安裝某個應(yīng)用并保留應(yīng)用數(shù)據(jù)
adb install -r ~/chrome.apk
卸載應(yīng)用:
adb uninstall <軟件名>
adb uninstall -k < 軟件名> 如果加 -k 參數(shù),為卸載軟件但是保留配置和緩存文件
adb uninstall com.android.chrome
6.關(guān)機命令
adb shell
su
reboot -p
二诫硕、Linux命令實例
//進入設(shè)備
adb shell
//進入指定目錄"/data/local/tmp"
cd /data/local/tmp
//查看目錄
ls
//進入根目錄
cd /
//進入指定目錄"/data/local/tmp"
cd /data/local/tmp
//查看分區(qū)列表
df
//在當(dāng)前目錄下創(chuàng)建名為1的.txt文件(再創(chuàng)建個兩個,命名為2和3刊侯,方便后面繼續(xù)學(xué)習(xí)使用)
touch 1.txt
//列出所有文件(包括隱藏文件)的詳細信息章办,此時可以查看剛剛的1.txt是否創(chuàng)建成功
ls -al
//在當(dāng)前目錄下創(chuàng)建一個名為1的文件夾
mkdir1
//列出所有文件(包括隱藏文件)的詳細信息,此時可以查看剛剛的目錄文件夾是否創(chuàng)建成功
ls -al
//在當(dāng)前目錄下創(chuàng)建遞歸目錄滨彻,2下面包含3藕届,3下面包含4
mkdir -p 2/3/4
//回到上一級目錄,連續(xù)操作兩次讓他回到cd /data/local/tmp目錄下
cd ..
//將1.txt文件移動到1目錄中(剪切效果)
mv 1.txt 1
//進入1目錄cd 1
//查看1.txt是否移動進去了
ls
//返回上一級目錄
cd ..
//將當(dāng)前目錄下的2.txt文件復(fù)制到名為2的目錄下并命名為2.txt
dd if=2.txtof=2/22.txt
//進入到目錄2中
cd 2
//查看上個文件操作是否操作成功
ls
//回到上一級目錄
cd ..
//進入1目錄
cd 1
//刪除當(dāng)前目錄下的1.txt文件
rm 1.txt
//回到上一級目
cd ..
//刪除名為1的目錄
rmdir 1
//查看刪除操作是否刪除成功
ls
//查看文件權(quán)限信息
la -al
//修改2.txt的文件權(quán)限為最高
chomd 777 2.txt
//查看剛剛修改的文件權(quán)限信息是否成功
la -al
//查看2.txt文件的md5
md5 2.txt
//查看掛載設(shè)備信息
mount
//將system分區(qū)變成可讀可寫"mount -o [option] devices directory"
mount -o remount,rw /dev/block/sda6 /system
//查看剛剛的修改是否成功
mount
//查看分區(qū)列表
df
//卸載掉"/storage/sdcard"分區(qū)掛載
umount /storage/sdcard
//查看剛剛的卸載是否成功
df
//輸入點內(nèi)容到2.txt中
echo 333 >>2.txt
echo 222 >>2.txt
//查看2.txt文件
cat 2.txt
//指出兩個文件是否存在差異
cmp 2.txt 3.txt
//復(fù)制2.txt文件夾并粘貼到當(dāng)前目錄中亭饵,命名為22.txt
dd if=2.txt of=22.txt
//指出兩個文件是否存在差異
cmp 2.txt 3.txt
cd
//在2目錄下創(chuàng)建一個名為2o.txt的2的硬連接文件(因為2的目錄下已經(jīng)存在2.txt文件休偶,不然使用"ln 2.txt 2"命令就可以了)
ln 2.txt 2/2o.txt
//進入到2目錄
cd 2
//查看2o.txt文件內(nèi)容
cat 2o.txt
//在2o.txt文件中加入內(nèi)容
echo >>2o.txt
//返回上一級目錄
cd ..
//查看連接文件2.txt的文件內(nèi)容是否與2o.txt一致
cat 2.txt