adb 全稱 Android Debug Bridge(調(diào)試橋)。
一,adb的作用
adb是一個多用途工具,用來管理模擬器或設(shè)備。 二,組成結(jié)構(gòu)
adb是C/S模式的程序,它包含三個組件:client,server,deamon。 1,Client是運行在我們自己的電腦上??梢酝ㄟ^adb命令來啟動Client。其他的android工具,如ADT插件和DDMS也可以創(chuàng)建client。
2,Server作為后臺程序也是運行在我們自己的電腦上。它的作用是負責Client與Deamon之間的通信。
3,Deamon也是作為后太程序運行的,不過是運行在模擬器實例或設(shè)備實例。
三,端口問題
1,Server端啟動綁定的是本機的5037端口。Client端用5037與服務(wù)器端對話。 2,任何Deamon都會取5555到5585之間兩個連續(xù)的端口,其中奇數(shù)端口是負責與adb鏈接,偶數(shù)端口是負責與控制臺鏈接。服務(wù)器端通過掃描5555到5585之間的奇數(shù)端口來尋找模擬器或設(shè)備實例并與找到的建立鏈接。
四,啟動和終止adb服務(wù)器
1,adb start-server 啟動adb服務(wù)器。 2,adb kill-server 終止adb服務(wù)器。
3,在linux系統(tǒng)下,有時候會涉及到權(quán)限問題而需要以root用戶來運行adb服務(wù)器。
五,查看模擬器或設(shè)備
1,有時候需要確定當前有那些可用的設(shè)備或模擬器,可使用命令:adb devices 。 例如:
~$ sudo /opt/android/android-sdk/tools/adb devices
List of devices attached
emulator-5554 device HT95LKF00945 device 這里就列出了兩個設(shè)備,第一個是模擬器,第二個是手機。 注意:這里是用root用戶來啟動adb服務(wù)器和執(zhí)行adb命令,不然就會出現(xiàn)“no permissions” 2,如果有多個設(shè)備在運行的話,發(fā)送命令時必須用上-s,-e或-d這幾個參數(shù)指定目標設(shè)備。
adb -e 發(fā)送命令到模擬器。
adb -d 發(fā)送命令到到USB設(shè)備,比如手機。
adb -s 指定一個目標。adb -s <serialNumber> <command>install <path-to-apk>
例如:adb -s emulator-5554 install helloWorld.apk
六,執(zhí)行shell命令
adb shell 或 adb shell [<shellCommand>] 后者在執(zhí)行完命令后會退出,兩個命令的區(qū)別一測試便知了。
七,安裝apk程序
adb install <path-to-apk> 八,上傳下載文件
adb pull <remote> <local> 從設(shè)備上下載文件 adb push <local> <remote> 上傳文件到設(shè)備
九,其他功能
help 查看adb所支持的所有命令 version 查看adb的版本序列號
logcat 打印日志到屏幕
bugreport 打印dumpsys,dumpstate和logcat數(shù)據(jù)到屏幕
jdwp 查看指定的設(shè)施的可用的JDWP信息.
forward forward <local> <remote>
get-serialno 查看adb實例的序列號.
get-state 查看模擬器/設(shè)施的當前狀態(tài).
ppp 通過use設(shè)備運行PPP
wait-for-device 如果設(shè)備不聯(lián)機就不讓執(zhí)行。
=========================================================================================================== adb(Android Debug Bridge)是Android 提供的一個通用的調(diào)試工具,借助這個工具,可以管理設(shè)備模擬器的狀態(tài)。還可以進行以下的操作: 1、快速更新設(shè)備或手機模擬器中的代碼,如應(yīng)用或Android系統(tǒng)升級; 2、在設(shè)備上運行shell命令; 3、管理設(shè)備或手機模擬器上的預(yù)定端口; 4、在設(shè)備或手機模擬器上上傳下載文件 adb的工作方式比較特殊采用監(jiān)聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認情況下adb會daemon相關(guān)的網(wǎng)絡(luò)端口,所以 當我們運行Eclipse時adb進程就會自動運行。 ADB是一個 客戶端-服務(wù)器端 程序, 其中客戶端是你用來操作的電腦, 服務(wù)器端是 android設(shè)備. adb shell的一些常見命令 1.adb shell 通過上面的命令,就可以進入設(shè)備或模擬器的shell環(huán)境中,在這個Linux Shell中,你可以執(zhí)行各種Linux 的命令,如果只想執(zhí)行一條命令,可以輸入adb shell cmd eg:adb shell dmesg會打印出內(nèi)核的調(diào)試信息 adb shell logcat v會打印出log信息 adb shell ls列出設(shè)備的目錄列表 2.上傳文件: adb push 下載文件: adb pull /tmp/...指的是在設(shè)備linux環(huán)境中要操作文件的路徑 eg: adb push key data/app 就是將key文件上傳到用戶目錄中 3.安裝程序: adb install <*.apk> 卸載軟件: adb unistall apk(注意卸載的時候和安裝的時候的文件名是不一樣的,例如安裝的時候adb shell GPSStatus2b2.apk,這個apk文件就被安裝在data/app目錄下,但是使用uninstall的時候,首先要到、data/app目 錄下查看安裝的apk文件在linux目錄下的文件名,發(fā)現(xiàn)是com.eclipsim.gpsstatus.apk,使用adb uninstall com.eclipsim.gpsstatus.注意不要加apk后綴。返回success結(jié)果證明文件卸載成功)。 補充一點,通過adb安裝的軟件(*.apk)都在"/data/app/"目錄下,所以安裝時不必制定路徑。 卸載的時候當然也可以直接到目錄下使用rm命令也可。 4.顯示android模擬器狀態(tài): adb devices 列出所有連接的設(shè)備 adb get-serialno 打印設(shè)備序列號 adb version 列出ADB的版本號 adb get-state 打印出的結(jié)果一般是offline | bootloader | device 5.等待正在運行的設(shè)備: adb wait-for-device 6.adb start-server adb kill-server 一般在鍵入adb shell命令后顯示device offline或者是顯示有多個設(shè)備的情況下使用 7.adb remount 重新掛載系統(tǒng)分區(qū),就是將系統(tǒng)分區(qū)重新掛載為可寫。 8. adb root使用管理員權(quán)限 9. adb bugreport打印除所有的bug信息 10.adb shell logcat -b radio 記錄無線通訊日志:一般來說,無線通訊的日志非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設(shè)置記錄: 11.adb emu 12.端口轉(zhuǎn)發(fā): adb forward adb forward tcp:5555 tcp:1234 (將默認端口TCP 5555轉(zhuǎn)發(fā)到1234端口上) |
|