如何在騰訊云中測(cè)試啟動(dòng)時(shí)間

推薦語(yǔ):是否開(kāi)機(jī)時(shí)嫌棄你的電腦速度太慢塌鸯?小編將為你講解三種測(cè)試你的啟動(dòng)時(shí)間炕婶,理解啟動(dòng)緩慢問(wèn)題所在姐赡,讓工作更有效率,速度更快柠掂。

啟動(dòng)時(shí)間對(duì)于App的性能測(cè)試项滑,啟動(dòng)時(shí)間是個(gè)重要指標(biāo),啟動(dòng)時(shí)間分為兩種情況涯贞,一種是冷啟動(dòng)時(shí)間(通常是系統(tǒng)重啟枪狂,即在啟動(dòng)前沒(méi)有該App進(jìn)程的情況),另一種是熱啟動(dòng)宋渔,即App從被切換到前臺(tái)(點(diǎn)back退出后再點(diǎn)擊圖標(biāo)啟動(dòng))州疾。QA測(cè)試時(shí),一般關(guān)注冷啟動(dòng)的啟動(dòng)時(shí)間皇拣。以下介紹三種測(cè)試啟動(dòng)時(shí)間的方法严蓖,供大家參考,可以有針對(duì)性的使用。

1.1 使用adb命令

1.1.1 測(cè)試方法 輸入adbshell am start -W packagename/MainActivity命令颗胡,計(jì)算啟動(dòng)時(shí)間毫深。如下圖:

圖1應(yīng)用第一次啟動(dòng)也就是我們常說(shuō)的冷啟動(dòng),這時(shí)候你的應(yīng)用程序的進(jìn)程是沒(méi)有創(chuàng)建的. 這也是大部分應(yīng)用的使用場(chǎng)景.用戶在桌面上點(diǎn)擊你應(yīng)用的 icon 之后,首先要?jiǎng)?chuàng)建進(jìn)程,然后才啟動(dòng) MainActivity.這時(shí)候adbshell am start -w packagename/MainActivity 返回的結(jié)果,就是標(biāo)準(zhǔn)的應(yīng)用程序的啟動(dòng)時(shí)間。注意Android 5.0 之前的手機(jī)是沒(méi)有WaitTime這個(gè)值的杭措。關(guān)于ThisTime/TotalTime/WaitTime的區(qū)別,下面是其解釋费什。 WaitTime=endTime-startTime

startTime記錄的剛準(zhǔn)備調(diào)用startActivityAndWait()的時(shí)間點(diǎn)

endTime記錄的是startActivityAndWait()函數(shù)調(diào)用返回的時(shí)間點(diǎn)

WaitTime = startActivityAndWait()調(diào)用耗時(shí)。

WaitTime 就是總的耗時(shí)手素,包括前一個(gè)應(yīng)用Activity pause 的時(shí)間和新應(yīng)用啟動(dòng)的時(shí)間鸳址;ThisTime 表示一連串啟動(dòng)Activity 的最后一個(gè) Activity 的啟動(dòng)耗時(shí);TotalTime表示新應(yīng)用啟動(dòng)的耗時(shí)泉懦,包括新進(jìn)程的啟動(dòng)和 Activity 的啟動(dòng)稿黍,但不包括前一個(gè)應(yīng)用Activity pause 的耗時(shí)。也就是說(shuō)崩哩,開(kāi)發(fā)者一般只要關(guān)心 TotalTime 即可巡球,這個(gè)時(shí)間才是自己應(yīng)用真正啟動(dòng)的耗時(shí)。

