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