經過安裝包重排布優化 Android 端啓動性能

1. 前言緩存

本章節咱們將圍繞《支付寶 App 構建優化解析》另啓新系列,細分拆解客戶端在「代碼管理」、「證書管理」、「版本管理」、「構建打包」等維度的具體實現方案展開討論,帶領你們進一步瞭解支付寶在 App 構建模塊下的持續優化。性能優化

本節將主要記錄經過對支付寶 Android Apk 文件的從新佈局,來改善 IO 性能的過程。佈局

2. 背景性能

支付寶 App 在 Android 平臺上,因爲大量業務快速上線,Android 長尾機型等緣由,形成啓動階段及部分核心鏈路上,性能體驗不理想,進而影響用戶的使用的感覺。
從純業務角度,能夠經過優化 UI 佈局,優化代碼結構,優化 bundle 加載等方式,對性能體驗有所改善。做爲工程技術團隊,按照傳統思惟來看,彷佛沒法對性能優化作多少貢獻。通過一些方案調研後,咱們嘗試經過對編譯產物的優化,干預構建流程,以提高 App 性能。優化

3. 原理blog

佈局先後,Apk 中實際的文件並無本質改變,只有位置發生了變化。那麼爲何這樣的調整會有性能形成影響?這個原理要追溯到 Linux 的文件系統機制。進程

以下圖所示,Linux 底層文件系統中 VFS 上次 App 進程之間,存在一層 pagecache,pagecache 由內存中的物理 page 組成,其內容對應磁盤上的 block。Pagecache 的大小是動態變化的,能夠擴大,也能夠在內存不足時縮小。Cache 緩存的存儲設備被稱爲後備存儲(backing store),一個 page 一般包含多個 block,這些 block 不必定是連續的。內存

011c084a6b328a32fbb2ce5135b811e7a2826acc

相關文章
相關標籤/搜索