ADB 與 Android 開發(fā)調(diào)試命令大全


一、文件傳輸操作

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 包名

示例:卸載 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-serverstart-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)出到本地。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容