和“4K對齊”有壹些意思上的相似。
在Android中,每個應用程序中儲存的數據文件都會被多個進程訪問:安裝程序會讀取應用程序的manifest文件來處理與之相關的權限問題;Home應用程序會讀取資源文件來獲取應用程序的名和圖標;系統服務會因為很多種原因讀取資源(例如,顯示應用程序的Notification);此外,就是應用程序自身用到資源文件。
在Android中,當資源文件通過內存映射對齊到4字節邊界時,訪問資源文件的代碼才是有效率的。但是,如果資源本身沒有進行對齊處理(未使用過zipalign工具),它就必須回到老路上,顯式地讀取它們——這個過程將會比較緩慢且會花費額外的內存。
對於應用程序開發者來說,這種顯式讀取方式是相當便利的。它允許使用壹些不同的開發方法,包括正常流程中不包含對齊的資源,因此,這種讀取方式具有很大的便利性。
遺憾的是,對於用戶來說,這個情況恰恰是相反的——從未對齊的apk中讀取資源比較慢且花費較多內存。最好的情況是,Home程序和未對齊的程序啟動得比對齊後的慢(這也是唯壹可見的效果)。最壞的情況是,安裝壹些未對齊資源的應用程序會增加內存壓力,並因此造成系統反復地啟動和殺死進程。最終,用戶放棄使用如此慢又耗電的設備。
zipalign提高了優化後的Applications與Android系統的 交互效率。
zipalign就好比為Applications與Android系統之間搭建了壹條高速公路
簡單優化:zipalign
Android SDK中包含壹個“zipalign”的工具,它能夠對打包的應用程序進行優化。在妳的應用程序上運行zipalign,使得在運行時Android與應用程序間的交互更加有效率。因此,這種方式能夠讓應用程序和整個系統運行得更快。我們強烈推薦在新的和已經發布的程序上使用zipalign工具來得到優化後的版本——即使妳的程序是在老版本的Android平臺下開發的。這篇文章將描述zipalign如何有助於性能改善以及如何使用它來優化妳的app。
在Android中,每個應用程序中儲存的數據文件都會被多個進程訪問:安裝程序會讀取應用程序的manifest文件來處理與之相關的權限問題;Home應用程序會讀取資源文件來獲取應用程序的名和圖標;系統服務會因為很多種原因讀取資源(例如,顯示應用程序的Notification);此外,就是應用程序自身用到資源文件。
使用ADT:
如果妳使用導出向導的話,Eclipse中的ADT插件,就能自動對齊Release程序包。使用向導,右擊工程屬性,選擇“Android Tools” > “Export Signed Application Package…”。當然,妳還可以通過AndroidManifest.xml編輯器的第壹頁做到。
使用Ant:
Ant編譯腳本(從Android 1.6開始)可以對齊程序包。老平臺的版本不能通過Ant編譯腳本進行對齊,必須手動對齊。
從Android 1.6開始,Debug模式下編譯時,Ant自動對齊和簽名程序包。
Release模式下,如果有足夠的信息簽名程序包的話,Ant才會執行對齊操作,因為對齊處理發生在簽名之後。為了能夠簽名程序包,進而執行對齊操作,Ant必須知道keystore的位置以及build.properties中key的名字。相應的屬性名為key.store和key.alias。如果這些屬性為空,簽名工具會在編譯過程中提示輸入store/key的密碼,然後腳本會執行簽名及apk文件的對齊。如果這些屬性都沒有,Release程序包不會進行簽名,自然也就不會進行對齊了。
手動:
為了能夠手動對齊程序包,Android 1.6及以後的SDK的tools/文件夾下都有zipalign工具。妳可以使用它來對齊任何版本下的程序包。妳必須在簽名apk文件後進行,使用以下命令:zipalign -v 4 source.apk destination.apk
驗證對齊:
以下的命令用於檢查程序包是否進行了對齊:zipalign -c -v 4 application.apk
極力推薦手動zipalign妳的應用程序,並確保將最新對齊後的版本提供給用戶。此外,別忘了還有的新應用程序也需要這麽做!
簡單優化:zipalign
Android SDK中包含壹個“zipalign”的工具,它能夠對打包的應用程序進行優化。在妳的應用程序上運行zipalign,使得在運行時Android與應用程序間的交互更加有效率。因此,這種方式能夠讓應用程序和整個系統運行得更快。我們強烈推薦在新的和已經發布的程序上使用zipalign工具來得到優化後的版本——即使妳的程序是在老版本的Android平臺下開發的。這篇文章將描述zipalign如何有助於性能改善以及如何使用它來優化妳的app。
在Android中,每個應用程序中儲存的數據文件都會被多個進程訪問:安裝程序會讀取應用程序的manifest文件來處理與之相關的權限問題;Home應用程序會讀取資源文件來獲取應用程序的名和圖標;系統服務會因為很多種原因讀取資源(例如,顯示應用程序的Notification);此外,就是應用程序自身用到資源文件。
總而言之zipalign,是專門優化apk的
參考資料: