(五) 下篇 Android 性能優(yōu)化 Systrace文件分析

小酌雞湯

常日好讀書,晚年學(xué)垂綸袖牙。

本文來源《Android 性能優(yōu)化 全家桶》

什么是60fps?

?60fps:畫面每秒刷新60次侧巨,一幀的時(shí)間就是1/60 ~=16.67ms

刷新率 vs 幀率?

刷新率:每秒屏幕刷新次數(shù),現(xiàn)在大部分手機(jī)屏幕的刷新率是60HZ
幀率:GPU在一秒內(nèi)繪制的幀數(shù)鞭达。

為什么是60fps?

?現(xiàn)階段司忱,Android的幀率是60fps(16.67ms繪制一次),而手機(jī)的屏幕刷新率是60HZ(16.67ms刷新一次)畴蹭,所以目前的Android手機(jī)基本是這個(gè)配置坦仍,目前階段的最優(yōu)解。

為什么會(huì)卡頓丟幀?

?Android系統(tǒng)每16ms發(fā)出VSYNC信號(hào)叨襟,觸發(fā)GPU對(duì)UI渲染繁扎,如果你的耗時(shí)是20ms,系統(tǒng)在得到VSYNC信號(hào)的時(shí)候由于還沒準(zhǔn)備好糊闽,就無法進(jìn)行更新任何內(nèi)容梳玫,那么用戶在32ms內(nèi)看到的是同一幀畫面,就丟幀了右犹,會(huì)有卡頓現(xiàn)象提澎。

Systrace的 文件分析 實(shí)操開始吧~

(1)systrace實(shí)操環(huán)境(可選項(xiàng),用自己的環(huán)境和代碼也一樣)
  • SamplePop代碼下載
  • SamplePop環(huán)境如下:
    ?Android Studio 4.0
    ?Gradle version 6.1.1
    ?Android API version 30
(2)SamplePop示例代碼:
    public void onFramesLossMonitor(View view) {
        Log.d(TAG, "onFramesLossMonitor: ");
        startAnimator();
    }

    private void startAnimator() {
        Log.d(TAG, "startAnimator: ");
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1f);
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                mMonitorBgView.setAlpha((float) animation.getAnimatedValue());
                monitorDoSomeThings();
            }
        });
        valueAnimator.setDuration(500);
        valueAnimator.start();
    }

    private void monitorDoSomeThings() {
        Log.d(TAG, "monitorDoSomeThings: ");
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            Log.d(TAG, "writeSomething: ");
        }
    }

?按照上篇講述的方法念链,導(dǎo)出html文件報(bào)表盼忌,找到對(duì)應(yīng)包名的進(jìn)程,查看Frames,表明有卡頓(丟幀)掂墓。
?綠色:< 1* vsync
?黃色:1 * vsync ~ 2 * vsync之間
?紅色:> 2 * vsync

(3)打開運(yùn)行的systrace結(jié)果報(bào)表:
systrace卡頓Frames顯示

鍵盤快捷鍵
W :放大跟蹤時(shí)間軸
A :在跟蹤時(shí)間軸上向左平移
S :縮小跟蹤時(shí)間軸
D :在跟蹤時(shí)間軸上向右平移
E :以當(dāng)前鼠標(biāo)位置為中定位跟蹤時(shí)間軸
M :高亮當(dāng)前選區(qū)

界面管道顏色說明
灰色:正在休眠谦纱。
藍(lán)色:可運(yùn)行(它可以運(yùn)行,但是調(diào)度程序尚未選擇讓它運(yùn)行)梆暮。
綠色:正在運(yùn)行(調(diào)度程序認(rèn)為它正在運(yùn)行)服协。
紅色:不可中斷休眠(通常在內(nèi)核中處于休眠鎖定狀態(tài))±泊猓可以指示 I/O 負(fù)載偿荷,在調(diào)試性能問題時(shí)非常有用。
橙色:由于 I/O 負(fù)載而不可中斷休眠唠椭。

(4)查看單幀信息:
systrace卡頓具體Frames詳情

?點(diǎn)擊單幀詳情跳纳,會(huì)提示卡頓的詳細(xì)信息以及建議。

小編的擴(kuò)展鏈接

參考鏈接

荷花宮樣美人妝贪嫂,荷葉臨風(fēng)翠作裳

?

舉手之勞寺庄,贊有余香!???比心??

?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市斗塘,隨后出現(xiàn)的幾起案子赢织,更是在濱河造成了極大的恐慌,老刑警劉巖馍盟,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件于置,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贞岭,警方通過查閱死者的電腦和手機(jī)八毯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞄桨,“玉大人话速,你說我怎么就攤上這事⌒窘模” “怎么了泊交?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)筹麸。 經(jīng)常有香客問我活合,道長(zhǎng)雏婶,這世上最難降的妖魔是什么物赶? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮留晚,結(jié)果婚禮上酵紫,老公的妹妹穿的比我還像新娘。我一直安慰自己错维,他們只是感情好奖地,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赋焕,像睡著了一般参歹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隆判,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天犬庇,我揣著相機(jī)與錄音,去河邊找鬼侨嘀。 笑死臭挽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咬腕。 我是一名探鬼主播欢峰,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了纽帖?” 一聲冷哼從身側(cè)響起宠漩,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懊直,沒想到半個(gè)月后哄孤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹截,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年瘦陈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片波俄。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晨逝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出懦铺,到底是詐尸還是另有隱情捉貌,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布冬念,位于F島的核電站趁窃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏急前。R本人自食惡果不足惜醒陆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望裆针。 院中可真熱鬧刨摩,春花似錦、人聲如沸世吨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)耘婚。三九已至罢浇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沐祷,已是汗流浹背嚷闭。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戈轿,地道東北人凌受。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像思杯,于是被迫代替她去往敵國(guó)和親胜蛉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挠进,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355