Android測(cè)試 adb常用命令

移動(dòng)端的Android測(cè)試總是少不了一些adb命令的操作盯蝴,稍微總結(jié)一下自己經(jīng)常用到的命令夹孔。

例如:adb無(wú)法安裝debug包墨榄,提示Failure [INSTALL_FAILED_TEST_ONLY]锹雏,怎么辦瞳步?莫慌击儡,加個(gè)-t參數(shù)即可

$ adb install -t debug.apk

這一點(diǎn)在adb的說(shuō)明中有明確的提示, -t 即表示允許test package
$ adb
......
app installation:
 install [-lrtsdg] PACKAGE
 install-multiple [-lrtsdpg] PACKAGE...
     push package(s) to the device and install them
     -l: forward lock application
     -r: replace existing application
     -t: allow test packages
     -s: install application on sdcard
     -d: allow version code downgrade (debuggable packages only)
     -p: partial application install (install-multiple only)
     -g: grant all runtime permissions

設(shè)備信息相關(guān)

1塔沃、設(shè)備名

$ adb devices
List of devices attached
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
b33aa57c    device

如果連接的是模擬器的話,需要先connect一下阳谍,例如:
夜神模擬器連接adb:adb connect 127.0.0.1:62001
海馬玩模擬器連接adb:adb connect 127.0.0.1:53001

2蛀柴、獲取設(shè)備的一些信息:$ adb shell cat /system/build.prop

# 例如
$ adb shell cat /system/build.prop |grep ro.product.model
ro.product.model=MI 5

$ adb shell cat /system/build.prop |grep ro.build.version.release
ro.build.version.release=6.0.1

$ adb shell cat /system/build.prop |grep ro.product.cpu.abi
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=arm64-v8a

常用方法

1、獲取當(dāng)前最上層activity

$ adb shell dumpsys activity | grep "mFocusedActivity"
  mFocusedActivity: ActivityRecord{5bef6d8 u0 com.miui.home/.launcher.Launcher t1803}

2矫夯、通過(guò)adb獲取設(shè)備IMEI:iphonesubinfo

$ adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
872429031076264

3鸽疾、自動(dòng)化中可能應(yīng)用到輸入法設(shè)置

# 列出當(dāng)前安裝的輸入法
$ adb shell ime list

# 當(dāng)前默認(rèn)的輸入法
$ adb shell settings get secure default_input_method

# 設(shè)置輸入法
$ adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME

4、截圖训貌、截視頻

# 截圖
$ adb shell /system/bin/screencap -p /sdcard/screenshot.png

# 錄制是視頻
$ adb shell screenrecord /sdcard/demo.mp4

5制肮、獲取分辨率

$ adb shell wm size
Physical size: 1080x1920

$ adb shell dumpsys window displays |head -n 3
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1020-1920x1860

6、獲取幀數(shù)據(jù)递沪,這部分的詳細(xì)內(nèi)容可以看我的另一篇分析:
Android FPS流暢度測(cè)試

$ adb shell dumpsys gfxinfo PackageName
$ adb shell dumpsys gfxinfo PackageName framestats

7豺鼻、簡(jiǎn)單的廣播操作:

廣播 - 改變wifi狀態(tài)
$ adb shell am broadcast -a android.net.wifi.WIFI_STATE_CHANGED -ei disable

廣播 - 改變電量,level代表電量
$ adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei plugged 0 --ei temperature 2 --ei status 3 --ei level 4

廣播 - 刷新media庫(kù)單個(gè)文件款慨。有時(shí)候我們push圖片等到設(shè)備中不會(huì)立即被識(shí)別儒飒,這時(shí)候需要手動(dòng)刷新一下
$ adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/yourpic.jpg
eg:....SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/yourpic.jpg

廣播 - 刷新media庫(kù)文件夾。有時(shí)候我們push圖片等到設(shè)備中不會(huì)立即被識(shí)別檩奠,這時(shí)候需要手動(dòng)刷新一下
$ adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d yourPath
eg:....SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/

8约素、有的MIUI開(kāi)發(fā)板獲得完整root權(quán)限。
這個(gè)至少要在Android 6.0以上笆凌,較新adb版本圣猎。背景是,MIUI開(kāi)發(fā)板已經(jīng)獲得了root權(quán)限乞而,但還是不能對(duì)system目錄進(jìn)行讀寫(xiě)送悔。這時(shí)候可以試試security中的disable-verity,作用是disable dm-verity checking on userdebug builds爪模。

$ adb root
$ adb disable-verity
$ adb reboot

# 重新開(kāi)啟也很簡(jiǎn)單
$ adb enable-verity

9欠啤、APK相關(guān)

# 安裝、卸載
$ adb install PackageName
$ adb uninstall PackageName

# 查看安裝包信息
$ aapt dump badging PackageName

