中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android內核開發:系統啟動速度優化

發布時間:2020-05-29 15:14:15 來源:網絡 閱讀:9590 作者:Jhuster 欄目:移動開發

在學習新知識的過程中,我一直很推薦結合實戰任務去學習,只有經歷實戰,才能加深對理論知識的理解。《Android內核開發》系列已經寫了八篇了,本文就結合前面的內容,給大家布置一個實戰任務: 優化Android系統的啟動速度。


這里我簡單介紹一下優化的基本思路和涉及的文件,具體細節由大家自己在實踐去摸索,提高自己Google能力和解決問題的能力。


Android系統的啟動優化主要分為三大部分:


(1) Bootloader優化

(2) Linux Kernel的剪裁與優化

(3) Android OS部分的剪裁與優化


本文重點關注Android OS部分的啟動優化,值得關注的優化點分別介紹如下:


1. 精簡preload的classes和resource


前面介紹過,由于所有的Android應用程序都是從Zygote進程fork出來的,所以為了共享一些class和resourse資源,Zygote進程初始化過程中,會預先加載一些常用的java class和資源文件到進程的內存中,這樣其他應用fork出來后就不用再次加載了,從而提高了應用的啟動速度。


這個過程是可以精簡和優化的,你可以減少一些classes和resource的加載,從而加快系統的啟動速度。本過程涉及到的文件:


frameworks/base/preload-classes


frameworks/base/core/res/res/values/arrays.xml


2.  精簡native service和java service


前面介紹過,Android OS的啟動本質上就是啟動一系列的本地服務和Java服務,Android系統的所有功能都是通過這些服務間接提供的。


這些服務有很多并不是必須啟動的,根據業務需求可以去掉一些,本過程涉及到的文件:


system/core/rootdir/init.rc


frameworks/base/services/java/com/android/server/SystemServer.java


3.  精簡預裝的apk文件


系統啟動過程中,會掃描系統指定目錄下的所有apk文件,這個過程也是非常耗時的,預裝的apk文件越少,系統啟動速度也就越快,因此,精簡預裝apk也是優化系統啟動速度最重要的手段之一。


要想減少預裝的apk文件,則需要分析系統的build文件,將不需要的apk編譯選項刪除掉,本過程涉及到的文件:


build/target/product/xxxx.mk


device/<company>/<product>/xxxx.mk


vendor/..../xxxx.mk


4.  減少內核的log打印級別


過多的log打印消息會顯著地增加系統啟動的時間,log打印級別有多處可以調整,推薦修改init.rc文件中的loglevel來改變log打印級別。


system/core/rootdir/init.rc


5.  其他優化手段


上面介紹的都是最常用的優化手段,其實還有很多其他的方法,簡單列舉如下:


(1) 優化啟動動畫,降低幀率和圖片尺寸


(2) 精簡系統,減小boot.img文件大小,可以顯著減少啟動過程中加載和解壓boot.img的時間


(3) 預先創建一些目錄和文件,而不是在init過程中創建


(4) 其他……


6.  小結


這里我給出一位國外的高手優化的結果作為比較和參考(我的優化結果只提高了40%的啟動速度,遠沒有達到他的效果):


Android內核開發:系統啟動速度優化


希望大家能在本博文下留言、微博私信或者發郵件給我,告訴我你優化前后的Android系統的啟動速度。


關于Android系統的啟動速度優化就介紹到這里了,真心希望初學者們能夠動手去實踐,在實踐中逐漸掌握內核開發的基本流程和技巧,然后慢慢深入理解系統的基本原理和理論知識。有任何疑問或者建議歡迎留言或者來信lujun.hust@gmail.com交流,或者關注我的新浪微博 @盧_俊 獲取最新的文章和資訊。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景东| 华宁县| 五莲县| 如皋市| 稷山县| 玛纳斯县| 静宁县| 合川市| 富阳市| 昌平区| 安顺市| 蚌埠市| 望谟县| 出国| 镇平县| 措美县| 无极县| 淮南市| 永城市| 宾阳县| 曲松县| 岳普湖县| 陈巴尔虎旗| 合江县| 河池市| 墨玉县| 镇康县| 柞水县| 资源县| 卢湾区| 调兵山市| 盖州市| 玉屏| 淮阳县| 天津市| 镇远县| 玉山县| 合阳县| 拜城县| 嘉定区| 汶上县|