Android系統 debug 技巧(最全最強adb 串口調試命令)

串口調試命令 debug

adb 命令(去掉adb shell即爲串口命令)

  • 發送廣播

        adb shell am broadcast -a com.android.test
    
  • 打開activity

        adb shell am start -n com.google.android.tungsten.setupwraith/.MainActivity
    
  • adb start-server:啓動adb進程

  • adb connect ip地址 :通過Ip連接設備(在局域網中即可。可以不用adb線)

  • adb kill-server:殺死adb進程

  • adb install E:\yyh.apk

  • adb uninstall 應用包名

  • adb shell pm path com.org.emanual(輸出包名以及路徑)然後再路徑

  • adb devices:列出與開發環境建立連接的android設備的列表

  • adb shell:進入Android命令行

  • adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db “select * from secure”(查看secure數據表)

  • Android的指令:

    • ls:羅列出當前目錄下的所有文件和文件夾
    • ps -A:羅列出當前系統運行的所有進程
  • netstat -ano:查看系統的端口占用情況

  • 截圖

    • adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard)
    • adb pull /sdcard/screenshot.png d:/screenshot.png(保存到電腦)
  • 錄屏

    • adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
    • adb pull /sdcard/demo.mp4 F:\mvp\demo.mp4
  • 批量安裝apk命令,apk文件得拷貝到adb根目錄。

    for %i in (*.apk) do adb install %i

    • 連接adb調試
      有時候要使用連接線去連接android 設置去調試,如果沒有連接線的話,可以將android 設備和
      pc置於同一個局域網中,然後通過 **adb connect android設備ip地址** 去連接調試

串口命令

logcat
- "-s"選項 : 設置輸出日誌的標籤, 只顯示該標籤的日誌;

--"-f"選項 : 將日誌輸出到文件, 默認輸出到標準輸出流中, -f 參數執行不成功;

--"-r"選項 : 按照每千字節輸出日誌, 需要 -f 參數, 不過這個命令沒有執行成功;

--"-n"選項 : 設置日誌輸出的最大數目, 需要 -r 參數, 這個執行 感覺 跟 adb logcat 效果一樣;

--"-v"選項 : 設置日誌的輸出格式, 注意只能設置一項;

--"-c"選項 : 清空所有的日誌緩存信息;

--"-d"選項 : 將緩存的日誌輸出到屏幕上, 並且不會阻塞;

--"-t"選項 : 輸出最近的幾行日誌, 輸出完退出, 不阻塞;

--"-g"選項 : 查看日誌緩衝區信息;

--"-b"選項 : 加載一個日誌緩衝區, 默認是 main, 下面詳解;

--"-B"選項 : 以二進制形式輸出日誌;
        logcat --help z
  • logcat -c(清除還沒吐出來的緩存log)
  • logcat (開始抓log)
  • logcat -s “過濾條件” (只輸出特定的log)
  • logcat -v time(log中帶時間戳)
  • logcat -f 路徑(將logcat保存在一個路徑下)
  • logcat | grep -i wifi(使用管道來進行過濾,查詢wifi並忽略大小寫)
dumpsys

輸出系統在一段時間裏的狀況,包括activity,廣播等之類,比較多

因爲dumpsys刷出來的東西太多,故可以和grep結合使用

dumpsys activity               查看Activity信息 
dumpsys package <package-name> 查看包的信息
dumpsys activity activities    查看Activity棧
dumpsys audio                  查看audio信息
dumpsys |grep BroadcastRecord  查看廣播記錄
dumpsys input                  查看設備對應的kl文件信息
dumpsys wifi                   查看wifi信息
dumpsys activity top 查看頂層應用情況,具體哪一個在最上面
一些常用的串口命令
  • input text 賬號密碼(快速 輸入賬號密碼)

  • getevent (看按鍵鍵值)

  • getprop 系統屬性(得到系統屬性的值)

  • input keyevent 鍵值(模擬按鍵)

  • getenforce(查看selinux的權限)

  • dumpsys window|grep mFocusedWindow(查看當前界面屬於那一個應用)

  • setenforce 0(將selinux的權限去掉)

  • setprop 系統屬性 系統屬性值(設置系統屬性)

settings

** 系統中很多的屬性都是在Setting這個應用設置的,例wifi,藍牙,聲音,亮度等,這些數據主要是存儲在數據庫中,對應的URI爲:content://settings/system和content://settings/secure.對應的數據庫爲: /data/data/com.android.providers.settings/databases/settings.db裏,裏面有三個表global, system, secure.

可以通常這樣查看數據

adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db "select * from secure"

但是自從android 6.0以後這幾個表都變爲了xml文件。具體位置如下:

不同用戶放不同的路徑下,如果沒有創建新用戶,則在/data/system/users/0下

settings_global.xml, settings_system.xml, settings_secure.xml

  • 用代碼設置或者得到系統屬性的值

      Settings.Secure.getInt(getContentResolver() , Settings.Secure.WIFI_ON);
      Settings.System.putInt(mContext.getContentResolver(), key, value);
    
  • 用串口:(system,secure類似)

       settings get global 系統屬性key
    
       settings put global 系統屬性key 系統屬性值
    
pm
  • pm install -r (安裝應用)
  • pm create-user 10(創建用戶)
  • pm list users(列出所有用戶)
  • pm remove-user 10(在主用戶模式下刪除10這個用戶)
  • pm path com.org.emanual(輸出包名以及路徑)然後再路徑
am
  • am switch-user 10(切換到10這個用戶)

wm

  • wm size (讀取屏幕分辨率)
  • wm density(讀取屏幕dpi)
  • wm size 1920x1080(將屏幕分辨率設置爲1920x1080)
  • wm density 300 (將dpi設置爲300)
    -wm size reset (恢復默認值)

今天突然發現一篇將adb 命令整理的很全的文章,這裏分享出來,真是大神啊,這篇文章真的很經典很經典,文章中提到的用法工作中基本都能用到。
ADB 用法大全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章