android dex 解析工具 dex標(biāo)準(zhǔn)?
dex標(biāo)準(zhǔn)?DEX文件是Android系統(tǒng)的可執(zhí)行文件,包含應(yīng)用程序的所有操作指令和運(yùn)行時(shí)數(shù)據(jù)。由于Dalvik是專門(mén)為嵌入式設(shè)備設(shè)計(jì)的Java虛擬機(jī),因此DEX文件的結(jié)構(gòu)設(shè)計(jì)與標(biāo)準(zhǔn)類(lèi)文件有本質(zhì)的區(qū)別
dex標(biāo)準(zhǔn)?
DEX文件是Android系統(tǒng)的可執(zhí)行文件,包含應(yīng)用程序的所有操作指令和運(yùn)行時(shí)數(shù)據(jù)。
由于Dalvik是專門(mén)為嵌入式設(shè)備設(shè)計(jì)的Java虛擬機(jī),因此DEX文件的結(jié)構(gòu)設(shè)計(jì)與標(biāo)準(zhǔn)類(lèi)文件有本質(zhì)的區(qū)別。
當(dāng)Java程序編譯成一個(gè)類(lèi)時(shí),我們需要使用DEX工具將所有類(lèi)文件集成到一個(gè)DEX文件中。其目的是使每個(gè)類(lèi)都能共享數(shù)據(jù),在一定程度上減少了冗余。同時(shí),文件結(jié)構(gòu)更加緊湊。DEX文件大約是傳統(tǒng)jar文件大小的50%。
DEX結(jié)合了原始類(lèi)中每個(gè)文件的公共信息,減少了類(lèi)的冗余。
從宏的角度來(lái)看,DEX的文件結(jié)果非常簡(jiǎn)單。實(shí)際上,它是由多個(gè)具有不同結(jié)構(gòu)的數(shù)據(jù)體組成的,這些數(shù)據(jù)體是端到端連接的。
Android的系統(tǒng)架構(gòu)與其操作系統(tǒng)相同,采用分層架構(gòu)。
從架構(gòu)圖上看,Android分為應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行時(shí)層和Linux內(nèi)核層四層,從高層到底層。
DEX文件的功能:DEX文件的功能是記錄整個(gè)項(xiàng)目(通常是Android項(xiàng)目)所有類(lèi)文件的信息。
DEX文件的結(jié)構(gòu):8位二進(jìn)制流文件,每個(gè)數(shù)據(jù)緊密排列,沒(méi)有縫隙,減小了文件的大小,加快了加載速度;整個(gè)項(xiàng)目的類(lèi)信息存儲(chǔ)在一個(gè)DEX文件中(不考慮DEX分包的情況);同樣,您也可以通過(guò)編輯。