国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android啟動(dòng)流程優(yōu)化 中篇

這篇具有很好參考價(jià)值的文章主要介紹了Android啟動(dòng)流程優(yōu)化 中篇。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

啟動(dòng)優(yōu)化(中篇)


本文鏈接:https://blog.csdn.net/feather_wch/article/details/131587046

1、我們可以優(yōu)化部分

Application構(gòu)建到主界面onWindowFocusChanged

2、啟動(dòng)方式(官方)

  1. 冷啟動(dòng)
  2. 熱啟動(dòng)
  3. 溫啟動(dòng)

3、怎么樣算是卡頓?

  1. 卡頓:2-5-8原則
  2. 2秒以內(nèi):流程
  3. 2-5秒:可以接受
  4. 5-8秒:有些卡頓
  5. 8秒以上:非常卡頓,沒辦法接受,垃圾應(yīng)用

4、Android Vitals是什么?

  1. google提出的計(jì)劃,檢測(cè)三種啟動(dòng)方式的耗時(shí)
  2. 冷5 熱1.5 溫2

5、如何查看App啟動(dòng)耗時(shí)時(shí)長(zhǎng)?(app點(diǎn)擊->可操作的時(shí)候onWindowFocuseChanged)

  1. 系統(tǒng)日志統(tǒng)計(jì):ActivityManager:Displayed
  2. adb 命令統(tǒng)計(jì)啟動(dòng)時(shí)間:adb shell am start -S -W

6、CPU Profile/TraceView(廢棄)相關(guān)圖表

  1. Call Chart
  2. Flame Chart
  3. Top Down Tree
  4. Bottom Up Tree

7、假如版本不支持CPU Profiler怎么辦?

  1. Debug.start/stopMethodTracing()
  2. Application創(chuàng)建時(shí)調(diào)用start(需要手動(dòng)給予文件權(quán)限)
  3. onWindowFocuseChanged調(diào)用stop
  4. 文件默認(rèn)生成在/sdcard/目錄下,可以拖到AS中打開

8、StrictMode 嚴(yán)苛模式 setThreadPolicy()/setVmPolicy()

可以在開發(fā)階段嚴(yán)格限制各個(gè)耗時(shí)操作、IO未關(guān)閉等等
出現(xiàn)違規(guī)操作根據(jù)配置,選擇打印日志或者崩潰。

9、黑白屏各個(gè)版本差異

  1. windowSplashscreenContent Android8~Andorid11 優(yōu)先于windowBackground
  2. Android12推出JectPack SplashScreen(基于Android SplashScreen API)同名庫(kù)兼容到Andorid 6
  3. windowDisablePreview:會(huì)關(guān)閉黑白屏,但是進(jìn)入時(shí)間更長(zhǎng)更慢,體驗(yàn)不好
  4. 自定義簡(jiǎn)易的SplashScreenActivity+windowDisablePreview:可以做到進(jìn)入可以打開一個(gè)有節(jié)日氛圍的頁(yè)面

10、如何減少inflate的時(shí)間?

  1. AsyncLayoutInflater幫助異步Inflate減少啟動(dòng)時(shí)間

11、AsyncLayoutInflater的局限性:

  1. 構(gòu)建的View中沒有Looper.prepare()需要我們自己去實(shí)現(xiàn)(子線程)
  2. 不支持設(shè)置LayoutInflater.Factory和LayoutInflater.Factory2
  3. 緩存隊(duì)列默認(rèn)大小10,超過(guò)了會(huì)導(dǎo)致主線程等待

12、EventBus、Arouter啟動(dòng)和初始化很耗時(shí),可以采用接入插件來(lái)減少初始化時(shí)間,優(yōu)化啟動(dòng)速度。
13、啟動(dòng)優(yōu)化項(xiàng)的幾個(gè)方面

  1. 合理使用異步初始化、延遲初始化、懶加載
  2. 啟動(dòng)過(guò)程避免耗時(shí)操作,數(shù)據(jù)庫(kù)IO不放在主線程
  3. 類加載優(yōu)化:提前異步執(zhí)行類加載
  4. 合理使用IdleHandler進(jìn)行延遲初始化
  5. 簡(jiǎn)化布局

