Android 台灣中文網
標題: 【XPT】x8-w8 ODEX差別(含ODEX檔案) [打印本頁]
作者: mia19820918 時間: 2013-12-10 20:42
標題: 【XPT】x8-w8 ODEX差別(含ODEX檔案)
本帖最後由 mia19820918 於 2013-12-12 20:44 編輯
以前不知道,也沒有看過。今天一找,發現網上很多,也許這個也不是原創,不過我想講的應該有些道理
不少機油經常看到說某ROM是DEX版,無ODEX文件,然後模糊地知道ODEX對系統的作用,但是似乎沒有一個帖子清晰簡明的給予說明,同時能夠幫助機油自己動手進行一些簡單的ODEX DIY 。我這裡拋磚引玉,有不對和不足之處請大神們補充。
①什麼是Odex?
Odex是安卓上的應用程序apk中提取出來的可運行文件,是通過apk安裝包的中的dex優化過的,再把apk包裡的dex文件刪除。這樣做可以加快軟件的啟動速度,預先提取,減少對RAM的佔用,因為沒有odex的話,系統要從apk包中提取dex再運行。
②什麼是dalvik-cache?
當Android啟動時,DalvikVM監視所有的程序(APK文件)和框架,並且為他們創建一個依存關係樹。 DalvikVM通過這個依存關係樹來為每個程序優化代碼並存儲在Dalvik緩存中。這樣,所有程序在運行時都會使用優化過的代碼。這就是當你刷一個新的ROM時,有時候第一次啟動時間非常非常長的原因。當一個程序(或者框架庫)發生變更,DalvikVM將會重新優化代碼並且再次將其存在緩存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache則是存放data/app生成的dex文件。而做Deodex的,會在cache/dalvik-cache是產生存放system上的程序生成的dex文件,【其他網上找的】這個真心感覺到了。 。 。 。 date空間少了30M+
所謂Odex,是由android軟件中的classes.dex生成的,Odex化即是把那個文件預先提取出來作用是能加快軟件加載速度和開機速度。不過Odex也有缺點,那就是有時候加刷東西會出現問題。
看懂了嗎?用我的理解,簡單說,原本系統每次執行APK都需要先提取一部分出來,而Odex化就是現在你提前把它提取出來了。系統啟動或者程序運行加快的原因也就在此。而由於提取了Odex出來,會佔用一部分存儲空間,所以做Odex化的時候需要考慮空間方面的問題。
Odex的效果
Odex化後系統啟動和程序運行速度大大提高,穩定性不變。因此推薦做Odex化。
一般來說官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(無odex文件)。兩者應該各有優點吧,貌似現在也沒有統一的說法。官方rom大部分每個apk對應一個.odex文件,而deodex化的rom裡面只有一個apk,把.odex轉換成classes.dex放到apk包裡面了。所以odex rom的.apk+.odex=deodex化rom的1個.apk (簡單地來說,其實就上一個合併的過程)
Odex的優點:
1.刷完機首次進入系統的時間會縮短一些。文件的運行速度應該也有所提升。
2.APK文件不能單獨安裝,並且如果反編譯APK文件,一般也只能得到資源文件。可以說是起到一定的保護作用,避免被肆意修改和使用。這樣做可以使其廠商保證一定的反**,因為沒有沒有dex文件的apk是無**常安裝的。
3.會增加一些可安裝應用的空間,雖然不是很多。 (這個我沒發現)
Odex的缺點:
1.不方便修改ROM以及文件本身。
2.增加ROM包的體積,雖然不是很多。
3.當你升級某個被Odex的應用後,這個應用將會出現故障,最常見的就是FC。
而現在的定制rom之所以基本上都是deodex化(無odex文件)的是因為:
1. 可以適當減小文件的體積,起到節省rom空間的作用;
2.主要方便rom定制者對rom的個性化定制和移植;apk相對容易反編譯和修改,而odex先要解包成smali然後才能生成classes.dex,如果要再生成odex,還要用dexopt- wrapper,比較麻煩。
個人的感覺:Odex化後系統啟動和程序運行速度的確提高了,多少不知道,但是做了Deodex(合併apk和odex)的刷機後的啟動速度確沒有Odex的來得快,也就是官方的,沒有做Deodex的。大家刷過這兩種的包就知道。所以,希望能夠少些做Deodex的rom。多出基於官方的。
引用這裡的一句話:
一些ROM製作者跨進的誤區
官方辛辛苦苦對軟件以及jar的框架文件進行了odex化,目的就是為了加速軟件的運行,及啟動,而一些ROM 製作做,偏偏去進行odex文件的合併,這樣反倒會影響程序的運行速度!
言歸正傳:
帶odex文件有利也有弊,同樣不帶odex文件也有利又有弊。
具體效果如何,根據個人使用習慣請自行體會,每個人的感覺都不同,說也說不清。
檔案下載:
odex-X8.zip
(259.16 KB, 下載次數: 11)