ADB命令使用

adb(Android Device Bridge),就是Android設(shè)備與別的設(shè)備交互的一個(gè)橋梁,我們可以通過adb實(shí)現(xiàn)對(duì)Android設(shè)備的一些操作。

基本操作

  • adb devices
    可以查看所有連接的Android設(shè)備。
C:\Users\yeliang>adb devices
List of devices attached
SCIV4SZHOZOFQC9L        device
emulator5554        device
  • adb (-d -e -s) shell
    可以進(jìn)入adb shell模式。出現(xiàn)多臺(tái)設(shè)備同時(shí)連接時(shí),可以使用adb (-d -e -s) shell進(jìn)入指定的設(shè)備。其中,-d(device) 選擇進(jìn)入Android真機(jī)設(shè)備,-e(emulator) 選擇進(jìn)入Android模擬器,-s(serialNumber) 選擇adb devices
    命令后,出現(xiàn)的編碼進(jìn)入相應(yīng)的設(shè)備,如
    adb -s SCIV4SZHOZOFQC9L shell
  • adb (-d -e -s) pull <手機(jī)(from)> <電腦(to)>
    將Android設(shè)備上的文件復(fù)制到本地。注意斜杠 和反斜杠**。
    adb pull /mnt/sdcard/tmp.txt D:\tmp\
  • adb (-d -e -s) push <電腦(from)> <手機(jī)(to)>
    將本地的文件復(fù)制到Android設(shè)備上。
    adb pull D:\tmp\tmp.txt /mnt/sdcard/
  • adb啟動(dòng)activity
    adb shell am start -n {包(package)名}/{包名}.{活動(dòng)(activity)名稱}
    如:啟動(dòng)瀏覽器
    adb shell am start -n com.android.browser/com.android.browser.BrowserActivity
  • adb啟動(dòng)service
    adb shell am startservice -n {包(package)名}/{包名}.{服務(wù)(service)名稱}
    如:啟動(dòng)自己應(yīng)用中一個(gè)service
    adb shell am startservice -n com.yetland.young/com.yetland.young.service.MainService
    若包名一致,則可以簡寫為
    adb shell am startservice -n com.yetland.young/.service.MainService
    若包名不一致,則填寫完整的包名,以免報(bào)錯(cuò)。
  • adb發(fā)送broadcast
    adb shell am broadcast -a <廣播動(dòng)作>
    如:發(fā)送一個(gè)網(wǎng)絡(luò)變化的廣播
    adb shell am broadcast -a android.net.conn.CONNECTIVITY_CHANGE

adb shell am broadcast 后面的參數(shù)有:
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]
例如:

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true

  • 獲取設(shè)備號(hào)
    adb get-serialno

adb install命令

  • 命令
    adb (-d -e -s ) -r install //apk路徑

測(cè)試說明,路徑中有中文不影響安裝

-r 代表強(qiáng)制安裝。
若手機(jī)中已有包名相同的apk且未使用 -r 則會(huì)報(bào)**INSTALL_FAILED_ALREADY_EXISTS **錯(cuò)誤。若使用,可直接替換。
使用 -r 可在一定程度上降低安裝的失敗率。

  • 常見錯(cuò)誤

INSTALL_FAILED_ALREADY_EXISTS 程序已經(jīng)存在
INSTALL_FAILED_INVALID_APK 無效的APK
INSTALL_FAILED_INVALID_URI 無效的鏈接
INSTALL_FAILED_INSUFFICIENT_STORAGE 沒有足夠的存儲(chǔ)空間
INSTALL_FAILED_DUPLICATE_PACKAGE 已存在同名程序
INSTALL_FAILED_NO_SHARED_USER 要求的共享用戶不存在
INSTALL_FAILED_UPDATE_INCOMPATIBLE 版本不能共存
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 需求的共享用戶簽名錯(cuò)誤
INSTALL_FAILED_MISSING_SHARED_LIBRARY 需求的共享庫已丟失
INSTALL_FAILED_REPLACE_COULDNT_DELETE 需求的共享庫無效
INSTALL_FAILED_DEXOPT dex優(yōu)化驗(yàn)證失敗
INSTALL_FAILED_OLDER_SDK 系統(tǒng)版本過舊
INSTALL_FAILED_CONFLICTING_PROVIDER 存在同名的內(nèi)容提供者

INSTALL_FAILED_NEWER_SDK 系統(tǒng)版本過新
INSTALL_FAILED_TEST_ONLY 調(diào)用者不被允許測(cè)試的測(cè)試程序
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含的本機(jī)代碼不兼容
CPU_ABIINSTALL_FAILED_MISSING_FEATURE 使用了一個(gè)無效的特性
INSTALL_FAILED_CONTAINER_ERROR SD卡訪問失敗
INSTALL_FAILED_INVALID_INSTALL_LOCATION 無效的安裝路徑
INSTALL_FAILED_MEDIA_UNAVAILABLE SD卡不存在
INSTALL_FAILED_INTERNAL_ERROR 系統(tǒng)問題導(dǎo)致安裝失敗
DEFAULT 未知錯(cuò)誤

adb uninstall命令

  • 方式1
  adb shell
  cd data/app
  rm // 包名
  exit
  • 方式2
adb (-d -e -s) [-r] uninstall // 包名
-r 代表卸載時(shí)保存數(shù)據(jù)

adb 文件操作

  • 基本命令

adb shell ls mnt 查看所有設(shè)備存儲(chǔ)設(shè)備名
adb remount 將 system 分區(qū)重新掛載為可讀寫分區(qū)
adb push <local> <remote> 從本地復(fù)制文件到設(shè)備
adb pull <remote> <local> 從設(shè)備復(fù)制文件到本地
adb shell ls 列出目錄下的文件和文件夾
adb shell cd <folder> 進(jìn)入文件夾
adb shell rm [-r] <path/filename> ** 刪除文件(夾)。操作為文件夾時(shí)需加上-r**
adb shell cat <file> ** 查看文件內(nèi)容**
adb shell mkdir path/foldername 新建文件夾

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,109評(píng)論 25 709
  • 學(xué)習(xí)Android的小伙伴們一定都聽過ADB吧,如果沒有聽過也沒有關(guān)系,下面我將介紹ADB及一些ADB命令的使用技...
    冰鑒IT閱讀 1,936評(píng)論 2 11
  • 福利大放送 這是對(duì)好多adb命令行的總結(jié),很實(shí)用,有些東西知道了之后就會(huì)特別酷炫: 內(nèi)容 指定目標(biāo)設(shè)備: 如果只有...
    Only凹凸曼閱讀 2,759評(píng)論 1 6
  • 分析 該項(xiàng)目最關(guān)健的地方在于緩存系統(tǒng),架構(gòu)圖如下 基本思路 1.View層(比如fragment)中需要數(shù)據(jù),然后...
    minminaya閱讀 627評(píng)論 1 2
  • 下面本人自己試驗(yàn)成功的步驟。看到還有很多其他的步驟來達(dá)到相同的目的,根據(jù)自己喜好熟練度選擇。 環(huán)境 theos 創(chuàng)...
    pipa閱讀 3,281評(píng)論 0 2

友情鏈接更多精彩內(nèi)容