2012-09-14 66 views

回答

4

首先你需要了解.apk和.odex文件的工作。

.Odex文件:
Odex文件是提取的和優化的DEX文件(classes.dex) from APK or JAR files
ODEX文件對生成時加載的BOOTCLASSPATH中的每個文件都有依賴關係。
odex文件僅在與這些確切的BOOTCLASSPATH文件一起使用時纔有效。
Android應用程序與分機.apk一起打包。這些應用程序包或APK包含某些.odex files,它們的功能是節省空間。
這些'odex'文件實際上是在引導之前優化的應用程序部分的集合。
由於部分編碼在執行之前已經被提取到另一個位置,因此它也會使這些應用程序變得非常困難。

它是如何工作的: -
Android操作系統採用基於Java的虛擬機運行的應用程序,稱爲Dalvik虛擬機。 A deodexed, or .dex文件包含該虛擬機(referred to as Dalvik-cache)用於某個程序的緩存,並且它存儲在APK.文件中,而.odex文件則是該文件的優化版本,該文件存儲在APK旁邊,而不是在裏面。
Android默認將此技術應用於所有系統應用程序。

現在,當基於Android的系統啓動時,Davlik VM的davlik緩存使用這些.odex文件構建,允許OS預先學習將加載哪些應用程序,從而加速引導過程。

通過deodexing這些APK,開發者實際將.odex文件回到各自APK包裝內。由於所有代碼現在都包含在APK本身中,因此可以修改任何應用程序包而不會與操作系統的執行環境發生衝突。

你可以找到一些信息Here
Here is one StackOverFlow question may helpful to you

相關問題