Android-adb-常用命令

一.介紹

adb全稱為Android Debug Bridge調試橋, 使PC電腦通過USB或網絡/WIFI連接Android手機!
1.PC電腦端的adb程序是adb.exe(Windows系統), 位于Android SDK\platform-tools\adb.exe
2.Android手機端adb程序是adbd

3.adb可直接操作android手機:
    電腦和手機之間傳輸文件
    安裝和卸載手機apk
    進入手機shell(Linux命令行)     
    啟動app組件(Activity/Service等等)
    輸出日志log
    ......
    
4.Android用戶分類(id小,權限高)
    root用戶   uid 0         gid 0 
    system用戶 uid 1000      gid 1000
    shell用戶  uid 2000      gid 2000
    app用戶    uid 大于10000 gid 大于10000
    
Android像素密度  比值  圖標實例  屏幕實例
xxxhdpi=640      4     192*192   3840*2160
xxhdpi=480       3     144*144   1920*1080
xhdpi=320        2     96*96     1280*720
hdpi=240         1.5   72*72     480*800
mdpi=160(基準)   1     48*48     480*320
ldpi=120         0.75  36*36     320*240

二.adb命令

0.通過網絡/wifi連接手機(必須在同一局域網) 
    adb connect 手機ip

1.查看已連接的Android設備列表及狀態
    adb devices
    
2.查看已連接的Android設備狀態     
    adb get-state

    設備狀態有3鐘
    device:設備正常連接
    offline:連接出現異常,設備無響應
    unknown:沒有連接設備

3.啟動adb服務 adb kill-server
  結束adb服務 adb start-server

4.安裝與卸載應用
    adb install -r apk路徑 (-r覆蓋安裝,-s安裝在sdcard)
    adb uninstall -k app包名 (-k保留數據和緩存)

5.手機與電腦互傳文件
    adb push 電腦文件 手機路徑
    adb pull 手機文件 電腦路徑 (不設置電腦路徑,默認是輸入命令的當前目錄)

6.重啟
    adb reboot 重啟
    adb reboot recovery 重啟到恢復模式
    adb reboot bootloader 重啟到引導模式
    
7.查看應用日志 adb logcat
  查看通信日志 adb logcat -b radio (常用于查看詳細的通話狀態)
  
8.用PC端口通過socket遠程連接Android進程
adb forward tcp:PC端口 jdwp:Android進程
例如:adb forward tcp:8000 jdwp:472

三.adb shell命令(輸入adb shell進入Linux命令環境,以下命令省略adb shell)

命令后加 -h 可以查看幫助信息

1.pm命令(Package Manager,源碼:Pm.java)

查看安裝的應用包名
    pm list package    列出所有應用包名
    pm list package xx 列出指定應用包名(過濾關鍵字)
    pm list package -s 列出系統應用包名
    pm list package -3 列出第三方應用
    pm list package -f 列出APK安裝路徑
    pm list package -i 列出應用安裝來源
    pm list instrumentation 列出含有單元測試的應用
    
查看apk安裝路徑
    pm path app包名
        
權限保護級別:
    normal            - 表示權限是低風險的,不會對系統,用戶或其他應用程序造成危害
    dangerous         - 表示權限是高風險的,系統將可能要求用戶輸入相關信息,才會授予此權限
    signature         - 表示只有當應用程序所用數字簽名與聲明權限的應用程序所用數字簽名相同時,才會授予此權限
    signatureOrSystem - 需要簽名或者系統級應用(放置在/system/app目錄下)才能賦予權限
    system            - 系統級應用(/system/app目錄下)才能賦予權限

查看權限信息  
    pm list permissions
        -g 按組進行列出權限
        -f 打印所有信息
        -s 簡短的摘要
        -d 只有危險的權限列表
        -u 有權限的用戶看到列表/用戶自定義權限
    pm list permission-groups 打印所有已知的權限組
    
    pm grant  <Packagename> <permission>  授予應用權限許可,Android 6.0以上系統
    pm revoke <Packagename> <permission>  撤銷應用權限許可,Android 6.0以上系統
    
查看信息dump    
    pm dump app包名      查看指定包的系統狀態
    pm dump activity名   查看指定activity的信息
    pm dump meminfo      查看當前內存使用信息
    pm dump procstats    查看系統內存使用與一段時間內存匯總
    pm dump usagestats   查看服務使用狀態信息
    pm dump batterystats 查看電池使用狀態信息
    
安裝與卸載應用
    pm install  app包名 (-r覆蓋安裝, -s安裝在sdcard, -d允許降級安裝)   
    pm uninstall app包名 (-k保留/data/data/app包名 或/sdcard/Android/data/app包名)

禁用與啟用應用或組件
    pm disable app包名 或組件
    pm enable app包名 或組件
    
清除應用數據
    pm clear app包名
        
