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
360
你可能不知道指令可以做的事 @ 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
270
Android Studio Walkthrough
shakalaca
19
2.1k
Android Development with Gradle
shakalaca
2
170
Head First Android Apps Dev Tools
shakalaca
6
490
Gradle enabled android project
shakalaca
5
400
IAB x Redeem in Android
shakalaca
0
120
老爹必備的奶瓶與鍵盤之道
shakalaca
3
400
Pai Pai First DEMO
shakalaca
2
110
Other Decks in How-to & DIY
See All in How-to & DIY
PlatformIO IDE用M5Stack定型コード環境の紹介
3110
1
330
苦いビールを避ける冴えたやり方
watany
2
150
Earthquake and Kominka
ramtop
0
140
JAWS-UG山梨第0回 AWSのユーザーコミュニティ支援
awsjcpm
0
110
Dirbtinis intelektas dizainerio gyvenime
lekevicius
0
190
安全に失敗するための手遊び-未定義動作を引き出そう-
zilmina
0
450
銀座線・半蔵門線から、ふりかえりカンファレンス2024現地会場への行き方
pokotyamu
0
220
IoTと田中の距離 #iotlt #田中 #openai
n0bisuke2
1
300
#相席食堂 ちょっと待てぃボタンダイジェスト+ソラコムボタン #iotlt
n0bisuke2
0
330
バタフライ効果/butterfly_effect
florets1
0
230
データエンジニアのためのテクニカルサポートとLLM
yutomatsunoo
0
1k
[너구리랑! 회고 밋업 2023] 비전공자 PM의 우당탕탕 2023년 // 의현 님
develop_neoguri
0
100
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
4 Signs Your Business is Dying
shpigford
180
21k
Unsuck your backbone
ammeep
668
57k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Six Lessons from altMBA
skipperchong
27
3.5k
Why Our Code Smells
bkeepers
PRO
334
57k
Rails Girls Zürich Keynote
gr2m
94
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
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