ADB 常用命令
查看連接設(shè)備
adb devices //顯示設(shè)備列表
adb get-serialno //獲取設(shè)備序列號
重啟adb service
adb kill-server
adb start-server
adb 獲取root控制
adb root
adb remount //將system分區(qū)重新掛載為可讀寫分區(qū)
adb shell查看系統(tǒng)信息
adb shell cat /proc/meminfo //查詢系統(tǒng)內(nèi)存信息
adb shell cat /proc/cpuinfo //查詢系統(tǒng)cpuinfo
adb shell getprop //查詢系統(tǒng)屬性
adb shell getprop |grep ro.product.board //過濾ro.product.board屬性
adb shell cat /sys/class/net/wlan0/address //查看mac地址
adb shell cat /data/misc/wifi/*.conf //查看wifi密碼(有root好可怕)
adb 重啟
adb shell stop;adb shell start //重啟android
adb shell kill -9 system_server/zygote pid //重啟android
adb reboot //重啟手機(jī)
adb reboot bootloader //重啟到刷機(jī)模式
adb reboot recovery //重啟到recovery,即恢復(fù)模式
adb push 放文件到手機(jī)中
adb push out/target/product/xx/system/bin/vold /system/bin/ //替換手機(jī)中的vold,接收路徑最好不要寫成system/bin,會有問題
adb pull 從手機(jī)中取文件
adb pull /data/data/com.android.providers.settings/databases/settings.db ./ //把手機(jī)中設(shè)置數(shù)據(jù)庫拿出來
adb pull /data/anr/ ./ //取出anr目錄下所有文件,包含trace.txt
adb sync同步
首先創(chuàng)建一個目錄(如在work下創(chuàng)建sync),在該目錄下創(chuàng)建system/和data目錄,目錄結(jié)構(gòu)和手機(jī)中一致,目錄下放置需要同步到手機(jī)的文件
export ANDROID_PRODUCT_OUT=/home/hunter/work/sync 注:這是在linux環(huán)境下
adb sync //這時候文件就會通過push的方式同步到手機(jī),因此需要root權(quán)限
adb logcat 打印log
adb logcat //打印所有l(wèi)og
adb shell logcat //同上
adb locat > ./log.txt //重定向到log.txt
adb logcat |tee ./log.txt //重定向到log.txt,并在控制臺輸出
adb logcat -b main //過濾main log
adb logcat -b events //過濾event log
adb logcat -b radio //過濾radio log
adb logcat -b system //過濾system log(SLOG)
adb logcat -s "TAG" //過濾某個TAG的log
adb logcat *:e //過濾error log
adb logcat *:w //過濾warn log
adb logcat MountService:I Vold:I *:S //打印TAG為MountService和Vold的Info以上級別的log
adb logcat -v time //顯示日期,調(diào)用時間,優(yōu)先級/標(biāo)記,PID
adb logcat -v thread //僅顯示進(jìn)程:線程和優(yōu)先級/標(biāo)記
adb logcat -c //清除log緩存
adb shell查看進(jìn)程,內(nèi)存使用信息
adb shell ps //查看進(jìn)程列表
adb shell ps -x [PID] //查看指定進(jìn)程狀態(tài)
adb shell top //查看設(shè)備cpu和內(nèi)存占用情況
adb shell procrank //查詢各進(jìn)程內(nèi)存使用情況
adb shell dumpsys meminfo //dump內(nèi)存使用信息
VSS - Virtual Set Size 虛擬耗用內(nèi)存(包含共享庫占用的內(nèi)存)
RSS - Resident Set Size 實(shí)際使用物理內(nèi)存(包含共享庫占用的內(nèi)存)
PSS - Proportional Set Size 實(shí)際使用的物理內(nèi)存(比例分配共享庫占用的內(nèi)存)
USS - Unique Set Size 進(jìn)程獨(dú)自占用的物理內(nèi)存(不包含共享庫占用的內(nèi)存)
adb shell dumpsys
adb shell dumpsys activity //顯示activity相關(guān)的信息
adb shell dumpsys activity services //查看service使用細(xì)節(jié)
adb shell dumpsys package //顯示所有程序信息,包含activity,receiver
adb shell dumpsys cpuinfo //顯示cpu使用情況信息
adb shell dumpsys battery //顯示電池狀態(tài)
adb shell dumpsys window //顯示窗口信息
adb shell dumpsys wifi //顯示wifi信息
adb shell dumpsys statusbar //顯示狀態(tài)欄相關(guān)的信息
adb shell dumpsys gfxinfo com.xxxx.xxx //dump gfxinfo
adb shell dumpsys meminfo //顯示內(nèi)存使用情況
adb shell dumpsys meminfo com.android.settings //顯示設(shè)置進(jìn)程內(nèi)存使用信息
adb無線連接(對于調(diào)試otg,sd卡掛載問題很有幫助)
1.打開手機(jī)wifi熱點(diǎn)
2.連接數(shù)據(jù)線,確保可以使用adb,執(zhí)行adb tcpip 5555
3.pc通過無線網(wǎng)卡,如360wifi,連接手機(jī)熱點(diǎn)
4.pc端執(zhí)行adb connect 192.168.43.1,提示連接成功后,就可以不用數(shù)據(jù)線也可以debug了
5.adb disconnect斷開連接
開啟/關(guān)閉selinux(android 5.0以上版本快速定位是否是selinux導(dǎo)致問題)
adb shell setenforce 1 //開啟selinux
adb shell setenforce 0 //關(guān)閉selinux
屏幕錄制(kk及以后版本才可以)
adb shell screenrecord /sdcard/demo.mp4 //錄制的視頻位于SD卡上
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4 //限制錄制時間,單位s
adb shell screenrecord --size 1280*720 /sdcard/demo.mp4 //指定視頻分辨率大小
adb install安裝應(yīng)用
adb install xx.apk //安裝apk
adb install -s xx.apk //安裝到SD卡,需要將安裝位置設(shè)置為有系統(tǒng)決定或外置SD卡
adb install -r xx.apk //強(qiáng)制安裝,如果已經(jīng)存在就會覆蓋安裝
adb uninstall xxx(package name) //卸載程序
adb shell pm uninstall -k xxx(package name) //卸載程序,不刪除所產(chǎn)生的數(shù)據(jù)和緩存目錄
adb shell input 命令
adb shell input text HelloWorld //往文本框中輸入HelloWorld
adb shell input keyevent 26 //輸入鍵值,模仿點(diǎn)擊powkey(power key壞了就很有用啦)
adb shell input tap 0 0 //模擬點(diǎn)擊效果,點(diǎn)擊(0,0)位置
adb shell input swipe 500 1000 500 0 //模擬滑動效果,從(500,1000)到(500,0)
//鍵值對應(yīng)如下:
KEYCODE_UNKNOWN : 0 KEYCODE_MENU : 1 KEYCODE_SOFT_RIGHT : 2 KEYCODE_HOME : 3
KEYCODE_BACK : 4 KEYCODE_CALL : 5 KEYCODE_ENDCALL : 6 KEYCODE_0 : 7
KEYCODE_1 : 8 KEYCODE_2 : 9 KEYCODE_3 : 10 KEYCODE_4 : 11
KEYCODE_5 : 12 KEYCODE_6 : 13 KEYCODE_7 : 14 KEYCODE_8 : 15
KEYCODE_9 : 16 KEYCODE_STAR : 17 KEYCODE_POUND : 18 KEYCODE_DPAD_UP : 19
KEYCODE_DPAD_DOWN : 20 KEYCODE_DPAD_LEFT : 21 KEYCODE_DPAD_RIGHT : 22 KEYCODE_DPAD_CENTER : 23
KEYCODE_VOLUME_UP : 24 KEYCODE_VOLUME_DOWN : 25 KEYCODE_POWER : 26 KEYCODE_CAMERA : 27
KEYCODE_CLEAR : 28 KEYCODE_A : 29 KEYCODE_B : 30 KEYCODE_C : 31
KEYCODE_D : 32 KEYCODE_E : 33 KEYCODE_F : 34 KEYCODE_G : 35
KEYCODE_H : 35 KEYCODE_I : 37 KEYCODE_J : 38 KEYCODE_K : 39
KEYCODE_L : 40 KEYCODE_M : 41 KEYCODE_N : 42 KEYCODE_O : 43
KEYCODE_P : 44 KEYCODE_Q : 45 KEYCODE_R : 46 KEYCODE_S : 47
KEYCODE_T : 48 KEYCODE_U : 49 KEYCODE_V : 50 KEYCODE_W : 51
KEYCODE_X : 52 KEYCODE_Y : 53 KEYCODE_Z : 54 KEYCODE_COMMA : 55
KEYCODE_PERIOD : 56 KEYCODE_ALT_LEFT : 57 KEYCODE_ALT_RIGHT : 58 KEYCODE_SHIFT_LEFT : 59
KEYCODE_SHIFT_RIGHT : 60 KEYCODE_TAB : 61 KEYCODE_SPACE : 62 KEYCODE_SYM : 63
KEYCODE_EXPLORER : 64 KEYCODE_ENVELOPE : 65 KEYCODE_ENTER : 66 KEYCODE_DEL : 67
KEYCODE_GRAVE : 68 KEYCODE_MINUS : 69 KEYCODE_EQUALS : 70 KEYCODE_LEFT_BRACKET : 71
KEYCODE_SLASH : 76 KEYCODE_AT : 77 KEYCODE_NUM : 78 KEYCODE_HEADSETHOOK : 79
KEYCODE_FOCUS : 80 KEYCODE_PLUS : 81 KEYCODE_MENU : 82 KEYCODE_NOTIFICATION : 83
KEYCODE_SEARCH : 84 TAG_LAST_KEYCODE : 85 KEYCODE_RIGHT_BRACKET : 72 KEYCODE_BACKSLASH : 73
KEYCODE_SEMICOLON : 74 KEYCODE_APOSTROPHE : 75
adb shell am start 啟動一個activity
adb shell am start -a xxx(action,eg:android.intent.action.VIEW) //啟動activity action
adb shell am start -n xxx/.xx(package/.class,eg:com.android.settings/.Settings) //啟動activity
adb shell am start -a android.intent.action.CALL -d tel:10086 //給10086撥打一個電話
adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com //打開一個網(wǎng)頁
adb shell am startservice 啟動一個服務(wù)
adb shell am startservice -a xxx(action,eg:android.media.IMediaScannerService) //啟動一個service action
adb shell am startservice -n xxx/.xx(package/.class,eg:com.android.providers.media/.MediaScannerService) //啟動一個服務(wù)
adb shell am broadcast 發(fā)送一個廣播
adb shell am broadcast -a xxx(action,eg:android.intent.action.MEDIA_SCANNER_FINISHED) //啟動一個廣播 action
adb shell am broadcast -n xxx/.xx //啟動一個廣播
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_FINISHED -d file:///system/media //發(fā)送內(nèi)置SD卡掃描完成廣播
adb shell pm
adb shell pm list packages //列出手機(jī)上的所有包
adb shell pm clear xxx(包名) //清除程序數(shù)據(jù)
adb shell pm get-install-location //獲取應(yīng)用程序安裝位置
adb shell pm set-install-location 2 //設(shè)置應(yīng)用程序安裝位置為外置([0/auto] [1/internal] [2/external])
adb shell pm uninstall [-k] xxx(包名) //保留數(shù)據(jù)卸載程序
adb shell pm disable xxx(包名) //禁言程序
adb shell pm enable xxx(包名) //啟用程序
adb shell am force-stop 強(qiáng)制關(guān)閉一個應(yīng)用
adb shell am force-stop xxx(package name,eg:com.android.deskclock) //強(qiáng)制關(guān)閉一個應(yīng)用
adb shell service 顯示系統(tǒng)服務(wù)
adb shell service list //顯示service列表
adb monkey
adb shell monkey -v 500 //產(chǎn)生500次隨機(jī)事件
adb shell monkey -v -p com.android.settings 100 //對設(shè)置應(yīng)用執(zhí)行100次隨機(jī)事件
adb shell ime 輸入法管理
adb shell ime list //顯示輸入法
adb shell ime enable ID(com.sohu.inputmethod.sogou/.SogouIME) //啟用輸入法
adb shell ime disable ID(com.sohu.inputmethod.sogou/.SogouIME) //禁掉輸入法
adb shell ime set ID(com.sohu.inputmethod.sogou/.SogouIME) //設(shè)置當(dāng)前輸入法
adb shell rm 刪除手機(jī)中文件
adb shell rm /data/system/gesture.key //刪除手勢密碼,你懂的
adb shell 設(shè)置日期
adb shell date -s "20120801.120503" //設(shè)置系統(tǒng)日期為2012.08.01.12.05.03
官方文檔
http://developer.android.com/tools/help/adb.html |