日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开机优化之调整Launcher的加载时间

發布時間:2023/12/14 Android 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开机优化之调整Launcher的加载时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

如前面兩篇文章所描述的,

1、Android開機速度優化簡單回顧

2、優化啟動時間

我們對Android系統的開機時間優化有了一個比較全面的了解,以及一些常用的調試手段(bootchart等),在這篇文章中我們先來看看如下這個問題,首先看一張圖:

如上圖所示,

1、在系統啟動的時候,為什么像inputmethod、phone、systemUI及settings這些包加載啟動的時候要比Launcher早個2秒多的時間呢?

2、開機動畫結束,到Launcher加載顯示,這里存在一個2秒左右的時間差,這段時間系統在干什么呢?

帶著上面的兩個問題,我們來進一步分析優化系統的啟動時間!

FallbackHome

我們先來看一下系統開機時的log,經過分析過濾,發現在bootanimation結束到啟動Activity的時候,有如下兩條重要的log

可以看到在啟動Launcher前,系統先去啟動了一個叫FallbackHome的Activity,兩者的時間差正好是2秒左右!!

那么什么是FallbackHome呢?經過一番google,找到了如下這段比較靠普,說的比較明白的解釋:

FallbackHome是原生setting的一個activity,且配置了DirectBoot mode。launcher啟動的時候會先啟動到這個界面,用戶解鎖后,才會調用finish,結束該界面,從而進入到真正的launcher界面。 若未解鎖就等待ACTION_USER_UNLOCKED廣播后再去啟動Launcher。非DirectBoot模式下的launcher耗時4s就是在等待finishBooting后的系統廣播ACTION_USER_UNLOCKED。 FallbackHome就是應DirectBoot功能而新增的一個頁面,具體DirectBoot功能不在這里贅述,大家可自行了解。作者:迷你球 鏈接:https://juejin.im/post/6844904079001387016 來源:掘金 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

關于什么是DirectBoot模式,這里不再進行說明,具體內容可以閱讀google官方的文檔:

支持“直接啟動”模式

在setting的AndroidManifest.xml里面,配置了DirectBoot模式,這樣FallbackHome就會先于Launcher加載啟動了

修改過程

由于我們的產品是不需要鎖屏功能的,可以直接把Launcher默認設置為DirectBoot模式,而把inputmethod、phone、settings等這些去掉DirectBoot模式,從而讓Launcher優先加載啟動。

1、去掉inputmethod、phone、settings的directBootAware屬性

2、給Launcher增加directBootAware屬性

異常問題處理

編譯系統,更新system之后,系統啟動,出現Launcher stopped的異常,

抓取logcat日志,有如下crash

出現的錯誤提示:

User 0 must be unlocked for widgets to be available

出現這個錯誤的原因,可以參考這篇文章:https://blog.csdn.net/w1070216393/article/details/72722759

但這里改動的是Launcher,除了這個問題,還會有像加載QS出現異常等,這里就不多說了,一一解決就好了。

最后看一下優化后的bootchart

總結

以上是生活随笔為你收集整理的Android开机优化之调整Launcher的加载时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。