Android App啟動(dòng)時(shí)間測(cè)試方法總結(jié)

查看當(dāng)前界面Activity的方法:

1)運(yùn)行命令:adb shell dumpsys window | findstr "mCurrentFocus"

?mCurrentFocus=Window{227cb04 u0 com.oppo.music/com.oppo.music.MainListActivity}

從結(jié)果中可知:

當(dāng)前應(yīng)用包名:com.oppo.music

當(dāng)前界面Activity:com.oppo.music.MainListActivity

2)查看應(yīng)用的PID

adb shell ps | findstr “com.oppo.music”,找到PID對(duì)應(yīng)的列

1店煞、“高速攝像機(jī)或Iphone慢動(dòng)作”查看應(yīng)用的啟動(dòng)時(shí)間

1)使用高速相機(jī)或Iphone的慢動(dòng)作(240ps)錄制應(yīng)用的啟動(dòng)視頻

2)使用QucikTime的幀分析功能蒜哀,確定好起始幀(手指按下抬起時(shí))和結(jié)束幀(應(yīng)用完全顯示)

3)根據(jù)幀數(shù)計(jì)算啟動(dòng)時(shí)間:=1000*幀數(shù)量/240

備注:最接近真實(shí)用戶使用場(chǎng)景,但是操作復(fù)雜,成本高


2养晋、“ActivityManager”查看應(yīng)用的啟動(dòng)時(shí)間

備注:系統(tǒng)main log中也會(huì)有對(duì)應(yīng)的顯示(或adb shell logcat -b main | findstr ActivityManager)更佳

1)運(yùn)行結(jié)果:

04-19 15:13:25.919?1181?1216 I ActivityManager: Displayed com.oppo.music/.MainListActivity: +677ms

04-19 15:13:33.556?1181?1216 I ActivityManager: Displayed com.oppo.music/.MainListActivity: +660ms

677ms和660ms就是music應(yīng)用的啟動(dòng)時(shí)間

3温兼、“WaitTime”查看應(yīng)用的啟動(dòng)時(shí)間

測(cè)試方法:adb shell am start -W –S packagename/MainActivity命令

1)結(jié)果時(shí)間說明

ThisTime:一連串啟動(dòng)Activity的最后一個(gè)Activity開始算起始時(shí)間

TotalTime:一連串啟動(dòng)Activity的第一個(gè)Activity開始算起始時(shí)間

WaitTime:總的耗時(shí),但是包括前一個(gè)應(yīng)用 Activity pause 的時(shí)間和新應(yīng)用啟動(dòng)的時(shí)間

說明:例如有的應(yīng)用啟動(dòng)Activity的時(shí)候帖族,會(huì)先顯示一個(gè)白色的Activity栈源,然后在顯示正常Activity,這個(gè)時(shí)候TotalTime就是從第一個(gè)Activity啟動(dòng)作為起始時(shí)間竖般,如果只有一個(gè)Activity則ThisTime和TotalTime相等

總結(jié):

如果只關(guān)心某個(gè)應(yīng)用自身啟動(dòng)耗時(shí)甚垦,參考TotalTime;如果關(guān)心系統(tǒng)啟動(dòng)應(yīng)用耗時(shí)涣雕,參考WaitTime艰亮;如果關(guān)心應(yīng)用有界面Activity啟動(dòng)耗時(shí),參考ThisTime

4挣郭、“am_activity_launch_time”查看應(yīng)用啟動(dòng)時(shí)間

測(cè)試方法:

1)開啟系統(tǒng)的moblie log迄埃,例如mtk的moblie log,然后啟動(dòng)應(yīng)用(或者adb shell logcat -b events | findstr am_activity_launch_time)

2)從moblie log中找到類似如下的event log:events_log_3__2019_0418_152200

3)搜索關(guān)鍵詞:“am_activity_launch_time”兑障,然后匹配對(duì)應(yīng)的包名侄非,如下:

04-18 15:21:28.365484?1181?1216 I am_activity_launch_time: [0,73476478,com.oppo.music/.MainListActivity,668,668]

04-18 15:21:37.295923?1181?1216 I am_activity_launch_time: [0,231925826,com.oppo.music/.MainListActivity,680,680]

4)應(yīng)用的啟動(dòng)時(shí)間為668ms、680ms

5流译、Systrace查看應(yīng)用的啟動(dòng)時(shí)間

1)抓取應(yīng)用啟動(dòng)的trace文件

a逞怨、開發(fā)給的python腳本抓取,需要安裝對(duì)應(yīng)的python

