一. ADB概念
1. 什么是ADB?
ADB全稱Android Debug Bridge(安卓調(diào)試橋),在PC端安裝ADB并且配置好ADB環(huán)境變量.就可以通過DOS命令行窗口輸入命令的方式來對Android設(shè)備進(jìn)行
調(diào)試.
2. ADB的作用?
ADB的主要左右有兩大類,一類是直接對Android進(jìn)行調(diào)試.二類是通過adb shell
進(jìn)入到shell模式以后用linux命令行
對設(shè)備進(jìn)行操作.
-
對應(yīng)用進(jìn)行調(diào)試.
- 安裝卸載應(yīng)用.
- 將文件從pc推到Android設(shè)備中,從Android設(shè)備中拉取圖片.
- 獲取截圖,錄屏,獲取正在顯示的Activity等功能.
安卓系統(tǒng)是基于Linux系統(tǒng)開發(fā),也就支持常見的Linux的命令.通過
adb shell
來執(zhí)行這些命令.
二. adb的環(huán)境配置(Win10版).
為了ADB能夠在PC端全局任意位置使用DOS命令行進(jìn)行操作,首先要在PC端配置環(huán)境變量.
1.下載ADB文件到PC
2.配置環(huán)境變量.
在win10中依次打開我的電腦->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量->Path
配置完成以后打開DOS命令行.輸入adb version
如果能看到ADB的版本則說明ADB安裝成功了.
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874
Installed as C:\sdk\platform-tools\adb.exe
三.ADB連接Android設(shè)備
1.準(zhǔn)備工作:
- 一臺(tái)Android設(shè)備.
- 數(shù)據(jù)線(最好是原裝的,部分奸商賣的的數(shù)據(jù)線只能充電,要注意).
- 打開Android設(shè)備的開發(fā)者選項(xiàng).勾選usb調(diào)試.
2.通過手機(jī)數(shù)據(jù)線進(jìn)行連接.
手機(jī)通過數(shù)據(jù)線連接電腦.如果沒有驅(qū)動(dòng)可以下載驅(qū)動(dòng)精靈,驅(qū)動(dòng)精靈,或者豌豆莢安裝好驅(qū)動(dòng).
啟動(dòng)ADB:
adb start-server
如果出現(xiàn)如下內(nèi)容則說明ADB被正常啟動(dòng)了:
* daemon not running; starting now at tcp:5037
* daemon started successfully
3.解決端口被占用的問題
如果在win10啟動(dòng)ADB有時(shí)候會(huì)提示5037端口被占用,導(dǎo)致啟動(dòng)失敗。提示如下:
* daemon not running. starting it now on port 5037 *
ADB server didn't ACK
* failed to start daemon *daemon
目前有兩種方案解決該問題:一是將占用ADB端口的應(yīng)用殺死.二則是修改ADB的端口(推薦).
方式一
- 查看當(dāng)前哪個(gè)進(jìn)程占用了這個(gè)端口
netstat -ano | findstr "5037"
- 殺掉占用的進(jìn)程即可
taskkill /f /pid xxx
方式二
系統(tǒng)環(huán)境變量中定義 ANDROID_ADB_SERVER_PORT 的值即可。數(shù)值盡量選擇一個(gè)不常用的端口,如11223等
右鍵計(jì)算機(jī) -> 屬性 ->高級計(jì)算機(jī)設(shè)置 ->環(huán)境變量 ->新建 ->變量名:ANDROID_ADB_SERVER_PORT ->值:11223(任意)
重啟ADB即可.
4.ADB通過wifi連接Android設(shè)備.
- Android設(shè)備和Pc必須處于同一個(gè)內(nèi)網(wǎng)中.
- 通過數(shù)據(jù)線連接Android設(shè)備,ADB打開5555端口:
adb tcpip 5555 //restarting in TCP mode port: 5555
- 連接Android設(shè)備在內(nèi)網(wǎng)中的地址:
adb connect 192.168.1.104
四. ADB常用指令.
adb start_server
啟動(dòng)ADB服務(wù)
adb kill-server
關(guān)閉ADB服務(wù)
adb devices
//列出所有的連接設(shè)備
adb install xxx.apk
//安裝apk 一共有l(wèi)rtsdg六個(gè)選項(xiàng)
- -l 鎖定該應(yīng)用程序
- -r 替換已存在的應(yīng)用程序尚困,也就是說強(qiáng)制安裝
- -t 允許測試包
- -s 把應(yīng)用程序安裝到sd卡上
- -d 允許進(jìn)行將見狀壳影,也就是安裝的比手機(jī)上帶的版本低
- -g 為應(yīng)用程序授予所有運(yùn)行時(shí)的權(quán)限
adb install -r xxx.apk
//強(qiáng)制安裝apk
adb -s 設(shè)備1 install -r xxx.apk
// 選擇設(shè)備進(jìn)行安裝
adb shell pm list packages
//列出所有的安裝的包名
adb shell pm path com.android.search
// 列出指定包名對應(yīng)的apk路徑
adb shell pm clear com.android.search
// 清空指定包名對應(yīng)的應(yīng)用的數(shù)據(jù)和緩存文件贝奇,開發(fā)時(shí)很有用
adb shell dumpsys window w |findstr \/ |findstr name=
//查看前臺(tái)進(jìn)程和前臺(tái)activity
adb shell ps
//列出設(shè)備里面所有的進(jìn)程
adb shell ps |findstr baidu
//查看包含關(guān)鍵字的進(jìn)程,如baidu
adb shell service list
//查看Service列表
adb shell top
列出進(jìn)程的信息
- -d 表示刷新的時(shí)間(單位秒).
- -m 表示顯示進(jìn)程最大數(shù).
- |grep (進(jìn)程名稱) 抓取進(jìn)程名的進(jìn)程顯示它的子線程情況
- -p pid 顯示某個(gè)進(jìn)程的信息.如果是多個(gè)進(jìn)程都好分割:pid1,pid2,pid3
參考:
Google官方文檔之ADB