[TOC]
ubuntu安裝adb
卸載內(nèi)置手機(jī)軟件
顯示所有應(yīng)用
adb shell pm list packages
adb shell pm uninstall --user 0 com.miui.fm
先安裝adb
1.adb下載
2.在變量里找到PATH晨川,添加你的adb.exe的路徑
手機(jī)連接adb
查看已連接的設(shè)備:adb devices
會顯示serial number 和 device
有線:
手機(jī)打開開發(fā)者調(diào)試婆跑,打開cmd窗口,輸入adb version 即可看到你的adb版本
無線:
手機(jī)先有線連接
確定手機(jī)和電腦端的wifi通訊端口:adb tcpip 5555
查看手機(jī)ip:adb shell netcfg
拔掉usb線谱姓,再adb connect 192.168.0.117
adb常用命令
adb 命令如下:
adb [-d|-e|-s <serialNumber>] <command>
如果只有一個(gè)設(shè)備直接使用 adb <command>
多個(gè)設(shè)備-s <serialNumber> 指定相應(yīng) serialNumber 號的設(shè)備/模擬器為命令目標(biāo)
文件
操作文件和文件夾有時(shí)會出現(xiàn)權(quán)限不夠蹈丸,Read-only file system。就需要adb remount 操作,獲得權(quán)限绍妨。
創(chuàng)建xxx的文件夾
mkdir xxx
刪除名字為xxx的文件夾及其里面的所有文件
rm -r xxx
刪除文件xxx
rm xxx
刪除xxx的文件夾
rmdir xxx
推送文件到設(shè)備:adb push C:\Users\csi\Videos\a.png /sdcard/Download/browser
本機(jī)路徑容易獲取,但是手機(jī)路徑如何獲取呢柬脸?可以使用adb shell
然后利用ls
列出文件他去,最后要退出adb shell
因?yàn)閍db shell不能執(zhí)行adb phsh/pull命令
拉取文件到電腦:adb pull /sdcard/Download/browser/UNv1.0.en-zh.tar.gz.00 C:\Users\csi\Videos
應(yīng)用
查看已安裝應(yīng)用
adb shell pm list package
列出第三方應(yīng)用
adb shell pm list package -3
-s:列出系統(tǒng)應(yīng)用
-f:列出應(yīng)用包名及對應(yīng)的apk名及存放位置
-i:列出應(yīng)用包名及其安裝來源:
參數(shù)組合使用,例如查找第三方應(yīng)用tencent的包名倒堕、存放位置及安裝來源:
adb shell pm list package -f -3 -i tencent
列出對應(yīng)包名的 .apk 位置
adb shell pm path com.tencent.mm
安裝應(yīng)用 :adb install [-r] xxx.apk
-r 允許覆蓋安裝灾测。
-s 將應(yīng)用安裝到 sdcard。
-d 允許降級覆蓋安裝垦巴。
apk路徑則可以直接將apk文件拖進(jìn)cmd窗口媳搪,記得加空格。
pm install , 安裝應(yīng)用
目標(biāo) apk 若是存放在 PC 端魂那,用 adb install 安裝
目標(biāo) apk 若是存放于 Android 設(shè)備上蛾号,用 pm install 安裝
如:
pm uninstall
, 卸載應(yīng)用,同 adb uninstall , 后面跟的參數(shù)都是應(yīng)用的包名
清除應(yīng)用數(shù)據(jù)與緩存
adb shell pm clear (apk包名)
設(shè)置應(yīng)用安裝位置
pm set-install-location
獲取應(yīng)用安裝位置
pm get-install-location
卸載應(yīng)用 adb uninstall (應(yīng)用的包名)
-k 卸載應(yīng)用但保留數(shù)據(jù)和緩沖
刪除系統(tǒng)應(yīng)用:
adb remount
(重新掛載系統(tǒng)分區(qū)涯雅,使系統(tǒng)分區(qū)重新可寫)鲜结。
有些設(shè)備并不能直接adb remount,必須要先以root身份進(jìn)入活逆,先執(zhí)行adb root
精刷,在執(zhí)行adb remount
adb shell
cd system/app/
ls
rm ?蔗候?.apk
adb 命令是 adb 這個(gè)程序自帶的一些命令怒允,而 adb shell 則是調(diào)用的 Android 系統(tǒng)中的命令,這些 Android 特有的命令都放在了 Android 設(shè)備的 system/bin 目錄下锈遥。
查看wifi密碼:
adb shell cat /data/misc/wifi/*.conf
am start :啟動一個(gè)應(yīng)用纫事,這里以啟動我們設(shè)備的“設(shè)置”應(yīng)用為例
adb shell am start -n com.android.settings/.Settings
若不清楚“設(shè)置”的包名勘畔,可以通過命令,先找出當(dāng)前開啟的設(shè)備丽惶,然后復(fù)制路徑即可
adb shell dumpsys activity | find “mFocusedActivity”
1.先打開app界面
查看當(dāng)前app的入口
adb shell dumpsys window windows | findstr "Current"
2.打開App方式 1
adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin
方式2
adb shell am start -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin
殺死某個(gè)進(jìn)程:(三個(gè)步驟)
adb shell
ps
查看進(jìn)程命令
kill pid
強(qiáng)制停止應(yīng)用:
adb shell am force-stop com.eg.android.AlipayGphone
交互
input命令
完整 help 信息如下:
Usage: input [<source>] <command> [<arg>...]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
gesture
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
比如使用 adb shell input keyevent <keycode>
命令炫七,不同的 keycode 能實(shí)現(xiàn)不同的功能,完整的 keycode 列表詳見 KeyEvent钾唬,摘引部分我覺得有意思的如下:
keycode | 含義 |
---|---|
3 | HOME 鍵 |
4 | 返回鍵 |
5 | 打開撥號應(yīng)用 |
6 | 掛斷電話 |
24 | 增加音量 |
25 | 降低音量 |
26 | 電源鍵 |
27 | 拍照(需要在相機(jī)應(yīng)用里) |
64 | 打開瀏覽器 |
82 | 菜單鍵 |
85 | 播放/暫停 |
86 | 停止播放 |
87 | 播放下一首 |
88 | 播放上一首 |
122 | 移動光標(biāo)到行首或列表頂部 |
123 | 移動光標(biāo)到行末或列表底部 |
126 | 恢復(fù)播放 |
127 | 暫停播放 |
164 | 靜音 |
176 | 打開系統(tǒng)設(shè)置 |
187 | 切換應(yīng)用 |
207 | 打開聯(lián)系人 |
208 | 打開日歷 |
209 | 打開音樂 |
210 | 打開計(jì)算器 |
220 | 降低屏幕亮度 |
221 | 提高屏幕亮度 |
223 | 系統(tǒng)休眠 |
224 | 點(diǎn)亮屏幕 |
231 | 打開語音助手 |
276 | 如果沒有 wakelock 則讓系統(tǒng)休眠 |
下面是 input
命令的一些用法舉例万哪。
電源鍵
adb shell input keyevent 26
菜單鍵
adb shell input keyevent 82
HOME 鍵
adb shell input keyevent 3
返回鍵
adb shell input keyevent 4
音量控制
增加音量:
adb shell input keyevent 24
降低音量:
adb shell input keyevent 25
靜音:
adb shell input keyevent 164
媒體控制
播放/暫停:
adb shell input keyevent 85
停止播放:
adb shell input keyevent 86
播放下一首:
adb shell input keyevent 87
播放上一首:
adb shell input keyevent 88
恢復(fù)播放:
adb shell input keyevent 126
暫停播放:
adb shell input keyevent 127
點(diǎn)亮/熄滅屏幕
可以通過上文講述過的模擬電源鍵來切換點(diǎn)亮和熄滅屏幕,但如果明確地想要點(diǎn)亮或者熄滅屏幕抡秆,那可以使用如下方法奕巍。
點(diǎn)亮屏幕:
adb shell input keyevent 224
熄滅屏幕:
adb shell input keyevent 223
發(fā)送文本內(nèi)容,但是改命令無法發(fā)送中文
adb shell input text [文本內(nèi)容(英文)]
input tap :點(diǎn)擊屏幕
點(diǎn)擊屏幕上坐標(biāo)為 (200 200 )的位置
adb shell input tap 200 200
input swipe :滑動屏幕
從(520 300)滑到( 520 1000)
adb shell input swipe 520 300 520 1000
input keyevent 點(diǎn)擊按鍵
adb shell input keyevent
截屏:adb shell screencap /sdcard/a.png
錄制屏幕
adb shell screenrecord /sdcard/filename.mp4
需要導(dǎo)出到電腦:
adb pull /sdcard/filename.mp4
--size WIDTHxHEIGHT 視頻的尺寸儒士,比如 1280x720的止,默認(rèn)是屏幕分辨率。
--bit-rate RATE 視頻的比特率乍桂,默認(rèn)是 4Mbps冲杀。
--time-limit TIME 錄制時(shí)長效床,單位秒睹酌。
--verbose 輸出更多信息。
打印 Android 的系統(tǒng)日志: adb logcat
可以通過重定向來將日志保存到指定的文件中 比如將其保存到G盤的一個(gè)文件adb logcat > G:\log\logcat.txt
顯示屏參數(shù)
adb shell dumpsys window displays
型號
adb shell getprop ro.product.model
電池狀況
adb shell dumpsys battery
adbd cannot run as root in production builds問題
驗(yàn)證你的手機(jī)是否已經(jīng)root了
adb shell
su
行命令后剩檀,$ 變?yōu)?# 即 表示root 成功
安裝adbd-insecure.apk
adb install adbd-insecure.apk
設(shè)置
打開應(yīng)用將Enable insecure adbd 和 enable at boot 勾選上憋沿,設(shè)置好之后重進(jìn)鍵入:adb root即可
下載地址:adbd-insecure.apk
查看當(dāng)前分區(qū)掛載情況。
mount
找到其中我們關(guān)注的帶 /system 的那一行:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
重新掛載沪猴。
mount -o remount,rw -t yaffs2 /dev/block/platform/msm_sdcc.1/by-name/system /system
這里的 /dev/block/platform/msm_sdcc.1/by-name/system 就是我們從上一步的輸出里得到的文件路徑辐啄。如果輸出沒有錯(cuò)誤的話,可以對 /system 下的文件操作了
設(shè)置系統(tǒng)日期和時(shí)間
注:需要 root 權(quán)限运嗜。
adb shell date -s 20160823.131500
表示將系統(tǒng)日期和時(shí)間更改為 2016 年 08 月 23 日 13 點(diǎn) 15 分 00 秒壶辜。
重啟手機(jī)
adb reboot
使用 Monkey 進(jìn)行壓力測試
Monkey 可以生成偽隨機(jī)用戶事件來模擬單擊、觸摸担租、手勢等操作砸民,可以對正在開發(fā)中的程序進(jìn)行隨機(jī)壓力測試。
adb shell monkey -p <packagename> -v 500
表示向 <packagename> 指定的應(yīng)用程序發(fā)送 500 個(gè)偽隨機(jī)事件奋救。
刷機(jī)相關(guān)命令
重啟到 Recovery 模式
adb reboot recovery
從 Recovery 重啟到 Android
adb reboot
重啟到 Fastboot 模式
adb reboot bootloader
通過 sideload 更新系統(tǒng)
如果我們下載了 Android 設(shè)備對應(yīng)的系統(tǒng)更新包到電腦上岭参,那么也可以通過 adb 來完成更新。
以 Recovery 模式下更新為例:重啟到 Recovery 模式尝艘。
adb reboot recovery
在設(shè)備的 Recovery 界面上操作進(jìn)入 Apply update-Apply from ADB演侯。
注:不同的 Recovery 菜單可能與此有差異,有的是一級菜單就有 Apply update from ADB背亥。
通過 adb 上傳和更新系統(tǒng)秒际。
adb sideload <path-to-update.zip>
查看實(shí)時(shí)資源占用情況
adb shell top
" daemon not running. starting it now on port 5037 ADB server didn't ACK
一般出現(xiàn)這種情況都是因?yàn)槠渌渌绦蛘加昧?037端口(比如豌豆莢悬赏,刷機(jī)精靈等),
通過以下命令可以找出哪個(gè)進(jìn)程占用了5037端口
netstat -ano | findstr "5037"