b先蒋、打開android自帶的monitor工具抓取骇钦,需要安裝java環(huán)境和android sdk包

2)chrome瀏覽器輸入chrome://tracing/,然后load對(duì)應(yīng)的trace文件

3)搜索iq竞漾,如果能搜到說明正確抓取了trace文件眯搭,否則沒有抓到啟動(dòng)時(shí)間點(diǎn)

4)找到應(yīng)用對(duì)應(yīng)的PID或包名的那一行

5)找到UI Thread那一行,然后可以使用【W(wǎng)】放大业岁,【S】縮小鳞仙,【A】左移,【S】右移笔时,注意界面上的操作導(dǎo)航棍好,需要選取對(duì)應(yīng)的項(xiàng)才能使用快捷鍵

放大并移動(dòng)找到activityStart那一列,選中該項(xiàng)并點(diǎn)擊鍵盤【m】鍵可以查看階段時(shí)間如下:

6)在activityStart下一行對(duì)應(yīng)的handleLaunchActivity找到第一個(gè)draw,按下【ctrl】然后選中activityStart在選中draw借笙,在按下【m】鍵扒怖,如下圖:

7)從步驟5中可以看到,music的啟動(dòng)時(shí)間為458.656ms

備注:界面快捷鍵操作

6业稼、adb腳本錄屏方法(不一定有用盗痒,有的機(jī)器無該命令或–bugreport選項(xiàng),且需要android API21+)

測(cè)試方法:

1)adb shell screenrecord –bugreport /sdcard/test.mp4

2)使用QuickTime分析視頻即可低散,同方法1

備注:查看是否支持-bugreport選項(xiàng)

使用 adb shell screencap –help查看是否支持—bugreport選項(xiàng)

7俯邓、各種方法測(cè)試數(shù)據(jù)比較

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市熔号,隨后出現(xiàn)的幾起案子稽鞭,更是在濱河造成了極大的恐慌,老刑警劉巖引镊,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朦蕴,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡祠乃,警方通過查閱死者的電腦和手機(jī)梦重,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門兑燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亮瓷,“玉大人,你說我怎么就攤上這事降瞳≈鲋В” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵挣饥,是天一觀的道長(zhǎng)除师。 經(jīng)常有香客問我,道長(zhǎng)扔枫,這世上最難降的妖魔是什么汛聚? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮短荐,結(jié)果婚禮上倚舀,老公的妹妹穿的比我還像新娘。我一直安慰自己忍宋,他們只是感情好痕貌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糠排,像睡著了一般舵稠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天哺徊,我揣著相機(jī)與錄音室琢,去河邊找鬼。 笑死落追,一個(gè)胖子當(dāng)著我的面吹牛研乒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淋硝,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼雹熬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了谣膳?” 一聲冷哼從身側(cè)響起竿报,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎继谚,沒想到半個(gè)月后烈菌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡花履,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年芽世,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诡壁。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡济瓢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妹卿,到底是詐尸還是另有隱情旺矾,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布夺克,位于F島的核電站箕宙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏铺纽。R本人自食惡果不足惜柬帕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狡门。 院中可真熱鬧陷寝,春花似錦、人聲如沸融撞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尝偎。三九已至饶火,卻和暖如春鹏控,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肤寝。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工当辐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鲤看。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓缘揪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親义桂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子找筝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • 針對(duì)安卓的移動(dòng)端測(cè)試,adb是不可避免需要接觸的慷吊,熟練掌握相關(guān)常用的adb命令袖裕,會(huì)給測(cè)試帶來很大便利,同時(shí)也可以將...
    adonisjph閱讀 1,464評(píng)論 1 8
  • adb:Android 調(diào)試橋接 Android Debug Bridge溉瓶,是一個(gè) C/S 架構(gòu)的命令行工具 a...
    LLd_閱讀 3,080評(píng)論 0 3
  • adb的全稱為Android Debug Bridge.是android司機(jī)經(jīng)常用到的工具.但是問題是那么多命令寫...
    香脆的大雞排閱讀 40,609評(píng)論 19 152
  • 我們長(zhǎng)期生長(zhǎng)在麗江這樣一個(gè)氣候適宜堰酿,古樸寧靜的古城疾宏、每天都有溫暖陽光、清新空氣触创、小橋流水的美麗之地坎藐。可曾想在遙遠(yuǎn)的...
    愛旅行的老謝閱讀 686評(píng)論 0 0
  • 活到這么大嗅榕,連點(diǎn)故事都沒有顺饮,是不是很失敗凌那?
    紀(jì)娟閱讀 191評(píng)論 0 0