adb(Android Device Bridge)觅玻,就是Android設(shè)備與別的設(shè)備交互的一個(gè)橋梁,我們可以通過(guò)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)名稱}
如:?jiǎn)?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)名稱}
如:?jiǎn)?dòng)自己應(yīng)用中一個(gè)service
adb shell am startservice -n com.yetland.young/com.yetland.young.service.MainService
若包名一致,則可以簡(jiǎn)寫為
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è)試說(shuō)明担平,路徑中有中文不影響安裝
-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 無(wú)效的APK
INSTALL_FAILED_INVALID_URI 無(wú)效的鏈接
INSTALL_FAILED_INSUFFICIENT_STORAGE 沒(méi)有足夠的存儲(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 需求的共享庫(kù)已丟失
INSTALL_FAILED_REPLACE_COULDNT_DELETE 需求的共享庫(kù)無(wú)效
INSTALL_FAILED_DEXOPT dex優(yōu)化驗(yàn)證失敗
INSTALL_FAILED_OLDER_SDK 系統(tǒng)版本過(guò)舊
INSTALL_FAILED_CONFLICTING_PROVIDER 存在同名的內(nèi)容提供者
INSTALL_FAILED_NEWER_SDK 系統(tǒng)版本過(guò)新
INSTALL_FAILED_TEST_ONLY 調(diào)用者不被允許測(cè)試的測(cè)試程序
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含的本機(jī)代碼不兼容
CPU_ABIINSTALL_FAILED_MISSING_FEATURE 使用了一個(gè)無(wú)效的特性
INSTALL_FAILED_CONTAINER_ERROR SD卡訪問(wèn)失敗
INSTALL_FAILED_INVALID_INSTALL_LOCATION 無(wú)效的安裝路徑
INSTALL_FAILED_MEDIA_UNAVAILABLE SD卡不存在
INSTALL_FAILED_INTERNAL_ERROR 系統(tǒng)問(wèn)題導(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 新建文件夾