應用默認安裝目錄 
    pm set-install-location 2   設置應用安裝位置 0(auto) 1(手機內部存儲) 2(sdcard)
    pm get-install-location     查看應用默認安裝目錄
    
系統功能與支持庫(support-xx.jar)
    pm list features  打印系統所有功能/硬件相關信息
    pm list libraries 打印當前設備所支持的所有庫存

2.am命令(源碼:Am.java)

啟動應用組件
    am start -n packageName/組件Name
    [-a <ACTION>] 
    [-d <DATA_URI>] 
    [-t <MIME_TYPE>]
    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
啟動相機
    adb shell am start -n com.android.camera/.Camera
打開網頁
    adb shell am start -a android.intent.action.VIEW -d http://lioil.win
撥打電話
    adb shell am start -a android.intent.action.CALL -d tel:10086
發送短信
    adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body cxye#
    
啟動單元測試instrumentation
    am instrument

監控crash與ANR
    am monitor

結束應用
    am force-stop 包名
    
啟動服務
    am startservice 服務名

發送廣播
    am broadcast -a 廣播action

3.input(輸入事件,源碼:Input.java)

發送文本內容(不能發送中文,先將鍵盤設為英文)
    input text helloworld
    
發送按鍵事件
    input keyevent KEYCODE_HOME 模擬按下Home鍵
    input keyevent KEYCODE_BACK 模擬按下返回鍵
    input keyevent KEYCODE_MENU 模擬按下菜單鍵
    input keyevent KEYCODE_A    模擬按下字母A/a
    
發送屏幕觸摸事件
    input tap 200 200 點擊屏幕上坐標為(200,200)的位置

發送滑動事件
    input swipe 600 200 0 200 從右往左滑動
    
Android版本不低于4.4, 可以模擬長按事件(在極小范圍內長時間滑動,就是長按)
    adb shell input swipe 200 200 201 201 2000      

4.截屏和錄屏

截屏
    adb shell screencap -p /sdcard/scr.png  截屏保存至sdcard目錄
    adb pull /sdcard/scr.png                提取到PC端的當前目錄
    
錄屏
    adb shell screenrecord /sdcard/rec.mp4  錄制視頻保存至sdcard目錄(ctrl+c結束)
    adb pull /sdcard/rec.mp4                提取到PC端的當前目錄
    
    默認錄制的視頻太大,可以修改視頻尺寸和比特率
    screenrecord --size 400x800 --bit-rate 0.5M

5.其它命令

查看當前UI界面信息(UI hierchary)
    uiautomator dump
    不加[file]選項時,默認存放在sdcard
            
查看Android設備分辨率 
    wm size
    
查看Android設備參數
    getprop ro.build.version.sdk  獲取系統sdk版本
    getprop | grep version        獲取系統版本參數
    
查看CPU信息
    cat /proc/cpuinfo

查看系統信息(CPU/內存/battery/activity等四大組件)        
    dumpsys cpuinfo
    dumpsys meminfo
    dumpsys battery
    dumpsys diskstats
    dumpsys package
    dumpsys window      
    dumpsys activity | findstr Run  篩選出當前運行的Activity列表
    dumpsys activity activities
    dumpsys activity services
    dumpsys activity broadcasts
    dumpsys activity providers
    dumpsys activity recents (TaskRecord)
    dumpsys activity lastanr
    dumpsys activity processes
    dumpsys activity intents (PendingIntentRecord)
    dumpsys activity permissions (UriPermission)
    dumpsys activity starter
    dumpsys activity settings
    
壓力測試
    monkey -v -p 包名 點擊數     
    adb shell monkey -p com.android.settings 5000 > D:\monkey.log  
    在PC端執行monkey命令,將信息保存至D:\monkey.log      

輸入法(源碼:Ime.java)
    ime list -s  列出輸入法
    ime set xxx  選擇輸入法

四.綜合應用

屏幕解鎖(刪除鎖屏文件)
    rm /data/system/*.key
    rm /data/system/locksettings.*
    
修改開機動畫
    替換 /system/media/bootanimation.zip
    三星系統 需替換 /system/bin/samsungani
    
修改手機字體  
    替換 /system/fonts/xxx.ttf
    
卸載系統應用(需要root權限)
    1.獲取apk安裝路徑
        pm path app包名
    2.移除apk
        rm apk安裝路徑;
    3)刪除殘留文件 
        pm uninstall app包名
        rm -r /data/data/app包名

備份應用和數據
    apk安裝目錄  /data/apk/xxx.apk
    應用數據目錄 /data/data/app包名
    文件復制 cp -f -p -P -r

簡書: http://www.lxweimin.com/p/7c279e77aec7
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/72814275
GitHub博客:http://lioil.win/2017/05/30/adb.html
Coding博客:http://c.lioil.win/2017/05/30/adb.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容