Android自動化初探:ADB

來源:互聯網
上載者:User

標籤:des   android   style   blog   http   color   io   os   使用   

進過一段時間的準備,從今天開始自學Android之旅,初步學習會有疏漏,以後我會不斷修改補全,直到完美。

 

Google官方文檔串連:http://developer.android.com/tools/help/adb.html

 

ADB概述:

       Android Debug Bridge,Android調試橋接器,簡稱adb,是用於管理模擬器或真機狀態的萬能工具,採用了用戶端-伺服器模型,包括三個部分:

       1、用戶端部分,運行在開發用的電腦上,可以在命令列中運行adb命令來調用該用戶端,像ADB外掛程式和DDMS這樣的Android工具也可以調用adb用戶端。

       2、服務端部分,是運行在開發用電腦上的後台進程,用於管理用戶端與運行在模擬器或真機的守護進程通訊。

       3、守護進程部分,運行於模擬器或手機的後台。

       當啟動adb用戶端時,用戶端首先檢測adb服務端進程是否運行,如果沒有運行,則啟動服務端。當服務端啟動時,它會綁定到本地的TCP5037連接埠,並且監聽從adb用戶端發來的命令——所有的adb用戶端都使用5037連接埠與adb服務端通訊。

       接下來服務端與所有正在啟動並執行模擬器或手機串連。它通過掃描5555-5585之間的奇數號連接埠來搜尋模擬器或手機,一旦發現adb守護進程,就通過此端 口進行串連。需要說明的是,每一個模擬器或手機使用一對有序的連接埠,偶數號連接埠用於控制台串連,奇數號連接埠用於adb串連,例如:

       Emulator 1, console: 5554
       Emulator 1, adb: 5555
       Emulator 2, console: 5556
       Emulator 2, adb: 5557 ...

       即如果模擬器與adb在5555連接埠串連,則其與控制台的串連就是5554連接埠。

       當服務端與所有的模擬器建立串連之後,就可以使用adb命令來控制或者訪問了。因為服務端管理著串連並且可以接收到從多個adb用戶端的命令,所以可以從任何一個用戶端或指令碼來控制任何模擬器或手機裝置。

ABD位置

 adb tool in <sdk>/platform-tools/.

adb命令:

從開發用電腦的命令列或指令檔中使用adb命令的用法是:

       adb [-d|-e|-s <serialNumber>] <command>

當使用的時候,程式會調用adb用戶端。因為adb用戶端不需要關聯到任何模擬器,所以如果有多個模擬器或手機正在運行,就需要使用-d參數指定要操作的是哪一個。      

  查看adb版本資訊

  adb version

  

  查詢模擬器或手機狀態

   adb devices

       執行結果是adb為每一個裝置輸出以下狀態資訊:

       序號(serialNumber) — 由adb建立的使用控制台連接埠號碼的用於唯一標識一個模擬器或手機裝置的字串,格式是 <裝置類型>-<連接埠號碼>,例如: emulator-5554

       狀態(state) — 串連狀態,其值是:

       offline — 未串連或未響應

       device —已經串連到服務商。注意這個狀態並不表示Android系統已經完全啟動起來,系統啟動的過程中已經可以串連adb,但這個狀態是正常的可操作狀態。

       每一個裝置的輸出形如:

       [serialNumber] [state]

       下面是 devices 命令和其執行結果:

       $ adb devices       List of devices attached       emulator-5554  device       emulator-5556  device       emulator-5558  device

  如果沒有模擬器或手機在運行,則什麼都不返回。

 啟動和結束adb服務:實際調試過程中,經常有串連上手機但是adb devices查不到手機狀態的情況,可通過下面的命令重啟adb服務

   adb kill-server :結束adb服務

   adb start-server :啟動adb服務

 安裝apk

  adb -e install c:\apps\MyFirstApp.apk只有一個裝置的時候:

     

  adb -s emulator-5554 install c:\apps\MyFirstApp.apk :安裝指定手機指定目錄下的apk(真實手機是-d),成功後返回success。

  

  如果輸入錯誤,會報錯。

  

 卸載APK

  方法一:    

  adb uninstall [-k] <package>。

    其中package表示需要卸載的應用的包的名字,k表示是否保留應用的配置資訊和cache資料。

  adb -s emulator-5554 uninstall com.example.myfirstapp  :卸載程式(根據包名), 成功後返回success。

  

  方法二:

  手動刪除。
    adb shell
    cd /data/app
    rm myfirstapp.apk

  

  然後 rm com.example.myfirstapp-1.apk ,不過好像模擬器沒有即時更新,表徵圖還在,不過嘗試開啟的時候,會報錯。

  

 

 複製apk到sd卡

  adb -s emulator-5554 push c:\apps\ESFileExplorer.apk /sdcard/delon/123.apk :複製apk到sd卡(從C盤目錄下的ESFileExplorer.apk複製到sd卡中以123.apk命名,也可以複製目錄)

  

  

  複製apk到本地磁碟

  adb -s emulator-5554 pull /sdcard/delon/123.apk c:\test\ESFile.apk :複製apk到本地磁碟(從sd卡中的123.apk複製到c盤,有重新命名功能)

  

  

  刪除掉sd卡中的制定目錄

  adb -s emulator-5554 shell rm -R /sdcard/delon  : 無任何提示表示刪除成功(同時會刪除掉檔案夾內的所有檔案)

  

  如果刪除失敗,則提示:

  

  寫入記錄檔:

  adb -s emulator-5554 logcat > c:\info.txt :將日誌資訊寫入到檔案中-這個等下次monkey的學習階段,在詳細介紹。

------------------------寫在後面---------------------------

看不懂英文,又覺得文章內容不夠的,可以去看google文檔中文翻譯:http://www.jizhuomi.com/android/environment/191.html

 

Android自動化初探:ADB

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.