Android APK優(yōu)化工具Zipalign詳解
Android SDK中包含了一個(gè)用于優(yōu)化APK的新工具zipalign。它提高了優(yōu)化后的Applications與Android系統(tǒng)的交互效率(俗話:“要致富先修路”,Android小組重新為Applications與Android系統(tǒng)之間搭建了一條高速公路),從而可以使整個(gè)系統(tǒng)的運(yùn)行速度有了較大的提升。Android小組強(qiáng)烈建議開(kāi)發(fā)者在發(fā)布新Apps之前使用zipalign優(yōu)化工具,而且對(duì)于已經(jīng)發(fā)布但不受限于系統(tǒng)版本的Apps,建議用優(yōu)化后的APK替換現(xiàn)有的版本。
在下面的內(nèi)容中將從三個(gè)方面介紹zipalign:
1、zipalign如何優(yōu)化
2、如何使用zipalign
3、使用zipalign的理由
根據(jù)官方文檔的描述,Android系統(tǒng)中Application的數(shù)據(jù)都保存在它的APK文件中,同時(shí)可以被多個(gè)進(jìn)程訪問(wèn),安裝的過(guò)程包括如下幾個(gè)步驟:
1、Installer通過(guò)每個(gè)apk的manifest文件獲取與當(dāng)前應(yīng)用程序相關(guān)聯(lián)的permissions信息。
2、Home application讀取當(dāng)前APK的Name和Icon等信息。
3、System server將讀取一些與Application運(yùn)行相關(guān)信息,例如:獲取和處理Application的notifications請(qǐng)求等。
4、最后,APK所包含的內(nèi)容不僅限于當(dāng)前Application所使用,而且可以被其它的Application調(diào)用,提高系統(tǒng)資源的可復(fù)用性。
zipalign優(yōu)化的最根本目的是幫助操作系統(tǒng)更高效率的根據(jù)請(qǐng)求索引資源,將resource-handling code統(tǒng)一將Data structure alignment(數(shù)據(jù)結(jié)構(gòu)對(duì)齊標(biāo)準(zhǔn):DSA)限定為4-byte boundaries。如果第一次接觸有關(guān)Data structurealignment的內(nèi)容,強(qiáng)烈建議搜索更多與其相關(guān)的內(nèi)容來(lái)充分理解這樣做的最終目的,這也是理解zipalign工作原理的關(guān)鍵。 如果不采取對(duì)齊的標(biāo)準(zhǔn),處理器無(wú)法準(zhǔn)確和快速的在內(nèi)存地址中定位相關(guān)資源。
目前的系統(tǒng)中使用fallbackmechanism機(jī)制處理那些沒(méi)有應(yīng)用DSA標(biāo)準(zhǔn)的應(yīng)用程序,這的確大大的方便了普通開(kāi)發(fā)者無(wú)需關(guān)注繁瑣的內(nèi)存操作問(wèn)題。但是相反,對(duì)于這樣的應(yīng)用程序?qū)⒔o普通用戶帶來(lái)一定的麻煩,不但影響程序的運(yùn)行的效率,而且使系統(tǒng)的整體執(zhí)行效率下降和占用大量不必要的內(nèi)存資源,甚至消耗一定的電池資源(battery life)。
在Android SDK中提供了三種應(yīng)用Align操作的方法:
1、使用ADT:
從ADT 0.9.3版本開(kāi)始,可以通過(guò)export wizard自動(dòng)對(duì)發(fā)布的applicationpackages執(zhí)行align操作。設(shè)置方法:鼠標(biāo)右鍵點(diǎn)擊Project,然后選擇”Android Tools” > “ExportSigned Application Package…”?;蛘呖梢灾苯釉贏ndroidManifest.xml中設(shè)置。
2、使用Ant:
對(duì)于API Level 大于等于4的Application Packages可以直接通過(guò)Ant build script來(lái)Align優(yōu)化。但對(duì)于API Level小于4的情況,只能采取手動(dòng)Align優(yōu)化。
默認(rèn)下應(yīng)用Ant build script運(yùn)行Debug packages(API Level >= 4)時(shí),將自動(dòng)執(zhí)行Align優(yōu)化。
針對(duì)Release packages。當(dāng)使用Ant build script執(zhí)行Align優(yōu)化時(shí),首先需要擁有足夠的信息來(lái)Sign packages。當(dāng)完成Signing之后, 才能執(zhí)行Align優(yōu)化。通過(guò)官方文檔了解如何Sign Packages。
3、手動(dòng)執(zhí)行Align優(yōu)化:
利用tools文件夾下的zipalign工具。首先調(diào)出cmd命令行,然后執(zhí)行:zipalign -v 4 source.apk androidres.apk。這個(gè)方法不受API Level的限制,可以對(duì)任何版本的APK執(zhí)行Align優(yōu)化。
同時(shí)可以利用zipalign工具檢查當(dāng)前APK是否已經(jīng)執(zhí)行過(guò)Align優(yōu)化。命令:zipalign -c -v 4 androidres.apk
再一次提醒開(kāi)發(fā)者,立刻應(yīng)用zipalign工具強(qiáng)制優(yōu)化已經(jīng)發(fā)布的application packages,并讓你的用戶使用最新的版本。
相關(guān)文章
Android實(shí)現(xiàn)可以展開(kāi)的TextView
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可以展開(kāi)的TextView,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Android中實(shí)現(xiàn)為TextView添加多個(gè)可點(diǎn)擊的文本
這篇文章主要介紹了Android中實(shí)現(xiàn)為TextView添加多個(gè)可點(diǎn)擊的文本,可實(shí)現(xiàn)類似Android社交軟件顯示點(diǎn)贊用戶并通過(guò)用戶名稱進(jìn)入該用戶主頁(yè)的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09Android中使用TagFlowLayout制作動(dòng)態(tài)添加刪除標(biāo)簽
這篇文章主要介紹了Android中使用TagFlowLayout制作動(dòng)態(tài)添加刪除標(biāo)簽的步驟詳解,需要的朋友參考下吧2017-07-07Android 之BottomsheetDialogFragment仿抖音評(píng)論底部彈出對(duì)話框效果(實(shí)例代碼)
這篇文章主要介紹了Android 中之BottomsheetDialogFragment仿抖音評(píng)論底部彈出對(duì)話框效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android數(shù)據(jù)庫(kù)greenDAO配置與使用介紹
這篇文章主要介紹了Android集成GreenDao數(shù)據(jù)庫(kù),使用數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)候,一般都會(huì)使用一些第三方ORM框架,比如GreenDao,本文分幾步給大家介紹Android集成GreenDao數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2023-03-03Android實(shí)現(xiàn)屏幕旋轉(zhuǎn)四個(gè)方向準(zhǔn)確監(jiān)聽(tīng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)屏幕旋轉(zhuǎn)四個(gè)方向準(zhǔn)確監(jiān)聽(tīng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07