1. 程式人生 > >Android 中常用ADB命令介紹

Android 中常用ADB命令介紹

ADB(Android Debug Bridge),是Android SDK中的一個工具, 它是在Android sdk/platform-tools 資料夾下的,使用ADB可以直接操作管理Android模擬器或者真實的Andriod裝置。
    ADB主要功能有:
    1、在Android裝置上執行Shell(命令列)
    2、管理模擬器或裝置的埠對映
    3、在計算機和裝置之間上傳/下載檔案
    4、將電腦上的本地APK軟體安裝至Android模擬器或裝置上


ADB的配置
如果你直接進入cmd敲adb命令是沒用的,必須先配置環境變數,右鍵我的電腦-->屬性-->高階設定-->環境變數,然後把我們adb的路徑複製到PATH的後面,如下圖所示:



如果這時敲adb命令還是無效,那麼重啟一下cmd或者拔了USB重啟一下應該就行了。

常用的adb命令

檢視已連線裝置(adb devices)
使用此命令檢視所有的連線裝置,並列出它們的ID,如果存在多個裝置連線,可以使用 adb -s DEVICE_ID 來指定特定的裝置。

安裝應用(adb install <apk檔案路徑>)
這個命令將指定的apk檔案安裝到裝置上,如果裝置上已經安裝了應用,可以使用可選引數 -r 重新進行安裝並保留所有資料。



解除安裝應用(adb uninstall <軟體名>)
如果在uninstall後面加 -k 引數,為解除安裝軟體但是保留配置和快取檔案


進入裝置的命令列(adb shell )
這個命令將登入裝置的shell
    adb shell <command命令>
    後面加<command命令>將是直接執行裝置命令, 相當於執行遠端命令

日誌(adb logcat)
用來在命令列中顯示日誌流
按標籤名過濾
adb logcat -s TAG_NAME
adb logcat -s TAG_NAME_1 TAG_NAME_2



按優先順序過濾
顯示指定告警優先順序及以上的日誌
adb logcat "*:PRIORITY"



按標籤名和優先順序過濾
adb logcat -s TAG_NAME:PRIORITY  
adb logcat -s TAG_NAME_1:PRIORITY TAG_NAME_2:PRIORITY


幫助(adb help)
這個命令將顯示幫助資訊

傳送檔案(adb push<本地路徑> <遠端路徑>)
從電腦上傳送檔案到裝置,adb remount 在執行push命令之前我們還需要使用remount命令獲取上傳檔案許可權。這裡要注意的就是如果你需要向一個二級目錄裡放檔案的時候,一定使用"/"而不能使用"\",原因是android是liunx下的系統,而我們用的是windows。比如:sdcard/aa這樣就好啦,否則會提示找不到或者許可權不夠。



獲取裝置ID(adb get-product)

獲取裝置序列號(adb get-serialno)

檢視Debug報告(adb bugreport)

列出手機裝的所有app的包名(adb shell pm list packages)

列出系統應用的所有包名(adb shell pm list packages -s)

列出除了系統應用的第三方應用包名(adb shell pm list packages -3)





常用的ADB Shell命令
通過adb shell命令進入shell
        a)訪問資料庫
            sqlite3
        b)記錄無線通訊日誌
            一般來說,無線通訊的日誌非常多,在執行時沒必要去記錄,但我們還是可以通過命令,設定記錄:
            logcat -b radio
        c)刪除應用
            Android沒有提供一個解除安裝應用的命令,需要自己手動刪除:
            cd /data/app
            rm 應用名稱.apk
        d)檢視目錄
            ls
        e)列印或設定當前系統時間
            date
        f)檢視記憶體資訊
            cat /proc/meminfo
        g)檢視CPU資訊
            cat /proc/cpuinfo

刪除Android系統Rom自帶的軟體
a.確定手機root了,取得了root許可權才能刪除系統檔案呀.
        b.下載Android_db.rar,解壓到%windir/%System32下.
        c.手機連線資料線,在電腦上開啟cmd,然後輸入命令
                adb remount
                adb shell
                su
                執行完成之後,你會看到:
                * daemon not running. starting it now *
                * daemon started successfully *
        d.接著就是Linux命令列模式了,輸入
                cd system/app
                你會發現沒啥變化,然後輸入ls回車.
                這時候列表顯示了system/app裡面的所有檔案,也就是Rom整合的一些軟體了.
        e.開始刪除吧!比如刪除Youtube,他的檔名是Youtube.odex和Youtube.apk
                我們要刪除這2個檔案,敲入以下命令:
                rm Youtube.*
                重啟,Youtube已經刪除掉了,注意各位同學千萬不要刪除你不知道是啥的東西.


sqlite3 adb命令
進入資料庫的兩種方式
  第一種:sqlite3 資料庫名稱.xx
  第二種:adb shell
            sqlite3

.databases               列出資料庫檔名
.tables ?PATTERN?        列出?PATTERN?匹配的表名
.import FILE TABLE       將檔案中的資料匯入的檔案中
.dump ?TABLE?            生成形成資料庫表的SQL指令碼
.output FILENAME         將輸出匯入到指定的檔案中
.output stdout           將輸出列印到螢幕
.mode MODE ?TABLE?       設定資料輸出模式(csv,html,tcl…
.nullvalue STRING        用指定的串代替輸出的NULL串
.read FILENAME           執行指定檔案中的SQL語句
.schema ?TABLE?          列印建立資料庫表的SQL語句
.separator STRING        用指定的字串代替欄位分隔符
.show                    列印所有SQLite環境變數的設定
.quit                    退出命令列介面



更多的adb命令可以看這裡https://github.com/mzlogin/awesome-adb