Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
你可能不知道指令可以做的事 @ Android 11 Meetups
Search
Shaka Huang
June 18, 2020
How-to & DIY
0
370
你可能不知道指令可以做的事 @ Android 11 Meetups
ADB (Android Debug Bridge)
======================
* 簡介與基本操作
* Android 11 的新功能
* 進階用法
Shaka Huang
June 18, 2020
Tweet
Share
More Decks by Shaka Huang
See All by Shaka Huang
刷機實驗室
shakalaca
0
280
Android Studio Walkthrough
shakalaca
19
2.1k
Android Development with Gradle
shakalaca
2
170
Head First Android Apps Dev Tools
shakalaca
6
500
Gradle enabled android project
shakalaca
5
400
IAB x Redeem in Android
shakalaca
0
120
老爹必備的奶瓶與鍵盤之道
shakalaca
3
410
Pai Pai First DEMO
shakalaca
2
110
Other Decks in How-to & DIY
See All in How-to & DIY
DroidKaigi 2024 - 海外就職というキャリアの選択肢
iyotetsuya
1
520
Terra Charge|EVコンセントご利用ガイドブック / Terra Charge EV Charger Guidebook
contents
0
1.1k
静岡県のお相撲さん20240509/sumo_wrestler_from_shizuoka_prefecture_20240509
nicepapa_hirano
0
110
[너구리랑! 회고 밋업 2023] CTO 1년 회고와 회고를 바탕으로 만든 프로젝트에 대한 회고 - 전문가가 되는 방법 // 한날 님
develop_neoguri
0
160
AWS Community Day 2024: Using AWS to build a launchable knowledge rocket 👉 Organize knowledge, accelerate learning and understand AI in the process
dwchiang
0
150
How to get hundreds of organic backlinks through statistics link building
ronishehu
1
180
Raspberry PiではじめるKiCad入門 / 20240226-rpi-jam
akkiesoft
1
4k
M5Stickと超小型エッジAIカメラ「AITRIOS」
hoshinoresearch
0
330
工作教室 ロボットハンドを作ろう
keicafeblack
0
140
田中 is a new HelloWorld
akichika
1
260
JAWS Days 2024 Keynote by Jeff Barr
awsjcpm
0
140
「おうちクラウド」が今も熱い!
hirosat
2
1k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
How GitHub (no longer) Works
holman
311
140k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Why Our Code Smells
bkeepers
PRO
335
57k
Fireside Chat
paigeccino
34
3.1k
Mobile First: as difficult as doing things right
swwweet
222
9k
GitHub's CSS Performance
jonrohan
1031
460k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Transcript
GDG Taichung 你可能不知道指令可 以做到的事 shakalaca
GDG Taichung 用鍵盤搞手機
GDG Taichung 使用 adb 控制手機
2019 | Confidential and Proprietary GDG Taichung ADB (Android Debug
Bridge) • 簡介與基本操作 • Android 11 的新功能 • 進階用法
2019 | Confidential and Proprietary GDG Taichung ADB (Android Debug
Bridge) • 簡介與基本操作 • Android 11 的新功能 • 進階用法
GDG Taichung 簡介
GDG Taichung 這是什麼? • Android Debug Bridge • 針對 apk
(app) 進行安裝除錯 • 手機與電腦間的檔案傳輸 • 改變手機狀態
GDG Taichung 這是什麼? • Android Debug Bridge • 針對 apk
(app) 進行安裝除錯 • 手機與電腦間的檔案傳輸 • 改變手機狀態 • 架構 ◦ Client (adb 指令本人) ◦ Server (電腦端負責 client 與 daemon 的溝通) ◦ Daemon (手機上接收命令)
GDG Taichung 如何取得 ?
GDG Taichung 如何取得 ? https://developer.android.com/studio/releases/platform-tools
GDG Taichung 怎麼使用 ? (設定) • 手機開啟 Developer options ◦
連續點擊 Build number
GDG Taichung 怎麼使用 ? (設定) • 手機開啟 Developer options ◦
連續點擊 Build number • 啟用 USB debugging 功能
GDG Taichung 怎麼使用 ? (設定) • 手機開啟 Developer options ◦
連續點擊 Build number • 啟用 USB debugging 功能
GDG Taichung 怎麼使用 ? (設定) • 手機開啟 Developer options ◦
連續點擊 Build number • 啟用 USB debugging 功能 • 接線 (optional) 安裝 driver
GDG Taichung 怎麼使用 ? • adb devices • adb shell
◦ exit 退出 ◦ Ctrl-D
GDG Taichung 透過網路使用 adb • adb tcpip port ◦ adb
connect [ip[:port]] ◦ adb disconnect [ip[:port]] • adb usb
GDG Taichung 基本操作
GDG Taichung 針對 apk (app) 進行安裝除錯 • adb install <options>
my_awesome_app.apk ◦ -r: replace existing application ◦ -t: allow test packages ◦ -d: allow version code downgrade (debuggable only) ◦ --abi: armeabi-v7a/arm64-v8a/x86/x86_64 • adb uninstall <options> my.awesome.app ◦ -k: keep the data and cache directories
GDG Taichung 查看系統訊息 • adb logcat ◦ --pid=xxx -v tag
◦ adb shell "logcat --pid=\`ps -eo PID,ARGS=CMD | grep my.awesome.app | grep -v grep | awk '{print \$1}'\` -v tag" | tee debug.log
GDG Taichung 檔案傳輸 • 將檔案 推 入手機 ◦ adb push
<local_file_or_dir_path> <path_or_filename_on_phone> ▪ adb push funny_video.mp4 /sdcard/Movies ▪ adb push MyPhoto/* /sdcard/Pictures/ • 把檔案從手機 拉 到電腦 ◦ adb pull <path_or_filename_on_phone> < local_path> ▪ adb pull /sdcard/DCIM/Camera MyPhotoBack ▪ adb pull /sdcard/Download
GDG Taichung 備份還原 apk 與其資料 (即將失效) • 備份 ◦ adb
backup my.awesome.app ◦ adb backup my.awesome.app -f awesome.ab ◦ adb backup my.awesome.app -apk -obb -f awesome.ab • 還原 ◦ adb restore awesome.ab
GDG Taichung 重開機或者刷入升級包 • adb reboot [bootloader|recovery|sideload] ◦ adb reboot
sideload-auto-reboot ◦ adb sideload FOTA_package.zip
GDG Taichung 異常狀態排除 • adb disconnect • 拔線 • adb
kill-server ◦ adb start-server
GDG Taichung • ADB 是攻城獅的好朋友 ◦ 可以透過 USB 線或者網路連接手機 ◦
安裝軟體 ◦ 除錯 ◦ 傳輸檔案 ◦ 刷機 小結
2019 | Confidential and Proprietary GDG Taichung ADB (Android Debug
Bridge) • 簡介與基本操作 • Android 11 的新功能 • 進階用法
GDG Taichung 真。無線連結
GDG Taichung
GDG Taichung
GDG Taichung
GDG Taichung
GDG Taichung adb pair IP:PORT [CODE]
GDG Taichung
GDG Taichung 無線 ADB • 配對完成後,下次開啟 wireless adb 自動連結 ◦
電腦已經執行 adb server (adb start-server)
GDG Taichung 無線 ADB • 配對完成後,下次開啟 wireless adb 自動連結 ◦
電腦已經執行 adb server (adb start-server) • 可以連 IP:PORT 都不用手動輸入嗎?
GDG Taichung 無線 ADB • 配對完成後,下次開啟 wireless adb 自動連結 ◦
電腦已經執行 adb server (adb start-server) • 可以連 IP:PORT 都不用手動輸入嗎? ◦ 利用 mDNS 服務 ▪ RFC 6762 ▪ Bonjour service
GDG Taichung 使用 mDNS • mdns check
GDG Taichung 使用 mDNS • mdns check • mdns services
GDG Taichung 使用 mDNS • mdns check • mdns services
• 手機開啟配對 ◦ pair
GDG Taichung 增量 apk 安裝 • 2GB+ 的 apk •
使用 v4 簽名 ◦ https://developer.android.com/studio/command-line/apksigner#v4-signing-enabled • adb install --incremental
GDG Taichung • ADB 在 Android 11 小進化 ◦ 效能提升
◦ 無線 adb ◦ 增量安裝 小結
2019 | Confidential and Proprietary GDG Taichung ADB (Android Debug
Bridge) • 簡介與基本操作 • Android 11 的新功能 • 進階用法
GDG Taichung ADB shell • 新世界的大門 ◦ unix commands ◦
busybox
GDG Taichung settings (設定裝置) • 列表 ◦ settings list [global|system|secure]
GDG Taichung settings • 列表 ◦ settings list global
GDG Taichung settings • 列表 ◦ settings list [global|system|secure] •
查詢 ◦ settings get namespace key ▪ settings get global adb_wifi_enabled • 修改 ◦ settings put namespace key value ▪ settings put global adb_wifi_enabled 1 • 重設/刪除 ◦ settings [reset|delete] namespace key
GDG Taichung device_config (設定裝置) • 列表 ◦ device_config list
GDG Taichung device_config • 列表 ◦ device_config list
GDG Taichung device_config • 列表 ◦ device_config list • 其餘操作同
settings • 開啟隱藏功能 ◦ device_config put systemui enable_screenshot_scrolling true
GDG Taichung
GDG Taichung
GDG Taichung
GDG Taichung svc (控制裝置) • 開啟/關閉 NFC/藍芽 ◦ svc nfc
[enable|disable] ◦ svc bluetooth [enable|disable] • 關閉/重啟 手機 ◦ svc power shutdown ◦ svc power reboot [bootloader|recovery|shell] • 停用休眠 ◦ svc power stayon [true|false] ◦ svc power stayon [usb|ac|wireless]
GDG Taichung svc • USB 功能 ◦ svc usb setFunctions
[mtp|ptp|adb] ◦ svc usb resetUsbGadget
GDG Taichung cmd (對 service 下達指令) • 列出所有 service ◦
cmd -l • cmd service command … ◦ cmd uimode night [yes|no|auto] ◦ cmd display set-brightness BRIGHTNESS_LEVEL ◦ cmd connectivity airplane-mode [enable|disable]
GDG Taichung 透過 cmd 模擬裝置狀況 • 電池電量/充電行為 ◦ cmd battery
set level 50 ◦ cmd battery set wireless 1 ◦ cmd battery set status 2 ◦ cmd battery unplug ◦ cmd battery reset
GDG Taichung 透過 cmd 模擬裝置狀況 • 儲存裝置 ◦ cmd devicestoragemonitor
[force-low|force-not-low] ◦ cmd devicestoragemonitor reset
GDG Taichung 透過 cmd 模擬裝置狀況 • 省電模式 ◦ cmd power
set-adaptive-power-saver-enabled [true|false] ◦ cmd power set-mode [0|1] (1: Low Power Mode) ◦ cmd power set-fixed-performance-mode-enabled [true|false]
GDG Taichung 其他有趣的 cmd 服務 • wifi • statusbar •
media_session • netpolicy • jobscheduler • notification
GDG Taichung pm (Package Manager) • 安裝/反安裝 app (同 adb
install / uninstall) • 隱藏/停用 ◦ pm [hide|unhide] my.awesome.app ◦ pm [disable|enable] my.awesome.app • 清除 app 資料 ◦ pm clear my.awesome.app • 清除 cache ◦ pm trim-caches 1G
GDG Taichung pm (Package Manager) • 列出所有安裝 app ◦ pm
list packages ◦ pm list packages -3 (只列出第三方) ◦ pm list packages -f (列出 apk 所在路徑) ◦ pm list packages -d (只列出遭停用的) • 查詢 intent 接收設定 ◦ pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
GDG Taichung • am start-[activity|service|foreground-service] INTENT • am stop-service INTENT
• am force-stop my.awesome.app • am broadcast INTENT am (Activity Manager)
GDG Taichung am (Activity Manager)
GDG Taichung wm (Window Manager) • size [reset|WxH] • density
[reset|DENSITY]
GDG Taichung run-as • 轉換為指定 debug app 的身份 ◦ run-as
my.awesome.app ◦ 將 app 內的檔案複製到 /sdcard/ 下再透過 adb pull 抓回 • 搭配 exec-out 直接拉回檔案 ◦ adb exec-out run-as my.awesome.app cat databases/repo.db > repo.db ◦ Device File Explorer in Android Studio
GDG Taichung 抓圖,錄影 • 抓圖 ◦ adb shell screencap -p
FILENAME.png • 錄影 ◦ adb shell screenrecord --time-limit 20 FILENAME.mp4 ▪ --size wxh ▪ --bit-rate 6000000
GDG Taichung 寫 script 使用 adb 的小技巧 • 只針對 USB
連接的裝置操作 ◦ adb -d commands.. • 只針對 網路 連接的裝置操作 (模擬器) ◦ adb -e commands.. • 只針對特定裝置操作 ◦ adb -s serial commands.. • 確認 adb 狀態後再進行下一步 ◦ adb wait-for[-usb|-local]-device ◦ adb wait-for-sideload
GDG Taichung • adb shell 讓手機可以如同 server 般操控 • 調整手機設定值
◦ settings / device_config • 改變手機狀態 ◦ svc • 控制手機服務 ◦ cmd • 開發工具 ◦ pm / am / wm / run-as • 其他 ◦ screencap / screenrecord 小結
GDG Taichung Feedbacks are welcome ! :) Thank you @shakalaca
/shakalaca @shakalaca