1. 程式人生 > 實用技巧 >linux___安裝虛擬環境(centos)

linux___安裝虛擬環境(centos)

Android Debug Bridge

adb其實就是Android Debug Bridge, Android 除錯橋的縮寫,adb 是一個C/S架構的命令列工具

這裡介紹一些裡面常用的命令:

  • adb devices , 獲取裝置列表及裝置狀態

    [xuxu:~]$ adb devices
    List of devices attached 
    44c826a0    device  
  • adb get-state , 獲取裝置的狀態

    [xuxu:~]$ adb get-state  
    device

    裝置的狀態有 3 鍾,device,offline,unknown

    device:裝置正常連線


    offline:連接出現異常,裝置無響應

    unknown:沒有連線裝置

  • adb kill-server , adb start-server , 結束 adb 服務, 啟動 adb 服務,通常兩個命令一起用

    一般在連接出現異常,使用 adb devices 未正常列出裝置, 裝置狀態異常時使用 kill-server,然後執行 start-server 進行重啟服務

  • adb logcat , 列印 Android 的系統日誌,這個可以單獨拿出來講

  • adb bugreport , 列印dumpsys、dumpstate、logcat的輸出,也是用於分析錯誤

    輸出比較多,建議重定向到一個檔案中

    adb bugreport > d:\bugreport.log
  • adb install , 安裝應用,覆蓋安裝是使用 -r 選項

    windows 下如果需要安裝含有中文名的 apk ,需要對 adb 進行修改,百度可以找到做出修改的adb , 支援中文命令的 apk,請自行搜尋

  • adb uninstall , 解除安裝應用,後面跟的引數是應用的包名,請區別於apk 檔名

    '-k' means keep the data and cache directories , -k 選項,解除安裝時儲存資料和快取目錄

  • adb pull , 將 Android 裝置上的檔案或者資料夾複製到本地


    例如複製 Sdcard 下的 pull.txt 檔案到 D 盤:

    adb pull sdcard/pull.txt d:\

    如果需要重新命名為 rename.txt:

    adb pull sdcard/pull.txt d:\rename.txt
  • adb push , 推送本地檔案至 Android 裝置

    例如推送 D 盤下的 push.txt 至 Sdcard:

    adb push d:\push.txt sdcard/

    sdcard 後面的斜槓不能少,否則會出現下面的錯誤:

    [xuxu:~]$ adb push push.txt sdcard
    failed to copy 'push.txt' to 'sdcard': Is a directory

    許可權問題同 pull 命令

  • adb root , adb remount, 只針對類似小米開發版的手機有用,可以直接已這兩個命令獲取 root 許可權,並掛載系統檔案系統為可讀寫狀態

  • adb reboot , 重啟 Android 裝置

    bootloader , 重啟裝置,進入 fastboot 模式,同 adb reboot-bootloader 命令

    recovery , 重啟裝置,進入 recovery 模式,經常刷機的同學比較熟悉這個模式

  • adb forward , 將 宿主機上的某個埠重定向到裝置的某個埠

    adb forward tcp:1314 tcp :8888

    執行該命令後所有發往宿主機 1314 埠的訊息、資料都會轉發到 Android 裝置的 8888 埠上,因此可以通過遠端的方式控制 Android 裝置。

  • adb connect 遠端連線 Android 裝置

adb 命令是 adb 這個程式自帶的一些命令,而 adb shell 則是呼叫的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 裝置的 system/bin 目錄下

  • pm list package 列出安裝在裝置上的應用

    不帶任何選項:列出所有的應用的包名(不知道怎麼找應用的包名的同學看這裡)

    adb shell pm list package

    -s:列出系統應用

    adb shell pm list package -s 

    -3:列出第三方應用

    adb shell pm list package -3

    -f:列出應用包名及對應的apk名及存放位置

    adb shell pm list package -f

    -i:列出應用包名及其安裝來源,結果顯示例子:

    package:com.zhihu.android installer=com.xiaomi.market

    adb shell pm list package -i

    命令最後增加 FILTER:過濾關鍵字,可以很方便地查詢自己想要的應用

    引數組合使用,例如,查詢三方應用中知乎的包名、apk存放位置、安裝來源:

    [xuxu:~]$ adb shell pm list package -f -3 -i zhihu
    package:/data/app/com.zhihu.android-1.apk=com.zhihu.android  installer=com.xiaomi.market
  • pm path 列出對應包名的 .apk 位置

    [xuxu:~]$ adb shell pm path com.tencent.mobileqq
    package:/data/app/com.tencent.mobileqq-1.apk
  • pm list instrumentation , 列出含有單元測試 case 的應用,後面可跟引數 -f (與 pm list package 中一樣),以及 [TARGET-PACKAGE]

    • pm clear , 清除應用資料

    • pm set-install-location , pm get-install-location , 設定應用安裝位置,獲取應用安裝位置

    • [0/auto]:預設為自動

      [1/internal]:預設為安裝在手機內部

      [2/external]:預設安裝在外部儲存