ADB 工具位于 SDK 的 platform-tools 目錄下,因此在命令行中使用 ADB 的時候,需要通過 cd 命令,切換到該目錄下,或者將 ADB 添加到環(huán)境變量中直接使用。配置好了,在命令行中可以輸入下面命令。
adb version
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
下面介紹一些我總結(jié)的常用的 ADB 命令:
android list target
顯示系統(tǒng)中全部 Android 平臺adb devices
查看相連的 Android 設(shè)備-
adb install
安裝 apk 程序到手機,有時候同時連接多個設(shè)備的話,我們需要指定安裝的目標(biāo)設(shè)備adb install -s 192.168.1.7:5555 install *.apk
adb push <local> <remote>
將文件推到手機存儲adb pull <remote> <local>
從手機獲取文件-
adb shell
可以進入設(shè)備的命令模式,可以執(zhí)行 Linux 上的大多命令- 查看log
logcat | grep "***"
- 刪除應(yīng)用
cd system/app
rm *.apk
- 查看系統(tǒng)盤符
adb shell df
- 輸出已經(jīng)安裝的應(yīng)用
adb shell pm list packages -f
- 模擬按鍵輸入
adb shell input keyevent 3
對用的數(shù)字可以網(wǎng)上搜一下,下面列舉幾個常用的 3-home,4-back,82-menu - 模擬滑動輸入
adb shell input touchscreen <x1> <y1> <x2> <y2>
- 查看運行狀態(tài),比如列出 activity 的運行狀態(tài),同時過濾 "tencent" 關(guān)鍵字
- 查看log
hero2qltechn:/ $ dumpsys activity activities | grep "tencent"
* TaskRecord{60aa400d0 #446 A=com.tencent.mobileqq U=0 StackId=1 sz=3}
userId=0 effectiveUid=u0a191 mCallingUid=u0a191 mUserSetupComplete=true mCallingPackage=com.tencent.mobileqq
affinity=com.tencent.mobileqq
intent={flg=0x10000000 cmp=com.tencent.mobileqq/com.dataline.activities.LiteActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 }}
realActivity=com.tencent.mobileqq/com.dataline.activities.LiteActivity
Activities=[ActivityRecord{f66f294d0 u0 com.tencent.mobileqq/com.dataline.activities.LiteActivity t446}, ActivityRecord{e4d4e42d0 u0 com.tencent.mobileqq/.filemanager.fileviewer.FileBrowserActivity t446}, ActivityRecord{36d8eb4d0 u0 com.tencent.mobileqq/.activity.GesturePWDUnlockActivity t446}]
* Hist #2: ActivityRecord{36d8eb4d0 u0 com.tencent.mobileqq/.activity.GesturePWDUnlockActivity t446}
packageName=com.tencent.mobileqq processName=com.tencent.mobileqq
launchedFromUid=10191 launchedFromPackage=com.tencent.mobileqq userId=0
app=ProcessRecord{fd39030 13405:com.tencent.mobileqq/u0a191}
Intent { flg=0x40000 cmp=com.tencent.mobileqq/.activity.GesturePWDUnlockActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } (has extras) }
frontOfTask=false task=TaskRecord{60aa400d0 #446 A=com.tencent.mobileqq U=0 StackId=1 sz=3}
taskAffinity=com.tencent.mobileqq
realActivity=com.tencent.mobileqq/.activity.GesturePWDUnlockActivity
baseDir=/data/app/com.tencent.mobileqq-1/base.apk
dataDir=/data/user/0/com.tencent.mobileqq
* Hist #1: ActivityRecord{e4d4e42d0 u0 com.tencent.mobileqq/.filemanager.fileviewer.FileBrowserActivity t446}
packageName=com.tencent.mobileqq processName=com.tencent.mobileqq
launchedFromUid=10191 launchedFromPackage=com.tencent.mobileqq userId=0
app=ProcessRecord{fd39030 13405:com.tencent.mobileqq/u0a191}
Intent { flg=0x40000 cmp=com.tencent.mobileqq/.filemanager.fileviewer.FileBrowserActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } (has extras) }
frontOfTask=false task=TaskRecord{60aa400d0 #446 A=com.tencent.mobileqq U=0 StackId=1 sz=3}
taskAffinity=com.tencent.mobileqq
- package 管理信息
pm list packages -f
- 啟動一個 activity
adb shell am start -n 包名 + 類名
- 錄制屏幕
adb shell screenrecord /sdcard/record.mp4
- 重新啟動
adb reboot