總結(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棚贾。

1.1.2 總結(jié)

該方法算出的時(shí)間是系統(tǒng)從開(kāi)始處理啟動(dòng)activity的時(shí)間到完成運(yùn)行l(wèi)ayout和draw函數(shù)的時(shí)間窖维,簡(jiǎn)單的理解就是啟動(dòng)這個(gè)Activity的時(shí)間,并不包括點(diǎn)擊icon到系統(tǒng)接收到消息的時(shí)間妙痹。顯然铸史,這個(gè)時(shí)間并不能完整的模擬用戶操作場(chǎng)景的啟動(dòng)時(shí)間。其次該方法只計(jì)算一個(gè)Activity的整體啟動(dòng)時(shí)間怯伊,沒(méi)有分別統(tǒng)計(jì)其中每個(gè)函數(shù)的時(shí)間琳轿,不便于定位問(wèn)題。針對(duì)這兩個(gè)問(wèn)題耿芹,我們接下來(lái)看一下下面兩個(gè)方法是怎樣解決的崭篡。

我們?cè)跍y(cè)試中關(guān)注的其實(shí)是用戶體驗(yàn)的啟動(dòng)時(shí)間,那么上面的時(shí)間就不能滿足我們的需求了猩系。既然是用戶體驗(yàn)我們可以用更直觀的方式媚送,使用screenrecord進(jìn)行屏幕錄制然后分析視頻中燥。

1.2 使用screenrecord進(jìn)行屏幕錄制

1.2.1 測(cè)試方法 (1)輸入命令adb shellscreenrecord --bugreport /sdcard/lanch.mp4--bugreport 參數(shù)會(huì)使視頻輸出一些時(shí)間信息和幀信息便于我們分析啟動(dòng)時(shí)間寇甸。 (2)點(diǎn)擊收集圖標(biāo),app完全啟動(dòng)后,使用ctrl+c結(jié)束視頻錄制拿霉。 (3)使用命令adb pullsdcard/lanch.mp4 ./吟秩,導(dǎo)出視頻 (4)導(dǎo)出視頻到電腦,使用可以按幀播放的視頻軟件打開(kāi)(mac上quicktime就可以绽淘,win下可以用kmplayer)涵防,并按幀播放。 如下圖所示: 圖2按幀播放視頻沪铭,視頻左上角會(huì)顯示每一幀的時(shí)間(精確到ms)和幀數(shù)壮池。如圖,11:09:38.031表示時(shí)分秒杀怠,f=333是幀數(shù)椰憋。在視頻中會(huì)看到icon會(huì)變暗然后高亮,高亮?xí)r就是系統(tǒng)開(kāi)始處理本次icon點(diǎn)擊事件了赔退〕纫溃可以把這里作為點(diǎn)擊時(shí)間,然后根據(jù)體驗(yàn)要求硕旗,看到app啟動(dòng)頁(yè)完全繪制完作為終止時(shí)間窗骑,這個(gè)時(shí)間減去點(diǎn)擊時(shí)間就是app的啟動(dòng)時(shí)間。

1.2.2 總結(jié) 該方法雖然可以模擬用戶的操作場(chǎng)景漆枚,但是操作成本較高且無(wú)法準(zhǔn)確清晰明了的知道哪些函數(shù)調(diào)用時(shí)間過(guò)長(zhǎng)创译。 以上兩種方法,單從啟動(dòng)時(shí)間看浪读,是無(wú)法定位出具體哪個(gè)函數(shù)耗時(shí)多一些昔榴,遇到啟動(dòng)時(shí)間大于預(yù)定的啟動(dòng)時(shí)間閥值時(shí),需一步步的打log碘橘,分析查明原因互订。下面的方法是貼吧目前計(jì)算啟動(dòng)時(shí)間的辦法,可以很清晰的看到每個(gè)函數(shù)的調(diào)用時(shí)間痘拆。

1.3 代碼埋點(diǎn)仰禽,查看輸出日志

1.3.1 測(cè)試方法 在代碼中打點(diǎn),輸出日志查看纺蛆。拿貼吧舉例吐葵,下圖是整個(gè)啟動(dòng)要經(jīng)歷的操作。 圖3具體每步做了哪些桥氏,可以參照下表温峭。 圖4這樣通過(guò)打點(diǎn)輸出日志來(lái)測(cè)試啟動(dòng)時(shí)間,QA就可以很方便的查看到具體每個(gè)模塊的耗時(shí)時(shí)間了字支,如下圖凤藏。

1.3.2 總結(jié) 這樣打點(diǎn)奸忽,可以清晰明了的看出Activity的總耗時(shí)及各個(gè)函數(shù)的耗時(shí)情況,這樣在測(cè)試過(guò)程中揖庄,如果遇到問(wèn)題可以很容易的定位到具體的函數(shù)栗菜。在測(cè)試過(guò)程中也有針對(duì)點(diǎn),比如貼吧直播后續(xù)會(huì)以插件的形式整合到貼吧里蹄梢,測(cè)試時(shí)疙筹,可以多關(guān)注plugin初始化的時(shí)間。

針對(duì)啟動(dòng)時(shí)間這一性能指標(biāo)禁炒,個(gè)人覺(jué)得打點(diǎn)輸出日志的方式較為理想而咆,QA在測(cè)試過(guò)程中發(fā)現(xiàn)有疑似問(wèn)題后,可以給出具體的函數(shù)耗時(shí)時(shí)間幕袱。


結(jié)束語(yǔ):想必大家已經(jīng)迫不及待的想去嘗試了吧翘盖,小編希望你們不為啟動(dòng)緩慢而焦慮!

推薦大家關(guān)注騰訊云社區(qū)微信公眾號(hào):QcloudCommunity

本文由騰云閣授權(quán)發(fā)布,未經(jīng)許可請(qǐng)勿轉(zhuǎn)載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凹蜂,一起剝皮案震驚了整個(gè)濱河市馍驯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玛痊,老刑警劉巖汰瘫,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異擂煞,居然都是意外死亡混弥,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門对省,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蝗拿,“玉大人,你說(shuō)我怎么就攤上這事蒿涎“校” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵劳秋,是天一觀的道長(zhǎng)仓手。 經(jīng)常有香客問(wèn)我,道長(zhǎng)玻淑,這世上最難降的妖魔是什么嗽冒? 我笑而不...
    開(kāi)封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮补履,結(jié)果婚禮上添坊,老公的妹妹穿的比我還像新娘。我一直安慰自己箫锤,他們只是感情好贬蛙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布驰弄。 她就那樣靜靜地躺著,像睡著了一般速客。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上五鲫,一...
    開(kāi)封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天溺职,我揣著相機(jī)與錄音,去河邊找鬼位喂。 笑死浪耘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塑崖。 我是一名探鬼主播七冲,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼规婆!你這毒婦竟也來(lái)了澜躺?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抒蚜,失蹤者是張志新(化名)和其女友劉穎掘鄙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗡髓,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡操漠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饿这。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浊伙。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖长捧,靈堂內(nèi)的尸體忽然破棺而出嚣鄙,到底是詐尸還是另有隱情,我是刑警寧澤串结,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布拗慨,位于F島的核電站,受9級(jí)特大地震影響奉芦,放射性物質(zhì)發(fā)生泄漏赵抢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一声功、第九天 我趴在偏房一處隱蔽的房頂上張望烦却。 院中可真熱鬧,春花似錦先巴、人聲如沸其爵。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摩渺。三九已至简烤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摇幻,已是汗流浹背横侦。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绰姻,地道東北人枉侧。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狂芋,于是被迫代替她去往敵國(guó)和親榨馁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,127評(píng)論 25 707
  • 【觸發(fā)背景】面對(duì)海量APP的今天帜矾,APP用戶量和活躍度成為評(píng)價(jià)一款A(yù)PP是否成功的重要因素翼虫。用戶下載APP后,AP...
    siyu8023閱讀 10,322評(píng)論 1 14
  • 我的心事 都裝在口袋里 不輕易丟棄.也不輕易觸碰 雨的心事 都藏在風(fēng)里 ...
    Julyw七月閱讀 341評(píng)論 13 1
  • 作為一個(gè)Android開(kāi)發(fā)者屡萤,很多的時(shí)候我們需要花大量的時(shí)間在bulid蛙讥,運(yùn)行到真機(jī)(虛擬機(jī))上,對(duì)于ios上的P...
    姜家志閱讀 511評(píng)論 0 4
  • 手動(dòng)檢查明明是連接上了的線灭衷,但是在DRC檢查時(shí)一直提示未連接次慢。。翔曲。 于是我開(kāi)始懷疑淚滴的問(wèn)題迫像,于是我嘗試在添加淚滴...
    Neucrack閱讀 25,240評(píng)論 2 0