Android SDK中包含一個「zipalign」的工具,它可以對打包的應用程序進行優化。在你的應用程序上運行zipalign,使得在運行時Android與應用程序間的交互更加有效率。所以,這種方式可以讓應用程序和整個系統運行得更快。咱們強烈推薦在新的和已經發布的程序上使用zipalign工具來獲得優化後的版本——即便你的程序是在老版本的Android平臺下開發的。這篇文章將描述zipalign如何有助於性能改善以及如何使用它來優化你的app。html
在Android中,每一個應用程序中儲存的數據文件都會被多個進程訪問:安裝程序會讀取應用程序的manifest文件來處理與之相關的權限問題;Home應用程序會讀取資源文件來獲取應用程序的名和圖標;系統服務會由於不少種緣由讀取資源(例如,顯示應用程序的Notification);此外,就是應用程序自身用到資源文件。app
在Android中,當資源文件經過內存映射對齊到4字節邊界時,訪問資源文件的代碼纔是有效率的。可是,若是資源自己沒有進行對齊處理(未使用zipalign工具),它就必須回到老路上,顯式地讀取它們——這個過程將會比較緩慢且會花費額外的內存。編輯器
對於應用程序開發者來講,這種顯式讀取方式是至關便利的。它容許使用一些不一樣的開發方法,包括正常流程中不包含對齊的資源,所以,這種讀取方式具備很大的便利性(本段的原始意思請參考原文)。工具
遺憾的是,對於用戶來講,這個狀況偏偏是相反的——從未對齊的apk中讀取資源比較慢且花費較多內存。最好的狀況是,Home程序和未對齊的程序啓動得比對齊後的慢(這也是惟一可見的效果)。最壞的狀況是,安裝一些未對齊資源的應用程序會增長內存壓力,並所以形成系統反覆地啓動和殺死進程。最終,用戶放棄使用如此慢又耗電的設備。post
幸運的是,對應用程序中的資源做對齊操做很簡單:性能
咱們極力推薦手動zipalign你的應用程序,並確保將最新對齊後的版本提供給用戶。此外,別忘了還有你的新應用程序也須要這麼作!優化