溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是ODEX?

發(fā)布時間:2020-07-16 09:41:46 來源:網(wǎng)絡 閱讀:772 作者:ycmx1208 欄目:開發(fā)技術(shù)

什么是ODEX?
ODEX是安卓上的應用程序apk中提取出來的可運行文件,是通過apk安裝包的中的dex優(yōu)化過的,再把apk包里的dex文件刪除。
這樣做可以加快軟件的啟動速度,預先提取,減少對RAM的占用,因為沒有odex的話,系統(tǒng)要從apk包中提取dex再運行。

什么是dalvik-cache?
Android啟動時,DalvikVM監(jiān)視所有的程序(APK文件)和框架,并且為他們創(chuàng)建一個依存關(guān)系樹。DalvikVM通過這個依存關(guān)系樹來為每個程序優(yōu)化代碼并存儲在Dalvik緩存中。這樣,所有程序在運行時都會使用優(yōu)化過的代碼。這就是當你刷一個新的ROM時,有時候第一次啟動時間非常非常長的原因。當一個程序(或者框架庫)發(fā)生變更,DalvikVM將會重新優(yōu)化代碼并且再次將其存在緩存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache則是存放data/app生成的dex文件。

ODEX作用
所謂Odex,是由android軟件中的classes.dex生成的,Odex化即是把那個文件預先提取出來作用是能加快軟件加載速度和開機速度。不過Odex也有缺點,那就是有時候加刷東西會出現(xiàn)問題。
看懂了嗎?用我的理解,簡單說,原本系統(tǒng)每次執(zhí)行APK都需要先提取一部分出來,而Odex化就是現(xiàn)在你提前把它提取出來了。系統(tǒng)啟動或者程序運行加快的原因也就在此。而由于提取了Odex出來,會占用一部分存儲空間,所以做Odex化的時候需要考慮空間方面的問題。

Odex的效果
Odex化后系統(tǒng)啟動和程序運行速度大大提高,穩(wěn)定性不變。因此推薦做Odex化。
一般來說官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(無odex文件)。兩者應該各有優(yōu)點吧,貌似現(xiàn)在也沒有統(tǒng)一的說法。官方rom大部分每個apk對應一個.odex文件,而deodex化的rom里面只有一個apk,把.odex轉(zhuǎn)換成classes.dex放到apk包里面了。所以 odex rom的.apk+.odex=deodex化rom的1個.apk (簡單地來說,其實就上一個合并的過程)

Odex的優(yōu)點
1.刷完機首次進入系統(tǒng)的時間會縮短一些。文件的運行速度應該也有所提升。
2.APK文件不能單獨安裝,并且如果反編譯APK文件,一般也只能得到資源文件??梢哉f是起到一定的保護作用,避免被肆意修改和使用。這樣做可以使其廠商保證一定的反盜版,因為沒有沒有dex文件的apk是無法正常安裝的。
3.會增加一些可安裝應用的空間,雖然不是很多。

Odex的缺點
1.不方便修改ROM以及文件本身。
2.增加ROM包的體積,雖然不是很多。
3.當你升級某個被Odex的應用后,這個應用將會出現(xiàn)故障,最常見的就是FC。

向AI問一下細節(jié)
推薦閱讀:
  1. 什么是PHP
  2. 什么是python

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI