Android APK最佳化工具Zipalign詳解_Android

來源:互聯網
上載者:User

      Android SDK中包含了一個用於最佳化APK的新工具zipalign。它提高了最佳化後的Applications與Android系統的互動效率(俗話:“要致富先修路”,Android小組重新為Applications與Android系統之間搭建了一條高速公路),從而可以使整個系統的運行速度有了較大的提升。Android小組強烈建議開發人員在發布新Apps之前使用zipalign最佳化工具,而且對於已經發布但不受限於系統版本的Apps,建議用最佳化後的APK替換現有的版本。

       在下面的內容中將從三個方面介紹zipalign:

       1、zipalign如何最佳化

       2、如何使用zipalign

       3、使用zipalign的理由

       根據官方文檔的描述,Android系統中Application的資料都儲存在它的APK檔案中,同時可以被多個進程訪問,安裝的過程包括如下幾個步驟:

       1、Installer通過每個apk的manifest檔案擷取與當前應用程式相關聯的permissions資訊。

       2、Home application讀取當前APK的Name和Icon等資訊。

       3、System server將讀取一些與Application運行相關資訊,例如:擷取和處理Application的notifications請求等。

       4、最後,APK所包含的內容不僅限於當前Application所使用,而且可以被其它的Application調用,提高系統資源的可複用性。

       zipalign最佳化的最根本目的是協助作業系統更高效率的根據請求索引資源,將resource-handling code統一將Data structure alignment(資料結構對齊標準:DSA)限定為4-byte boundaries。如果第一次接觸有關Data structurealignment的內容,強烈建議搜尋更多與其相關的內容來充分理解這樣做的最終目的,這也是理解zipalign工作原理的關鍵。 如果不採取對齊的標準,處理器無法準確和快速的在記憶體位址中定位相關資源。

       目前的系統中使用fallbackmechanism機制處理那些沒有應用DSA標準的應用程式,這的確大大的方便了普通開發人員無需關注繁瑣的記憶體操作問題。但是相反,對於這樣的應用程式將給普通使用者帶來一定的麻煩,不但影響程式的啟動並執行效率,而且使系統的整體執行效率下降和佔用大量不必要的記憶體資源,甚至消耗一定的電池資源(battery life)。

       在Android SDK中提供了三種應用Align操作的方法:

       1、使用ADT:

       從ADT 0.9.3版本開始,可以通過export wizard自動對發布的applicationpackages執行align操作。設定方法:滑鼠右鍵點擊Project,然後選擇”Android Tools” > “ExportSigned Application Package…”。或者可以直接在AndroidManifest.xml中設定。

       2、使用Ant:

       對於API Level 大於等於4的Application Packages可以直接通過Ant build script來Align最佳化。但對於API Level小於4的情況,只能採取手動Align最佳化。

       預設下應用Ant build script運行Debug packages(API Level >= 4)時,將自動執行Align最佳化。

       針對Release packages。當使用Ant build script執行Align最佳化時,首先需要擁有足夠的資訊來Sign packages。當完成Signing之後, 才能執行Align最佳化。通過官方文檔瞭解如何Sign Packages。

       3、手動執行Align最佳化:

       利用tools檔案夾下的zipalign工具。首先調出cmd命令列,然後執行:zipalign -v 4 source.apk androidres.apk。這個方法不受API Level的限制,可以對任何版本的APK執行Align最佳化。

       同時可以利用zipalign工具檢查當前APK是否已經執行過Align最佳化。命令:zipalign -c -v 4 androidres.apk

       再一次提醒開發人員,立刻應用zipalign工具強制最佳化已經發布的application packages,並讓你的使用者使用最新的版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.