安卓手機一定在下載軟件或者游戲的時候,接觸到一個新的系統(tǒng)名詞—安卓APK文件!也許很多對安卓APK文件不是很了解,下面就來給大家簡單解析一下安卓APK文件的定義和文件結(jié)構(gòu)等方面問題!
其實APK文件就是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼!
而一個APK文件結(jié)構(gòu)為:
mete-INF Jar文件中常可以看到
res 存放資源文件的目錄
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字節(jié)碼
resources.arsc 編譯后的二進制資源文件
總的來說,安卓在運行一個程序時首先需要UnZip,然后類似Symbian那樣直接,和Windows Mobile中的PE文件有區(qū)別,這樣做對于程序的保密性和可靠性不是很高,通過dexdump命令可以反編譯,但這樣做符合發(fā)展規(guī)律,微軟的 Windows Gadgets或者說WPF也采用了這種構(gòu)架方式!
我們在Android平臺中dalvik vm的執(zhí)行文件被打包為apk格式,最終運行時加載器會解壓然后獲取編譯后的androidmanifest.xml文件中的permission分支相關(guān)的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發(fā)現(xiàn)執(zhí)行是不受限制的。
最終我們平時安裝的文件可能不是這個文件夾,而在安卓rom中系統(tǒng)的apk文件默認(rèn)會放入這個文件夾,它們擁有著root權(quán)限!
看了這些,安卓手機用戶一定對安卓APK文件擁有一定了解了,那么相信你在使用和安裝APK文件的時候也就更加的快捷!