二維碼
        企資網(wǎng)

        掃一掃關(guān)注

        當(dāng)前位置: 首頁(yè) » 企資快報(bào) » 服務(wù) » 正文

        移動(dòng)端性能優(yōu)化系列—啟動(dòng)速度

        放大字體  縮小字體 發(fā)布日期:2021-09-05 11:48:50    作者:媒體小英    瀏覽次數(shù):16
        導(dǎo)讀

        移動(dòng)端性能對(duì)用戶體驗(yàn)、留存有著至關(guān)重要的影響,作為開(kāi)發(fā)者是不是被這樣吐槽過(guò),“這個(gè) APP 怎么這么大?”、“怎么一直在 APP 封面圖轉(zhuǎn)悠,點(diǎn)不進(jìn)去”、“進(jìn)入詳情效果有些卡”、“用 4G 使用你們的 APP,我的流量

        移動(dòng)端性能對(duì)用戶體驗(yàn)、留存有著至關(guān)重要的影響,作為開(kāi)發(fā)者是不是被這樣吐槽過(guò),“這個(gè) APP 怎么這么大?”、“怎么一直在 APP 封面圖轉(zhuǎn)悠,點(diǎn)不進(jìn)去”、“進(jìn)入詳情效果有些卡”、“用 4G 使用你們的 APP,我的流量有點(diǎn)不夠啊”等等,這些問(wèn)題都直觀反映出,一個(gè)體驗(yàn)良好的應(yīng)用,只有功能健全還不夠,以下是我在性能優(yōu)化上總結(jié)的幾點(diǎn):

      1. 啟動(dòng)速度優(yōu)化
      2. 流暢度優(yōu)化
      3. 資源優(yōu)化
      4. 內(nèi)存優(yōu)化
      5. APK體積優(yōu)化

        今天先聊聊,啟動(dòng)速度的那些事

        應(yīng)用啟動(dòng)流程

        冷啟動(dòng)

        從點(diǎn)擊應(yīng)用圖標(biāo)到UI界面完全顯示且用戶可操作的全部過(guò)程。

        特點(diǎn):耗時(shí)最多,衡量標(biāo)準(zhǔn)

        啟動(dòng)流程:Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl

        熱啟動(dòng)

        因?yàn)闀?huì)從已有的應(yīng)用進(jìn)程啟動(dòng),所以不會(huì)再創(chuàng)建和初始化Application,只會(huì)重新創(chuàng)建并初始化Activity。

        特點(diǎn):耗時(shí)較少

        啟動(dòng)流程:LifeCycle -> ViewRootImpl

        因此判斷應(yīng)用啟動(dòng)速度的的標(biāo)準(zhǔn)是冷啟動(dòng)的速度,即殺掉應(yīng)用后重新啟動(dòng)的速度,此項(xiàng)主要是和你的競(jìng)品對(duì)比。

        不應(yīng)在 Application 以及 Activity 的生命周期回調(diào)中做任何費(fèi)時(shí)操作,具體指標(biāo)大概是你在 onCreate,onResume,onStart 等回調(diào)中所花費(fèi)的總時(shí)間最好不要超過(guò) 400ms,否則用戶在桌面點(diǎn)擊你的應(yīng)用圖標(biāo)后,將感覺(jué)到明顯的卡頓。

        冷啟動(dòng)分析及優(yōu)化方向

        冷啟動(dòng)涉及的相關(guān)任務(wù)

        冷啟動(dòng)之前

        首先,會(huì)啟動(dòng) App

        然后,加載空白 Window

        最后,創(chuàng)建進(jìn)程

        需要注意的是,這些都是系統(tǒng)的行為,一般情況下我們是無(wú)法直接干預(yù)的。

        隨后任務(wù)

        首先,創(chuàng)建 Application

        啟動(dòng)主線程

        創(chuàng)建 MainActivity

        加載布局

        布置屏幕

        首幀繪制

        通常到了界面首幀繪制完成后,我們就可以認(rèn)為啟動(dòng)已經(jīng)結(jié)束了。

        下面是官方文檔中的啟動(dòng)過(guò)程流程圖,顯示系統(tǒng)進(jìn)程和應(yīng)用進(jìn)程之間如何交接工作。實(shí)際上對(duì)啟動(dòng)流程的簡(jiǎn)要概括。

        優(yōu)化方向

        我們的優(yōu)化方向就是 Application 和 Activity 的生命周期這個(gè)階段,啟動(dòng)中的系統(tǒng)任務(wù)我們無(wú)法干預(yù),能干預(yù)的就是在創(chuàng)建應(yīng)用和創(chuàng)建 Activity 的過(guò)程中可能會(huì)出現(xiàn)的性能問(wèn)題。這一過(guò)程具體就是:

        Application 的 attachbaseContext

        Application 的 onCreate

        activity 的 onCreate

        activity 的 onStart

        activity 的 onResume

        activity 的 onResume 方法完成后才開(kāi)始首幀的繪制。所以這些方法中的耗時(shí)操作我們是要極力避免的。 并且,通常情況下,一個(gè)應(yīng)用的主頁(yè)的數(shù)據(jù)是需要進(jìn)行網(wǎng)絡(luò)請(qǐng)求的,那么用戶啟動(dòng)應(yīng)用是希望快速進(jìn)入主頁(yè)以及看到主頁(yè)數(shù)據(jù),這也是我們計(jì)算啟動(dòng)結(jié)束時(shí)間的一個(gè)依據(jù)。

        U-APM 在啟動(dòng)優(yōu)化上的應(yīng)用

        以前使用友盟統(tǒng)計(jì)來(lái)分析 App 日活、埋點(diǎn)等數(shù)據(jù),發(fā)現(xiàn)友盟推出的 U-APM ,趕緊來(lái)嘗嘗鮮。

        U-APM 是友盟+推出的 App 穩(wěn)定性監(jiān)控、性能監(jiān)控和云真機(jī)測(cè)試平臺(tái)。通過(guò)輕量級(jí)的集成接入即可擁有實(shí)時(shí)、可靠、全面的應(yīng)用崩潰、ANR、自定義異常等捕獲能力,及卡頓、啟動(dòng)分析等性能能力,支持多場(chǎng)景、多通道智能告警監(jiān)控,幫助開(kāi)發(fā)者高效還原異常、卡頓用戶的訪問(wèn)路徑和業(yè)務(wù)現(xiàn)場(chǎng),縮短故障排查時(shí)間。就啟動(dòng)分析這項(xiàng)能力來(lái)看看,U-APM 都做了什么。

        U-APM 支持啟動(dòng)趨勢(shì)分析、慢啟動(dòng)分析、啟動(dòng)崩潰分析。

        啟動(dòng)趨勢(shì)分析

        啟動(dòng)趨勢(shì)較為直觀的展示應(yīng)用啟動(dòng)耗時(shí)的平均值、分位值、區(qū)間分布等數(shù)據(jù),以及啟動(dòng)階段的性能分解數(shù)據(jù),也能分析出,多版本迭代后,啟動(dòng)時(shí)間的分布狀況。

        慢啟動(dòng)分析

        慢啟動(dòng)分析,有助于開(kāi)發(fā)者追根溯源,該功能展示慢啟動(dòng)情況的占比以及慢啟動(dòng)設(shè)備列表,您可以在啟動(dòng)設(shè)置中自定義慢啟動(dòng)的劃分,默認(rèn)首次啟動(dòng)/冷啟動(dòng)超過(guò)3秒為慢啟動(dòng),熱啟動(dòng)超過(guò)1秒為慢啟動(dòng)。

        冷啟動(dòng)階段的慢啟動(dòng)分析,直觀表現(xiàn)出慢啟動(dòng)比例以及慢啟動(dòng)平均耗時(shí)。

        慢啟動(dòng)分布,直觀表現(xiàn)出,慢啟動(dòng)分布的設(shè)備、系統(tǒng)、運(yùn)營(yíng)商、版本、渠道、地域。

        啟動(dòng)崩潰分析

        歸納啟動(dòng)階段中出現(xiàn)的崩潰信息,支持劃分首次啟動(dòng)、冷啟動(dòng)、熱啟動(dòng)狀態(tài)下的崩潰,默認(rèn)啟動(dòng)耗時(shí)上限為8秒,超出時(shí)間的崩潰不被劃分至啟動(dòng)崩潰。

        這對(duì)減少應(yīng)用啟動(dòng)時(shí)間,提供了巨大幫助,官方已提供Demo

        總結(jié)

        移動(dòng)端性能優(yōu)化環(huán)環(huán)相扣,啟動(dòng)時(shí)間優(yōu)化也是較為重要的一個(gè)環(huán)節(jié),U-APM 的出現(xiàn),無(wú)疑是開(kāi)發(fā)者的福利,幫助開(kāi)發(fā)者及早發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,至于 U-APM 其他功能,可以登錄 官方網(wǎng)站 去體驗(yàn)。

        原文鏈接:http://click.aliyun.com/m/1000293112/

        本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

      6.  
        (文/媒體小英)
        免責(zé)聲明
        本文僅代表作發(fā)布者:媒體小英個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

        粵ICP備16078936號(hào)

        微信

        關(guān)注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯(lián)系
        客服

        聯(lián)系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號(hào): weishitui

        客服001 客服002 客服003

        工作時(shí)間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 精品一区二区三区高清免费观看 | 一区二区三区高清视频在线观看| 午夜DV内射一区区| av无码精品一区二区三区四区| 精品欧洲av无码一区二区三区| 久久影院亚洲一区| 日韩精品一区二区三区中文版| 国产91精品一区二区麻豆网站| 亚洲一区二区三区无码中文字幕| 一区二区三区免费精品视频| 精品人妻系列无码一区二区三区| 久久精品国产亚洲一区二区| 国产一区二区三区在线影院| 国产福利一区二区在线视频| 国产人妖视频一区在线观看| 濑亚美莉在线视频一区| 在线观看中文字幕一区| 麻豆精品人妻一区二区三区蜜桃| 亚洲午夜一区二区电影院| 乱码精品一区二区三区| 亚洲国产韩国一区二区| 国产手机精品一区二区| 亚洲一区二区三区无码国产| 日韩精品乱码AV一区二区| 91午夜精品亚洲一区二区三区| 亚洲一区影音先锋色资源| 久久久av波多野一区二区| 国产精品视频一区二区三区经| 亚洲国产av一区二区三区丶| 影音先锋中文无码一区| 女女同性一区二区三区四区| 国产成人高清亚洲一区久久| 武侠古典一区二区三区中文| 一区二区三区免费视频网站| 国产一区二区电影| 在线精品视频一区二区| 国产视频一区二区| 日韩人妻无码一区二区三区综合部| 亚洲色婷婷一区二区三区| 久久久久人妻精品一区| 日韩在线一区视频|