一、adb介紹
SDK的Tools文件夾下包含著Android模擬器操作的重要命令adb,adb的全稱為(Android Debug Bridge就是調(diào)試橋的作用。通過adb我們可以在Eclipse中方面通過DDMS來調(diào)試Android程序。借助這個(gè)工具,我們可以管理設(shè)備或手機(jī)模擬器的狀態(tài)。還可以進(jìn)行以下的操作:
1、快速更新設(shè)備或手機(jī)模擬器中的代碼,如應(yīng)用或Android 系統(tǒng)升級(jí);
2、在設(shè)備上運(yùn)行shell命令;
3、管理設(shè)備或手機(jī)模擬器上的預(yù)定端口;
4、在設(shè)備或手機(jī)模擬器上復(fù)制或粘貼文件;
?
二、adb在集成開發(fā)環(huán)境中的工作?
adb的工作方式比較特殊采用監(jiān)聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認(rèn)情況下adb會(huì)daemon相關(guān)的網(wǎng)絡(luò)端口,所以當(dāng)我們運(yùn)行Eclipse時(shí)adb進(jìn)程就會(huì)自動(dòng)運(yùn)行。?
1.通過adb可以輕松的執(zhí)行Linux Shell命令,如adb shell dir 就是列舉目錄,在Linux中根目錄為/而不是Windows上的C盤、D盤。?
2.安裝apk程序到模擬器則執(zhí)行adb install android123.apk,這樣名為android123的安裝包就會(huì)安裝到Android模擬器中,前提是android123.apk文件需要放到SDK/Tools目錄下。?
3.向emulator傳送文件, 使用adb push android123.txt /tmp/android123.txt命令可以把SDK/Tools下的android123.txt文件傳輸?shù)侥M器的/tmp/文件夾中,需要注意的是/tmp/文件夾中內(nèi)容會(huì)在Android模擬器重新啟動(dòng)時(shí)清空。?
4.從Android仿真器中回傳文件到電腦?
通過adb pull /tmp/android123.txt android123.txt命令就會(huì)把仿真器的tmp文件夾下android123.txt文件回傳到電腦SDK/Tools目錄下。??
?
三、adb常用命令大全
1. 顯示系統(tǒng)中全部Android平臺(tái):
??? android list targets
2. 顯示系統(tǒng)中全部AVD(模擬器):
??? android list avd
3. 創(chuàng)建AVD(模擬器):
??? android create avd --name 名稱 --target 平臺(tái)編號(hào)
4. 啟動(dòng)模擬器:
??? emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
??? android delete avd --name 名稱
6. 創(chuàng)建SDCard:
??? mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
??? Linux(~/.android/avd)????? Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動(dòng)DDMS:
??? ddms
9. 顯示當(dāng)前運(yùn)行的全部模擬器:
??? adb devices
10. 對(duì)某一模擬器執(zhí)行命令:
????? abd -s 模擬器編號(hào) 命令
11. 安裝應(yīng)用程序:
????? adb install -r 應(yīng)用程序.apk
12. 獲取模擬器中的文件:
????? adb pull <remote> <local>
13. 向模擬器中寫文件:
????? adb push <local> <remote>
14. 進(jìn)入模擬器的shell模式:
????? adb shell
15. 啟動(dòng)SDK,文檔,實(shí)例下載管理器:
????? android
16. 缷載apk包:
????? adb shell
????? cd data/app
????? rm apk包
????? exit
????? adb uninstall apk包的主包名
????? adb install -r apk包
17. 查看adb命令幫助信息:
????? adb help
18. 在命令行中查看LOG信息:
????? adb logcat -s 標(biāo)簽名
19. adb shell后面跟的命令主要來自:
????? 源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統(tǒng)應(yīng)用:
????? adb remount (重新掛載系統(tǒng)分區(qū),使系統(tǒng)分區(qū)重新可寫)。
????? adb shell
????? cd system/app
????? rm *.apk
21. 獲取管理員權(quán)限:
????? adb root
22. 啟動(dòng)Activity:
???? adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴(kuò)展數(shù)據(jù),等)。
23、發(fā)布端口:
??? 你可以設(shè)置任意的端口號(hào),做為主機(jī)向模擬器或設(shè)備的請(qǐng)求端口。如:
adb forward tcp:5555 tcp:8000
24、復(fù)制文件:
??? 你可向一個(gè)設(shè)備或從一個(gè)設(shè)備中復(fù)制文件,
???? 復(fù)制一個(gè)文件或目錄到設(shè)備或模擬器上:
adb push <source> <destination></destination></source>
????? 如:adb push test.txt /tmp/test.txt
???? 從設(shè)備或模擬器上復(fù)制一個(gè)文件或目錄:
???? adb pull <source> <destination></destination></source>
???? 如:adb pull /addroid/lib/libwebcore.so .
25、搜索模擬器/設(shè)備的實(shí)例:
???? 取得當(dāng)前運(yùn)行的模擬器/設(shè)備的實(shí)例的列表及每個(gè)實(shí)例的狀態(tài):
??? adb devices
26、查看bug報(bào)告:
adb bugreport
27、記錄無線通訊日志:
??? 一般來說,無線通訊的日志非常多,在運(yùn)行時(shí)沒必要去記錄,但我們還是可以通過命令,設(shè)置記錄:
??? adb shell
??? logcat -b radio
28、獲取設(shè)備的ID和序列號(hào):
???? adb get-product
???? adb get-serialno
29、訪問數(shù)據(jù)庫(kù)SQLite3
???? adb shell
???? sqlite3
#cd system/sd/data //進(jìn)入系統(tǒng)內(nèi)指定文件夾
#ls //列表顯示當(dāng)前文件夾內(nèi)容
#rm -r xxx //刪除名字為xxx的文件夾及其里面的所有文件
#rm xxx //刪除文件xxx
#rmdir xxx //刪除xxx的文件夾
四、常用簡(jiǎn)單的adb命令:
1、adb devices: ? ? ? ? ? ? ? ? ? ? ? ?獲取設(shè)備列表和設(shè)備的狀態(tài)
2、adb get-state: ? ? ? ? ? ? ? ? ? ? ?獲取設(shè)備的狀態(tài)(設(shè)備的狀態(tài)有三種:device,設(shè)備連接正常;offline,連接出現(xiàn)異常,設(shè)備無響應(yīng);unknown,設(shè)備未連接;)
3、adb kill-server,adb start-server: ?結(jié)束,啟動(dòng)adb服務(wù)
4、adb install -r: ? ? ? ? ? ? ? ? ? ? 覆蓋安裝應(yīng)用(apk)
5、adb uninstall: ? ? ? ? ? ? ? ? ? ? ?卸載應(yīng)用(應(yīng)用包名)
6、adb pull : ? ? ? ? ? ? ? ? ? ? ? ? ?將設(shè)備上的文件復(fù)制到電腦上
7、adb push : ? ? ? ? ? ? ? ? ? ? ? ? ?將電腦上的文件復(fù)制到設(shè)備上
8、adb reboot : ? ? ? ? ? ? ? ? ? ? ? ?重啟設(shè)備
9、adb connect : ? ? ? ? ? ? ? ? ? ? ? 遠(yuǎn)程連接設(shè)備
10、adb disconnect : ? ? ? ? ? ? ? ? ? 斷開設(shè)備連接
五、adb shell pm基本的命令:
1、列出安裝在設(shè)備上的應(yīng)用
# adb shell pm list package -s ? ? 列出系統(tǒng)應(yīng)用
# adb shell pm list package -3 ? ? 列出第三方的應(yīng)用
# adb shell pm list package -i ? ? 列出來源
# adb shell pm list package -f ? ? 列出包名和路徑
2、列出應(yīng)用apk的位置
# adb shell pm path packagename ? ?列出應(yīng)用apk的位置
3、列出應(yīng)用的詳細(xì)信息
# adb shell pm dump packagename ? ?列出應(yīng)用相關(guān)的信息
4、清除應(yīng)用的緩存數(shù)據(jù)
# adb shell pm clear packagename ? 清除應(yīng)用的緩存數(shù)據(jù)
5、安裝卸載手機(jī)應(yīng)用:
首先將test.apk文件push到手機(jī)目錄中比如/data/local/tmp
# adb shell pm install /data/local/tmp/test.apk ? ? ? 安裝
# adb shell pm install –r /data/local/tmp/test.apk ? ?重新安裝
# adb shell pm uninstall -k packagename ? ? ? ? ? ? ? 卸載,加k保留緩存數(shù)據(jù)
# adb shell pm install -d apk ? ? ? ? ? ? ? ? ? ? ? ? 允許降級(jí)安裝
六、adb shell am基本的命令:
1、啟動(dòng)一個(gè) Activity:
# adb shell am start -n activityname ? ?啟動(dòng)一個(gè) Activity
2、等待頁(yè)面啟動(dòng)完成:
# adb shell am start -W activityname ? ?等待頁(yè)面啟動(dòng)完成
3、先停止應(yīng)用再啟動(dòng):
# adb shell am start -S activityname ? ?先停止應(yīng)用再啟動(dòng)
4、結(jié)束應(yīng)用:
# am force-stop ?packagename ? ? ? ? ? ?結(jié)束應(yīng)用
七、adb shell dumpsys基本的命令:
1、監(jiān)控應(yīng)用數(shù)據(jù):
# adb shell dumpsys cpuinfo ? ? ? cpu信息
# adb shell dumpsys meminfo ? ? ? 內(nèi)存信息
# adb shell dumpsys power ? ? ? ? 電源信息
# adb shell dumpsys battery ? ? ? 電池信息
# adb shell dumpsys wifi ? ? ? ? ?wifi信息
# adb shell dumpsys notification ?通知信息
# adb shell dumpsys activity ? ? ?獲取頁(yè)面信息
八、關(guān)閉某項(xiàng)進(jìn)程,以monkey為例:
殺死m(xù)onkey進(jìn)程:
# ps | grep monkey ? ? 查看monkey進(jìn)程的pid
# kill pid ? ? ? ? ? ? 殺死m(xù)onkey進(jìn)程
五、最近12小時(shí)的資源情況:
# dumpsys procstats --hours 12 ? ?最近12小時(shí)的資源情況
?
九、錄制屏幕命令:
# adb shell screenrecord /sdcard/demo.mp4 ? ?視頻錄制命令
可選參數(shù):
1、限制錄制時(shí)間:
參數(shù): --time-limit
2、指定視頻分辨率大小:
參數(shù): --size
3、指定視頻的比特率:
參數(shù): --bit-rate
4、在命令行顯示log:
參數(shù): --verbose
?
十、截圖命令:
# adb shell screencap -p /sdcard/screen.png ? ?截圖并保存到指定位置
十一、input命令:
adb shell input:
<可選參數(shù)>
#text 輸入文本
#keyevent 輸入事件
#tap 點(diǎn)擊
#swipe 滑動(dòng)<坐標(biāo)><坐標(biāo)為原地,則是長(zhǎng)按>
十二、關(guān)于獲取當(dāng)前頁(yè)面的信息:
# adb shell dumpsys activity top | findstr ACTIVITY ? ?獲取當(dāng)前界面的Activity
# adb shell dumpsys activity | findstr mFocusedActivity ? 獲取當(dāng)前頁(yè)面的activity
十三、生成當(dāng)前頁(yè)面的xml文本:
# adb shell uiautomator dump [file] ? ?獲取當(dāng)前頁(yè)面的xml信息
text 控件中顯示的文本內(nèi)容?
class 控件的類型?
package 包名?
content-desc 說明?
checkable 是否允許check?
checked check狀態(tài)?
clickable 是否允許click?
enabled 控件狀態(tài)?
focusable 是否允許獲取焦點(diǎn)?
focused 是否獲取到焦點(diǎn)?
scrollable 是否允許滾動(dòng)?
long-clickable 是否允許長(zhǎng)安?
password 是否是密碼控件?
selected select狀態(tài)?
bounds 控件繪制的長(zhǎng)寬及位置 四個(gè)數(shù)據(jù),分成兩組,分別是 左上坐標(biāo)和右下坐標(biāo)
?
十四、打印頁(yè)面的log信息:
# logcat -s ActivityManager ? ?打印頁(yè)面的log信息
十五、系統(tǒng)操作指令
adb shell getprop ro.product.model ?獲取設(shè)備型號(hào)
adb shell getprop ro.build.version.release ?獲取設(shè)備 Android 系統(tǒng)版本
adb get-serialno ?獲取設(shè)備的序列號(hào)(設(shè)備號(hào))
adb shell wm size ?獲取設(shè)備屏幕分辨率
adb shell dumpsys activity |find "mFocusedActivity" 查看前臺(tái)應(yīng)用包名,適用于 Android 7.0 以下,必須先啟動(dòng) app
adb shell dumpsys activity |find "mResumedActivity" 查看前臺(tái)應(yīng)用包名,適用于 Android 8.0 以上,必須先啟動(dòng) app
?
常用adb 命令整理_adb命令_thundersoft230的博客-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-406212.html
android調(diào)試工具adb命令大全_Android_腳本之家文章來源地址http://www.zghlxwxcb.cn/news/detail-406212.html
到了這里,關(guān)于常用adb 命令整理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!