adb 命令大全

ADB 常用命令

  • 查看連接設備
adb devices   //顯示設備列表
adb get-serialno   //獲取設備序列號


  • 重啓adb service
adb kill-server
adb start-server


  • adb 獲取root控制
adb root
adb remount   //將system分區重新掛載爲可讀寫分區


  • adb shell查看系統信息
adb shell cat /proc/meminfo   //查詢系統內存信息
adb shell cat /proc/cpuinfo   //查詢系統cpuinfo
adb shell getprop   //查詢系統屬性
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   //重啓手機
adb reboot bootloader   //重啓到刷機模式
adb reboot recovery   //重啓到recovery,即恢復模式


  • adb push 放文件到手機中
adb push out/target/product/xx/system/bin/vold /system/bin/   //替換手機中的vold,接收路徑最好不要寫成system/bin,會有問題


  • adb pull 從手機中取文件
adb pull /data/data/com.android.providers.settings/databases/settings.db ./   //把手機中設置數據庫拿出來
adb pull /data/anr/ ./   //取出anr目錄下所有文件,包含trace.txt


  • adb sync同步
首先創建一個目錄(如在work下創建sync),在該目錄下創建system/和data目錄,目錄結構和手機中一致,目錄下放置需要同步到手機的文件
export ANDROID_PRODUCT_OUT=/home/hunter/work/sync   注:這是在linux環境下
adb sync   //這時候文件就會通過push的方式同步到手機,因此需要root權限


  • adb logcat 打印log
adb logcat   //打印所有log
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   //顯示日期,調用時間,優先級/標記,PID
adb logcat -v thread   //僅顯示進程:線程和優先級/標記
adb logcat -c   //清除log緩存


  • adb shell查看進程,內存使用信息
adb shell ps   //查看進程列表
adb shell ps -x [PID]   //查看指定進程狀態
adb shell top   //查看設備cpu和內存佔用情況
adb shell procrank   //查詢各進程內存使用情況
adb shell dumpsys meminfo   //dump內存使用信息
VSS - Virtual Set Size 虛擬耗用內存(包含共享庫佔用的內存)
RSS - Resident Set Size 實際使用物理內存(包含共享庫佔用的內存)
PSS - Proportional Set Size 實際使用的物理內存(比例分配共享庫佔用的內存)
USS - Unique Set Size 進程獨自佔用的物理內存(不包含共享庫佔用的內存)


  • adb shell dumpsys
adb shell dumpsys activity   //顯示activity相關的信息
adb shell dumpsys activity services   //查看service使用細節
adb shell dumpsys package   //顯示所有程序信息,包含activity,receiver
adb shell dumpsys cpuinfo   //顯示cpu使用情況信息
adb shell dumpsys battery   //顯示電池狀態
adb shell dumpsys window   //顯示窗口信息
adb shell dumpsys wifi   //顯示wifi信息
adb shell dumpsys statusbar   //顯示狀態欄相關的信息
adb shell dumpsys gfxinfo com.xxxx.xxx  //dump gfxinfo
adb shell dumpsys meminfo   //顯示內存使用情況
adb shell dumpsys meminfo com.android.settings   //顯示設置進程內存使用信息


  • adb無線連接(對於調試otg,sd卡掛載問題很有幫助)
1.打開手機wifi熱點
2.連接數據線,確保可以使用adb,執行adb tcpip 5555
3.pc通過無線網卡,如360wifi,連接手機熱點
4.pc端執行adb connect 192.168.43.1,提示連接成功後,就可以不用數據線也可以debug了
5.adb disconnect斷開連接


  • 開啓/關閉selinux(android 5.0以上版本快速定位是否是selinux導致問題)
adb shell setenforce 1   //開啓selinux
adb shell setenforce 0   //關閉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安裝應用
adb install xx.apk   //安裝apk
adb install -s xx.apk   //安裝到SD卡,需要將安裝位置設置爲有系統決定或外置SD卡
adb install -r xx.apk   //強制安裝,如果已經存在就會覆蓋安裝
adb uninstall xxx(package name)   //卸載程序
adb shell pm uninstall -k xxx(package name)   //卸載程序,不刪除所產生的數據和緩存目錄


  • adb shell input 命令
adb shell input text HelloWorld   //往文本框中輸入HelloWorld
adb shell input keyevent 26   //輸入鍵值,模仿點擊powkey(power key壞了就很有用啦)
adb shell input tap 0 0   //模擬點擊效果,點擊(0,0)位置
adb shell input swipe 500 1000 500 0   //模擬滑動效果,從(500,1000)到(500,0)

//鍵值對應如下:
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   //打開一個網頁


  • adb shell am startservice 啓動一個服務
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)   //啓動一個服務


  • adb shell am broadcast 發送一個廣播
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   //發送內置SD卡掃描完成廣播


  • adb shell pm
adb shell pm list packages   //列出手機上的所有包
adb shell pm clear xxx(包名)   //清除程序數據
adb shell pm get-install-location   //獲取應用程序安裝位置
adb shell pm set-install-location 2   //設置應用程序安裝位置爲外置([0/auto] [1/internal] [2/external])
adb shell pm uninstall [-k] xxx(包名)   //保留數據卸載程序
adb shell pm disable xxx(包名)   //禁言程序
adb shell pm enable xxx(包名)   //啓用程序


  • adb shell am force-stop 強制關閉一個應用
adb shell am force-stop xxx(package name,eg:com.android.deskclock)   //強制關閉一個應用


  • adb shell service 顯示系統服務
adb shell service list   //顯示service列表


  • adb monkey
adb shell monkey -v 500   //產生500次隨機事件
adb shell monkey -v -p com.android.settings 100   //對設置應用執行100次隨機事件


  • 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)   //設置當前輸入法


  • adb shell rm 刪除手機中文件
adb shell rm /data/system/gesture.key   //刪除手勢密碼,你懂的


  • adb shell 設置日期
adb shell date -s "20120801.120503"   //設置系統日期爲2012.08.01.12.05.03


  • 官方文檔
http://developer.android.com/tools/help/adb.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章