百科解釋
APK是Android Package的縮寫,即Android安裝包。APK是類似Symbian Sis或Sisx的文件格式。通過(guò)將APK文件直接傳到Android模擬器或Android手機(jī)中執(zhí)行即可安裝。 APK文件其實(shí)是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)制資源文件 總結(jié)下我們發(fā)現(xiàn)Android在運(yùn)行一個(gè)程序時(shí)首先需要UnZip,然后類似Symbian那樣直接,和Windows Mobile中的PE文件有區(qū)別,這樣做對(duì)于程序的保密性和可靠性不是很高,通過(guò)dexdump命令可以反編譯,但這樣做符合發(fā)展規(guī)律,微軟的 Windows Gadgets或者說(shuō)WPF也采用了這種構(gòu)架方式。 在Android平臺(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è)文件夾,而在android rom中系統(tǒng)的apk文件默認(rèn)會(huì)放入這個(gè)文件夾,它們擁有著root權(quán)限。
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助