ADB(Android Debug Bridge)

  • 是一個commit的環境,可以和Android設備或模擬器進行溝通。
  • 屬於client-server的架構
  • 在每支手機上都會有個ADBclient端,像DDMSADT也可以產生client
  • 而開發設備(PC)上,就會有個server端,這裡會管理所有連接到該PC上,有RunADB的設備,並確保雙方的溝通。
  • ADB的路徑在Android SDK資料夾中sdk/platform-tools
  • 因此,像BENA12A10Flash裡面的adb,其實直接從Android SDK中復製過來用即可
  • ADBServerClient都藉由PCport 5037來進行溝通

指令介紹

  • Query for Emulator / Devices Instances

adb devices

  • 此指令可查詢目前已連接成功的Emulator or devices
  • 每個devices的命名規則,是依照adb的唯一碼來建立,例如:emulator-55545554就是該設備的console port
  • 每個devices也會有各自的狀態,分別為offlinedeviceno devices
  • Directing Commands to a Specific Emulator/Devices Instance

adb –s <serialNumber> <command>

adb –s emulator-5554 install XXX.apk

  • 若連接了多個設備,可藉由此指令,令某個設備執行某個動作
  • Serial Number指該設備的名稱
  • Install an Application

adb install <patch_to_apk>

  • 安裝apk至設備
  • Copying Files to or from an Emulator / Devices Instance

adb pull <remote> <local>

adb push <local> <remote>

  • 藉由pullpush的指令,可以將檔案從設備中復製出來也可以復製檔案到設備。
  • 這指令與install不同,只是單純的將檔案進行復制而已。
  • Issuing Shell Commands

adb shell
adb shell <shell_command>

  • ADB提供了UNIXcommand環境,可透過此指另進入shell模式。
  • 進入shell模式後,操作就等同於Linux
  • 一般有兩種最常用的command toolsactivity manager(am)package manager(pm)
  • Using activity manager ( am )

am <command>
adb shell am start -a android.intent.action.VIEW

  • 主要針對Activitycommand
  • 可以管理設備的動作,例如開啟/關閉activity、發送broadcast…
  • 也可以接續在adb shell之後使用
  • 其它語法請見:http://developer.android.com/tools/help/adb.html#shellcommands
  • Using package manager ( pm )

pm <command>
adb shell pm uninstall com.example.MyApp

  • 主要針對applicationpackage操作
  • 例如,安裝/刪除某個application
  • 其它語法請見:http://developer.android.com/tools/help/adb.html#shellcommands
  • Examining sqlite3 databases from a remote shell
    • 透過adb remote shell可使用sqlite3command去管理SQLite database
    • sqlite3 command包含許多語法,例如 .dump可印出目前的table
    • tool也可以執行各種SQL的語法
    • 以下為啟動/離開sqlite3的範例(第二行,為進入某一database)

adb -s emulator-5554 shell
# sqlite3
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite>

  • Recodeing a device screen

adb shell screenrecord /sdcard/demo.mp4

  • 能錄製手機目前的畫面,此command可運用在Android 4.4或更高的版本。
  • 錄製的結果可轉存為MP4
  • 此程序可用於錄製宣傳或培訓的影片,不需使用第三方的軟體
  • 終止錄影的方式可以用Ctrl+c 3分鐘後自動停止或是自行設定時間,其語法為  --time-limit
  • 以下為錄影並從手機取出的範例

$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Ctrl-C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4 C:/

  • 錄影的解析度(resolution)bit rate可依使用者需求調整,且會保留設備的長寬比例。
  • 若皆無特別設定,預設為最大解析度與錄製3分鐘。
  • 此方式不支援螢幕旋轉,若在錄製時旋轉螢幕,會造成畫面遭到cut off的問題。
  • 查詢設備版本

adb shell getprop ro.build.version.release

文章標籤
全站熱搜
創作者介紹
創作者 y23462001 的頭像
y23462001

y23462001的部落格

y23462001 發表在 痞客邦 留言(0) 人氣(319)