14、應(yīng)對(duì)面試的處理步驟??!

  1. 告訴對(duì)方,啟動(dòng)耗時(shí)統(tǒng)計(jì)的方案。
  2. 分析工具
  3. 發(fā)現(xiàn)了一些第三方庫(kù)初始化比較耗時(shí),可以放到子線程中處理。有些不可以。
  4. ARouter啟動(dòng)時(shí)間很慢,看github發(fā)現(xiàn)有新版本的插件可以使用,提升了啟動(dòng)速度

15、啟動(dòng)速度和內(nèi)存優(yōu)化也有關(guān)系?為什么會(huì)有影響?

  1. 和抖動(dòng)和GC有關(guān)

16、字節(jié) multidex 優(yōu)化啟動(dòng)速度 => 誤導(dǎo)讀者文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-531874.html

  1. 文中分析源碼,用多進(jìn)程去優(yōu)化multidex速度,多進(jìn)程本身只是不為了讓APP ANR
  2. 修改了谷歌的multidex,谷歌multidex會(huì)將dex -> zip 比較耗時(shí)。真正優(yōu)化在于去除了該步驟。

到了這里,關(guān)于Android啟動(dòng)流程優(yōu)化 中篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android:?jiǎn)?dòng)流程

    Android:?jiǎn)?dòng)流程

    第一步:?jiǎn)?dòng)電源以及系統(tǒng)啟動(dòng) 當(dāng)電源按下,引導(dǎo)芯片代碼開始從預(yù)定義的地方(固化在ROM)開始執(zhí)行。加載引導(dǎo)程序到RAM,然后 執(zhí)行 第二步:引導(dǎo)程序 引導(dǎo)程序是在Android操作系統(tǒng)開始運(yùn)行前的一個(gè)小程序。引導(dǎo)程序是運(yùn)行的第一個(gè)程序,因此它是針 對(duì)特定的主板與芯片的

    2023年04月16日
    瀏覽(24)
  • Android系統(tǒng)啟動(dòng)流程分析

    Android系統(tǒng)啟動(dòng)流程分析

    ? ? ? ?當(dāng)按下Android系統(tǒng)的開機(jī)電源按鍵時(shí)候,硬件會(huì)觸發(fā)引導(dǎo)芯片,執(zhí)行預(yù)定義的代碼,然后加載引導(dǎo)程序(BootLoader)到RAM,Bootloader是Android系統(tǒng)起來(lái)前第一個(gè)程序,主要用來(lái)拉起Android系統(tǒng)程序,Android系統(tǒng)被拉起首先肯定會(huì)啟動(dòng)Linux內(nèi)核。 備注: 我們?cè)偎C(jī)時(shí)候,經(jīng)常看到

    2024年02月15日
    瀏覽(27)
  • Android 11 SystemUI 啟動(dòng)流程

    Android 11 SystemUI 啟動(dòng)流程

    從表面上看, 我們看到的 狀態(tài)欄、通知欄、下拉菜單、導(dǎo)航欄、鎖屏、最近任務(wù)、低電提示 等系統(tǒng)頁(yè)面都是 SystemUI 的。SystemUI,在源碼目錄中位于: framework/base/packages 目錄下, 可見 SystemUI 和 framework 是關(guān)聯(lián)的, SystemUI 依賴了很多內(nèi)部 API , 系統(tǒng)資源, SystemUI 編譯是要依賴

    2024年02月13日
    瀏覽(24)
  • Android Framework 之 啟動(dòng)流程

    Android 系統(tǒng)的啟動(dòng)流程 Android 系統(tǒng)的啟動(dòng)流程可以分為以下幾個(gè)主要步驟: 引導(dǎo)加載器(Bootloader)啟動(dòng) :當(dāng)你打開一個(gè) Android 設(shè)備時(shí),首先啟動(dòng)的是引導(dǎo)加載器。引導(dǎo)加載器負(fù)責(zé)啟動(dòng) Android 的核心操作系統(tǒng)。 Linux 內(nèi)核啟動(dòng) :引導(dǎo)加載器加載并啟動(dòng) Linux 內(nèi)核。Linux 內(nèi)核負(fù)責(zé)

    2024年02月14日
    瀏覽(21)
  • Android系統(tǒng)啟動(dòng)流程 源碼解析

    本文鏈接:https://blog.csdn.net/feather_wch/article/details/132518105 有道云腦圖:https://note.youdao.com/s/GZ9d8vzO 1、整體流程 Boot Room BootLoader idle kthread init init ServiceManager zygote zygote SystemServer app 1、kernel/common/init/main.c 2、andorid.mk-android.bp編譯 3、init是用戶空間鼻祖 屬于C、C++ Framework 1.1 啟動(dòng)源

    2024年02月11日
    瀏覽(30)
  • Android SystemServer 啟動(dòng)流程分析

    Android SystemServer 啟動(dòng)流程分析

    和你一起終身學(xué) 習(xí),這里是程序員Android 經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn): 一、SystemServer 啟動(dòng)的服務(wù)有哪些 二、SystemServer啟動(dòng)總體流程概述 三、SystemServer 如何啟動(dòng),是誰(shuí)啟動(dòng)的? 四、 SystemServer 啟動(dòng)入門 main 方法 五、SystemServer Run 方法初始與啟動(dòng) 六、

    2024年02月13日
    瀏覽(24)
  • Android啟動(dòng)之生命周期流程

    目錄 一、簡(jiǎn)述 二、啟動(dòng)流程說(shuō)明(一) 三、啟動(dòng)流程說(shuō)明(二) 四、ServerThread常用組件的功能介紹 第一步:?jiǎn)?dòng)Linux: 1.Bootloader 2.kernel 第二步:Android系統(tǒng)啟動(dòng):入口為Init.rc(system/core/rootdir) 1./system/bin/servicemanager:Binder守護(hù)進(jìn)程; 2.Runtime; 3.Zygote:app_process/App_main; 4.Start VM;

    2024年02月09日
    瀏覽(30)
  • 筆記:Android 9系統(tǒng)啟動(dòng)流程

    筆記:Android 9系統(tǒng)啟動(dòng)流程

    當(dāng)電源鍵按下時(shí),引導(dǎo)芯片代碼(匯編指令)會(huì)從預(yù)定的地方(固化在ROM)開始執(zhí)行,將引導(dǎo)程序 BootLoader 加載到 RAM中,然后執(zhí)行 BootLoader 是在 Android 操作系統(tǒng)開始前的一個(gè)小程序,主要作用是把系統(tǒng)OS拉起來(lái)并運(yùn)行 位置: bootablebootloader 當(dāng) Linux系統(tǒng)被 BootLoader 程序拉起,

    2024年02月14日
    瀏覽(26)
  • Android APP啟動(dòng)流程解析

    Android手機(jī)在開機(jī)Linux內(nèi)核啟動(dòng)的時(shí)候,會(huì)加載system/core/init/init.rc文件,啟動(dòng)init進(jìn)程,這個(gè)是Android特有的初始化程序,主要負(fù)責(zé) 各種復(fù)雜工作 負(fù)責(zé)開關(guān)機(jī)畫面 文件系統(tǒng)的創(chuàng)建和掛載 啟動(dòng)Zygote(孵化器)進(jìn)程 啟動(dòng)ServiceManager,它是Binder服務(wù)管理器,管理所有Android系統(tǒng)服務(wù) fork

    2024年03月20日
    瀏覽(28)
  • Android 性能優(yōu)化系列:?jiǎn)?dòng)優(yōu)化進(jìn)階

    Android 性能優(yōu)化系列:?jiǎn)?dòng)優(yōu)化進(jìn)階

    應(yīng)用的速度優(yōu)化是我們使用最頻繁,也是應(yīng)用最重要的優(yōu)化之一,它包括啟動(dòng)速度優(yōu)化、頁(yè)面打開速度優(yōu)化、功能或業(yè)務(wù)執(zhí)行速度優(yōu)化等等,能夠直接提升應(yīng)用的用戶體驗(yàn)。 大部分人談到速度優(yōu)化,只能想到一些零碎的優(yōu)化點(diǎn),比如使用多線程、預(yù)加載等等,沒有一個(gè)較為體

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包