# 強(qiáng)制停止某個(gè)應(yīng)用
$ adb shell am force-top PackageName

# 清除某個(gè)應(yīng)用的數(shù)據(jù)(相當(dāng)于新安裝)
$ adb shell pm clear PackageName

# 啟動(dòng)應(yīng)用
$ adb shell am start -D -n packageName/activity

10屋灌、動(dòng)態(tài)調(diào)試需要用到forward

# 使用IDA進(jìn)行動(dòng)態(tài)調(diào)試洁段,需要端口轉(zhuǎn)發(fā)
$ adb forward tcp:23946 tcp:23946

# smali動(dòng)態(tài)調(diào)試
$ adb forward tcp:8800 jdwp:21683

11、改變手機(jī)網(wǎng)絡(luò)狀態(tài):adb shell svc

$ adb shell svc
Available commands:
    help     Show information about the subcommands
    power    Control the power manager
    data     Control mobile data connectivity
    wifi     Control the Wi-Fi manager
    usb      Control Usb state
    nfc      Control NFC functions

這里用wifi作為例子:其他的書(shū)輸入help即可查看

$ adb shell svc wifi help
Control the Wi-Fi manager

usage: svc wifi [enable|disable]
         Turn Wi-Fi on or off.

# 使用方法
$ adb root
$ adb shell svc wifi disable/enable

12共郭、跑跑monkey

#示例
$ adb shell monkey -p PackageName --throttle 600 --pct-trackball 44 --pct-touch 44 --pct-appswitch 2 --pct-motion 10 -v 1000

adb的命令還有很多祠丝,光是dumpsys疾呻、am和pm就有很多可講的。它們都是有具體的應(yīng)用場(chǎng)景写半,后面會(huì)在單獨(dú)的文章中進(jìn)行介紹岸蜗。
官網(wǎng)的介紹:
https://developer.android.com/studio/command-line/adb.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叠蝇,隨后出現(xiàn)的幾起案子璃岳,更是在濱河造成了極大的恐慌,老刑警劉巖悔捶,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铃慷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蜕该,警方通過(guò)查閱死者的電腦和手機(jī)枚冗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛇损,“玉大人赁温,你說(shuō)我怎么就攤上這事∮倨耄” “怎么了股囊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)更啄。 經(jīng)常有香客問(wèn)我稚疹,道長(zhǎng),這世上最難降的妖魔是什么祭务? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任内狗,我火速辦了婚禮,結(jié)果婚禮上义锥,老公的妹妹穿的比我還像新娘柳沙。我一直安慰自己,他們只是感情好拌倍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布赂鲤。 她就那樣靜靜地躺著,像睡著了一般柱恤。 火紅的嫁衣襯著肌膚如雪数初。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天梗顺,我揣著相機(jī)與錄音泡孩,去河邊找鬼。 笑死寺谤,一個(gè)胖子當(dāng)著我的面吹牛仑鸥,可吹牛的內(nèi)容都是我干的吮播。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锈候,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了敞贡?” 一聲冷哼從身側(cè)響起泵琳,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎誊役,沒(méi)想到半個(gè)月后获列,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛔垢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年击孩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹏漆。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巩梢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艺玲,到底是詐尸還是另有隱情括蝠,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布饭聚,位于F島的核電站忌警,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秒梳。R本人自食惡果不足惜法绵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酪碘。 院中可真熱鬧朋譬,春花似錦、人聲如沸兴垦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)滑进。三九已至犀忱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扶关,已是汗流浹背阴汇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留节槐,地道東北人搀庶。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓拐纱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親哥倔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秸架,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評(píng)論 25 707
  • 福利大放送 這是對(duì)好多adb命令行的總結(jié),很實(shí)用咆蒿,有些東西知道了之后就會(huì)特別酷炫: 內(nèi)容 指定目標(biāo)設(shè)備: 如果只有...
    Only凹凸曼閱讀 2,529評(píng)論 1 6
  • https://www.zhihu.com/question/29191748 有人知道哪有把語(yǔ)音翻譯成文字的軟...
    靖蘭亭閱讀 695評(píng)論 0 51
  • [日就月將]2017-6-7周三附迷,學(xué)習(xí)力踐行D84天惧互。1-古詩(shī),16+3望天門(mén)山喇伯,墓江吟壹哺,江雪。2-繪本艘刚,語(yǔ)言啟蒙...
    wxgcgb閱讀 195評(píng)論 0 0
  • 『社團(tuán)簡(jiǎn)介』 動(dòng)漫天城協(xié)會(huì)創(chuàng)立于2003年管宵,是江西財(cái)經(jīng)大學(xué)校級(jí)ACGN愛(ài)好社團(tuán),在蛟橋攀甚、麥盧箩朴、楓林校區(qū)都有我們的小...
    睡醒的人哭著想回家閱讀 362評(píng)論 0 0