ADB(Android Debug Bridge)
- 是一個commit的環境,可以和Android設備或模擬器進行溝通。
- 屬於client-server的架構
- 在每支手機上都會有個ADB的client端,像DDMS或ADT也可以產生client端
- 而開發設備(PC)上,就會有個server端,這裡會管理所有連接到該PC上,有Run起ADB的設備,並確保雙方的溝通。
- ADB的路徑在Android SDK資料夾中sdk/platform-tools中
- 因此,像BEN在A12、A10的Flash裡面的adb,其實直接從Android SDK中復製過來用即可
- ADB的Server與Client都藉由PC的port 5037來進行溝通
指令介紹
- Query for Emulator / Devices Instances
adb devices
- 此指令可查詢目前已連接成功的Emulator or devices
- 每個devices的命名規則,是依照adb的唯一碼來建立,例如:emulator-5554,5554就是該設備的console port。
- 每個devices也會有各自的狀態,分別為offline、device、no 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>
- 藉由pull和push的指令,可以將檔案從設備中復製出來也可以復製檔案到設備。
- 這指令與install不同,只是單純的將檔案進行復制而已。
- Issuing Shell Commands
adb shell
adb shell <shell_command>
- ADB提供了UNIX的command環境,可透過此指另進入shell模式。
- 進入shell模式後,操作就等同於Linux
- 一般有兩種最常用的command tools,activity manager(am)和package manager(pm)
- Using activity manager ( am )
am <command>
adb shell am start -a android.intent.action.VIEW
- 主要針對Activity的command
- 可以管理設備的動作,例如開啟/關閉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
- 主要針對application的package操作
- 例如,安裝/刪除某個application
- 其它語法請見:http://developer.android.com/tools/help/adb.html#shellcommands
- Examining sqlite3 databases from a remote shell
- 透過adb remote shell可使用sqlite3的command去管理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
文章標籤
全站熱搜
