這兩種方式是否相同和正確?我可以在發佈之後簽署APK嗎?
方法1:
- Odex的所述APK到
.apk
和.odex
- 簽署
.apk
文件在步驟1中製造
方法2:
- 簽署APK
- Odex APK到
.apk
和.odex
這兩種方式是否相同和正確?我可以在發佈之後簽署APK嗎?
方法1:
.apk
和.odex
.apk
文件在步驟1中製造方法2:
.apk
和.odex
首先你需要了解.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。