一、文件傳輸操作
1.1 電腦 → 模擬器(推送)
adb push D:/sex.avi /mnt/avi/
1.2 模擬器 → 電腦(拉?。?/h3>
adb pull /mnt/avi/sex.avi D:/avi/
【補充】
路徑中的 /mnt/、/sdcard/ 等為 Android 文件系統(tǒng)常見掛載點;Windows 路徑可使用正斜杠 / 或雙反斜杠 \\。
二、APK 安裝與卸載
2.1 安裝 APK
adb install d:\\qq.apk
2.2 卸載 APK
adb uninstall 包名
adb pull /mnt/avi/sex.avi D:/avi/
【補充】
路徑中的 /mnt/、/sdcard/ 等為 Android 文件系統(tǒng)常見掛載點;Windows 路徑可使用正斜杠 / 或雙反斜杠 \\。
adb install d:\\qq.apk
adb uninstall 包名
示例:卸載 QQ
adb uninstall com.tencent.mobileqq
三、PM(Package Manager)包管理命令
3.1 列出所有包名
adb shell pm list packages
3.2 列出包名及 APK 路徑
adb shell pm list packages -f
3.3 查詢指定包的 APK 路徑
adb shell pm path packageName
3.4 清理應(yīng)用數(shù)據(jù)
adb shell pm clear packageName
四、應(yīng)用啟動與關(guān)閉
4.1 啟動應(yīng)用(指定 Activity)
adb shell am start -n 包名/Activity類名
示例:啟動應(yīng)用寶
adb shell am start -n com.tencent.android.qqdownloader/com.tencent.assistant.activity.SplashActivity
4.2 指定模擬器啟動應(yīng)用
adb -s 127.0.0.1:5555 shell am start -n com.tencent.android.qqdownloader/com.tencent.assistant.activity.SplashActivity
4.3 關(guān)閉應(yīng)用(強制停止)
adb shell am force-stop 包名
五、模擬輸入與交互
5.1 模擬文本輸入
adb shell input text 字符串
限制:不支持中文
如出現(xiàn)無法輸入&等字符情況,是因為shell會自行解析,使用adb shell 'input text "字符串"'則不會解析完全按照原文輸入
5.2 模擬按鍵事件
adb shell input keyevent 鍵值
5.3 模擬屏幕點擊
adb shell input tap X Y
5.4 模擬滑動操作
adb shell input swipe X1 Y1 X2 Y2
六、設(shè)備信息模擬(Nox 模擬器專用)
6.1 設(shè)置通信標(biāo)識
adb shell setprop persist.nox.modem.imei 352462010682470
adb shell setprop persist.nox.modem.imsi 460000000000000
adb shell setprop persist.nox.modem.phonumber 15605569000
adb shell setprop persist.nox.modem.serial 898600000000000000001
6.2 設(shè)置 GPS 經(jīng)緯度
需先進(jìn)入 nox_adb shell,然后執(zhí)行:
setprop persist.nox.gps.latitude xxx
setprop persist.nox.gps.longitude xxx
6.3 修改設(shè)備屬性
setprop persist.nox.wifimac xxx # 修改 MAC 地址
setprop persist.nox.modem.phonumber 138111111111 # 手機(jī)號,生成一個隨機(jī)11位數(shù)字
setprop persist.nox.model ABC001 # 手機(jī)型號,英文加數(shù)字隨機(jī)
setprop persist.nox.manufacturer XiaoMi # 手機(jī)制造商英文隨機(jī)
setprop persist.nox.brand Mi # 手機(jī)品牌英文隨機(jī)
【補充】
上述setprop命令依賴 Nox 模擬器的定制屬性系統(tǒng)(persist.nox.*),在真機(jī)或其他模擬器上無效。
七、日志(Logcat)操作
| 指令 | 說明 | 備注 |
|---|---|---|
adb logcat |
打印 log | / |
adb logcat -c |
清除手機(jī)的 log buffer | 有些手機(jī)權(quán)限控制, 不支持 |
adb logcat -b <buffer> |
打印指定 buffer 的 log 信息 | buffer 有: main(主 log 區(qū), 默認(rèn)), events(事件相關(guān)), radio(射頻/telephony 相關(guān)) |
adb logcat -v <format> |
格式化輸出 log | 常用的用 adb logcat -v time 顯示時間 |
adb logcat -f <filename> |
輸出 log 到指定文件 | 輸出到文件 |
八、ADB 服務(wù)管理
8.1 啟動/殺死 ADB 服務(wù)
adb start-server # 啟動 Server 端進(jìn)程
adb kill-server # 殺死 Server 端進(jìn)程
用途:由于 adb 并不穩(wěn)定,有時掉線可先
kill-server再start-server以恢復(fù)連接。
九、Activity Manager(am)高級命令
am 即 activity manager,用于執(zhí)行系統(tǒng)級動作。
| 指令 | 說明 | 備注 |
|---|---|---|
start <Intent> |
根據(jù) intent 啟動 Activity | 可為顯式或 ACTION 方式,支持 flag、data |
startservice <Intent> |
啟動 Service | 支持 flag、data |
broadcast <Intent> |
發(fā)送廣播 | 支持 flag、data |
monitor |
啟動 Crash 和 ANR 監(jiān)聽器 | 有 Crash 或 ANR 時控制臺輸出信息 |
force-stop <Package> |
強制停止該包相關(guān)的一切 | 傳入 package name |
kill <Package> |
殺死該包相關(guān)的所有進(jìn)程 | 傳入 package name |
kill-all |
殺死所有后臺進(jìn)程 | / |
display-size WxH |
改變顯示分辨率 | 例如 adb shell am display-size 1280x720,手機(jī)可能不支持 |
display-density <dpi> |
改變顯示 density | 例如 adb shell am display-density 320,手機(jī)可能不支持 |
十、系統(tǒng)信息轉(zhuǎn)儲(dumpsys)
強大的 dumpsys 工具可輸出各類系統(tǒng)狀態(tài)。
10.1 常用 dumpsys 命令
| 指令 | 說明 | 備注 | 細(xì)分參數(shù) |
|---|---|---|---|
activity |
輸出 app 組件相關(guān)信息 | 可用細(xì)分參數(shù)獲取單項內(nèi)容 |
activities, service, providers, intents, broadcasts, processes
|
alarm |
輸出當(dāng)前系統(tǒng)的 alarm 信息 | / | / |
cpuinfo |
輸出當(dāng)前的 CPU 使用情況 | / | / |
diskstats |
輸出當(dāng)前的磁盤使用狀態(tài) | / | / |
batterystats |
電池使用信息 | / | / |
package |
package 相關(guān)信息,相當(dāng)于 pm 功能集合 | 輸出 libs, features, packages 等 | / |
meminfo |
輸出每個 App 的內(nèi)存使用和系統(tǒng)內(nèi)存狀態(tài) | 可指定包名,如 adb shell dumpsys meminfo com.anly.githubapp
|
/ |
window |
輸出當(dāng)前窗口相關(guān)信息 | / |
policy, animator, tokens, windows
|
十一、Nox 模擬器管理命令(Nox.exe)
11.1 復(fù)制模擬器
Nox.exe -copy:<nox_id> -from:<nox_id>
示例:
Nox.exe -copy:Nox_1 -from:nox
Nox_1 是新增的模擬器,復(fù)制自 nox
11.2 刪除模擬器
Nox.exe -remove:<nox_id>
示例:
Nox.exe -remove:Nox_2
刪除模擬器 Nox_2
11.3 備份模擬器
Nox.exe -backup:<nox_id> -file:filepath
示例:
Nox.exe -backup:Nox_1 -file:C:\Users\xxxx\Desktop
備份 Nox_1 到桌面
11.4 還原模擬器
Nox.exe -restore:<nox_id> -file:filepath
示例:
Nox.exe -restore:Nox_1 -file:C:\xxxx\lihc\Desktop\backup20171030174008.vmdk
[C:\Users\xxxx\Desktop\backup20171030174008.vmdk]文件還原到 Nox_1
十二、其他實用 ADB 與開發(fā)命令
12.1 查看 Activity 堆棧
adb shell dumpsys activity
12.2 連接 MuMu 模擬器
adb connect 127.0.0.1:7555
12.3 查看 APK 包信息
aapt dump badging *.apk
12.4 強制安裝 APK
adb install -t
12.5 通用文件傳輸(補充)
adb push/pull 1.mp3 /sdcard/mp3/
十三、Gradle 構(gòu)建與調(diào)試命令
13.1 查看編譯錯誤詳情
gradlew compileDebugSources --stacktrace -info
gradlew compileDebug --stacktrace -debug
gradlew compileDebug --stacktrace -info
gradlew compileDebug --stacktrace -scan
13.2 查看依賴樹
gradlew -q app:dependencies
13.3 生成 AAR
gradlew assembleRelease
gradlew :module:assembleRelease --info
13.4 編譯工程
gradlew assembleDebug --stacktrace --info
13.5 清除 Gradle 依賴緩存
gradlew build --refresh-dependencies
13.6 macOS/Linux 執(zhí)行 gradlew
chmod +x gradlew # 授權(quán)
./gradlew # 執(zhí)行
十四、屏幕捕獲與錄制
14.1 截屏命令
adb shell screencap -p /sdcard/1.png
14.2 錄屏命令
adb shell screenrecord /sdcard/1.mp4
【補充】
screencap -p表示以 PNG 格式保存(-p= PNG);screenrecord默認(rèn)錄制 180 秒,按Ctrl+C可提前終止;- 錄制完成后需通過
adb pull /sdcard/1.mp4 .將視頻導(dǎo)出到本地。