編輯:關於Android編程
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,並讓你的用戶使用最新的版本。
一.兄弟Layout_height為fill_parent本來准備編寫一款簡單的計算器,來學習android,遇到了多個兄弟Layout區域按照一個比例大小來顯示的技術問
Fiddler是一款免費的抓包、調試工具,比Wireshark要小巧,更簡潔,本節就來介紹如何通過WIFI來抓取Android手機的HTTP和HTTPS包。一、連接And
Service是Android四大組件與Activity最相似的組件,都代表可執行的程序,區別在於Service一直在後台運行且沒有用戶界面。1.Service的類圖和生
一、概述運行時變更就是設備在運行時發生變化(例如屏幕旋轉、鍵盤可用性及語言)。發生這些變化,Android會重啟Activity,這時就需要保存activity的狀態及與