ADB (Android Debug Bridge) 方便開發(fā)調(diào)試。。。
ADB環(huán)境變量配置
- 找到文件 sdk 下的 tools 和 platform-tools ,并復(fù)制其路徑
- 新建系統(tǒng)變量,命名為 ADB_HOME,并將上述兩個路徑分別導(dǎo)入,中間用;隔開
- 打開Path變量,輸入%Android_ADB%
- 重啟AndroidStudio打開終端,輸入 adb ,出現(xiàn)幫助信息,完成配置
- adb基本語法
adb [-d|-e|-s <serialNumber>] <command>- -d,-e -s意義
| 關(guān)鍵字 | 描述 |
|---|---|
| -d | 指定當(dāng)前唯一通過 USB 連接的 Android 設(shè)備為命令目標(biāo) |
| -e | 指定當(dāng)前唯一運(yùn)行的模擬器為命令目標(biāo) |
| -s | 指定相應(yīng) 序列號(serialNumber)的設(shè)備/模擬器為命令目標(biāo) |
如果只有一個設(shè)備/模擬器連接時,可以省略掉[-d|-e|-s <serialNumber>] 這一部分,直接使用adb <command>
如果有多個設(shè)備/模擬器連接時,最方便的就是用-s 指定相應(yīng) 序列號(serialNumber)的設(shè)備/模擬器為命令目標(biāo)
-
adb序列號的獲取
$ adb get-serialno
獲取設(shè)備序列號 -
通過指定序列號獲取設(shè)備版本
$ adb -s 序列號 version
獲取設(shè)備版本
以下命令按照只有一個設(shè)備連接時的操作(如有多個設(shè)備可按照上面指定)
-
獲取設(shè)備序列號
$ adb get-serialno -
查看版本
$ adb version -
查看已連接的設(shè)備與莫模擬器
$ adb devices -
安裝一個APK
$ adb install <apkfile>
| 關(guān)鍵字 | 描述 |
|---|---|
| -r | 允許覆蓋安裝。 |
| -s | 將應(yīng)用安裝到 sdcard |
| -d | 允許降級覆蓋安裝 |
安裝結(jié)果
Success成功Failure失敗保留數(shù)據(jù)和緩存文件,重新安裝
$ adb install -r adbDemo.apk安裝到SD卡
$ adb install -s adbDemo.apk-
安裝時:
- 當(dāng)前目錄下:
$ adb install adbDemo.apk - 不在當(dāng)前目錄下:
$ adb install D:\Demo\adbDemo.apk
- 當(dāng)前目錄下:
-
卸載APK文件
$ adb uninstall <package>- 直接完全卸載一個APK
$ adb uninstall com.android.adbdemo - 卸載APK但是保留數(shù)據(jù)和緩存文件
$ adb uninstall -k com.android.adbdemo
- 直接完全卸載一個APK
-
獲取MAC地址
$ adb shell cat/sys/class/net/wlan0/address -
查看設(shè)備型號
$ adb shell getprop ro.product.model -
查看Android系統(tǒng)版本
$ adb shell getprop ro.build.version.release -
查看設(shè)備屏幕分辨率
$ adb shell wm size -
查看屏幕密度
$ adb shell wm density -
查看應(yīng)用列表的基本命令格式是
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]關(guān)鍵字 描述 -f 顯示應(yīng)用關(guān)聯(lián)的 apk 文件 -d 只顯示禁用( disabled) 的應(yīng)用 -e 只顯示 啟用(enabled) 的應(yīng)用 -s 只顯示系統(tǒng)應(yīng)用 -3 只顯示第三方應(yīng)用 -i 顯示應(yīng)用的 安裝程序(installer) -u 包含已卸載應(yīng)用 -<FILTER> 包名包含 <FILTER> 字符串 -
列出手機(jī)裝的所有APP的包名
$ adb shell pm list packages -
列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名
$ adb shell list packages -3 -
列出包名包含某字符串的應(yīng)用包名
$ adb shell list packages adbdemo- 也可以根據(jù)包名實(shí)現(xiàn)過濾,不想顯示包含某字段包名的應(yīng)用(過濾關(guān)鍵字
grep)$ adb shell pm list packages | grep adbdemo
- 也可以根據(jù)包名實(shí)現(xiàn)過濾,不想顯示包含某字段包名的應(yīng)用(過濾關(guān)鍵字
-
-
查看某個應(yīng)用的啟動入口Activity
$ adb shell dumpsys package -
啟動指定的某個Activity(adb shell am start -n
package(包名)/launch activity(目標(biāo)Activityl路徑))adb shell am start -n com.test.pack/com.test.pack.TestActivity
-
清除應(yīng)用數(shù)據(jù)緩存
$ adb shell pm clear <packegename>*如:
$ adb shell pm clear com.android.adbdemo -
強(qiáng)行停止應(yīng)用(一般用于應(yīng)用卡死時)
$ adb shell force -stop <packagename>*如:
$ adb shell force -stop com.android.adbdemo -
啟動/停止Server(一般這兩個命令基本不會用到)
- 啟動
$ adb start-server - 停止
$ adb kill-server
- 啟動
-
抓取手機(jī)日志
- adb bugreport
-
導(dǎo)出手機(jī)中已安裝的apk(如:
com.test.pack為我需要導(dǎo)出的應(yīng)用的包名)-
adb shell pm path com.test.pack拿到對應(yīng)的路徑(如:/system/priv-app/DeviceTest/DeviceTest.apk) -
adb pull /system/priv-app/DeviceTest/DeviceTest.apk C:\Users\Administrator\Desktop\將對應(yīng)的路徑下的拉出來到指目錄就可
-
-
發(fā)送文件到設(shè)備(本地文件
C:\Users\Administrator\Desktop\text.txt,設(shè)備上的路徑/sdcard/test/)adb push C:\Users\Administrator\Desktop\text.txt /sdcard/test/
-
設(shè)備目錄下所有文件 拉出來
adb pull /sdcard/test/
-
adb 模擬發(fā)送廣播
adb shell am broadcast [-a][-d][-t][-a][-a][-a]...- eg:
adb shell am broadcast -a "com.action.TEST" --es str "你好,我的祖國!"(廣播Action:"com.action.TEST")
關(guān)鍵字 描述 -a <ACTION> -d <DATA_URI> -t <MIME_TYPE> -c <CATEGORY> [-c <CATEGORY>] ... -e --es <EXTRA_KEY> <EXTRA_STRING_VALUE> ... --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ... --ei <EXTRA_KEY> <EXTRA_INT_VALUE> ... -n <COMPONENT> -f <FLAGS>] [<URI> -
回到系統(tǒng)主界面
$ adb shell am start -n com.android.launcher3/.Launcher -
重啟設(shè)備
$ adb reboot -
將system分區(qū)重新掛載為可讀寫分區(qū)
$ adb remount -
向設(shè)備輸入文本(光標(biāo)所在的文本框)
$ adb shell input text <string> -
向設(shè)備發(fā)送按鍵事件
$ adb shell input keyevent <event_code>
......
行了,就到這里吧,得趕緊睡覺了。。。。。。。。。

