odex文件生成方法 什么是ODEX?
什么是ODEX?ODEX是安卓上的應用程序apk中再提取出的可運行文件,還沒有APK中的文件是從dex優(yōu)化過程將其優(yōu)化化合一個.odex文件集中存放,原APK中的文件會保留。這樣做可以減慢軟件的啟動速
什么是ODEX?
ODEX是安卓上的應用程序apk中再提取出的可運行文件,還沒有APK中的文件是從dex優(yōu)化過程將其優(yōu)化化合一個.odex文件集中存放,原APK中的文件會保留。
這樣做可以減慢軟件的啟動速度,先行提純,減少對RAM的占用,因為沒有odex的話,系統(tǒng)要從apk包中再提取dex再不運行
什么是dex文件?
dex文件是Android系統(tǒng)的可執(zhí)行文件,中有應用程序的全部操作指令在內(nèi)運行時數(shù)據(jù)。
導致dalvik是一種針對嵌入式設備而特殊能量啊,設計的java虛擬機,所以才dex文件與標準的class文件在結構設計上有著本質(zhì)的區(qū)別。
當java程序程序編譯成class后,還不需要在用dex工具將所有的class文件整合到一個dex文件,目的是其中各個類也能共享數(shù)據(jù),在這減低了冗余,同樣也是文件結構極其經(jīng)湊,dex文件是現(xiàn)代jar文件大小的50%左右。
dex將原來是class每個文件都是的共三信息合成套裝一體,這樣降低了class的冗余。
為什么小內(nèi)存iPhone比大內(nèi)存Android機更流暢?
這中間的原因相當多,并且iPhone的內(nèi)存都是越來越強了,從之前的1-2G升到了2-3G,都是漸漸適應時代的發(fā)展是需要,當然了Android手機的步子相當大些了,現(xiàn)在基本是3GB平路,統(tǒng)一標配4-6GB,高的至少8GB了,盡我所知,總結如下:
垃圾回收機制,換句話說Android內(nèi)存越大越好Android內(nèi)存管理機制是適得其所,有多少內(nèi)存就用多少,等他內(nèi)存夠不夠了,變會先執(zhí)行垃圾回收,這樣的機制促進大內(nèi)存的發(fā)揮,而對于內(nèi)存有限的手機就很不大好。問題本質(zhì),垃圾回收是三個普通的東西的過程,會使設備變慢,這又是大家偶爾會吐糟手機在用一些時間變得更加有些卡的比較多原因。
但iPhone沒有垃圾回收這樣的機制,它用的是自動啟動語句數(shù)器,這是Objective-C管理對象的方法,諸如引用時計數(shù)寄存器1,解引時-1,定時計數(shù)為0時就施放,整體上它對內(nèi)存的利用率要高得多,絕對不會有事沒事都丟在后臺,在內(nèi)存上占用要少得多,當然了,也每天都有人吐槽iOS這種“偽后臺”。
雖說內(nèi)存越大越好,但對大多數(shù)人來說,4gb內(nèi)存的Android手機早就能滿足的條件絕大多數(shù)人的需求了,并不是像8GB對iPhone的3GB這樣過分。
用戶界面的優(yōu)先級,才是iPhone流暢的主要原因iOS優(yōu)勢之一那是不能操作下來流暢十足,這個主要注意原因是iOSUI軟件渲染發(fā)生在具有動態(tài)實時優(yōu)先級的不能線程中,但是在Android上,UI3d渲染僅僅突然發(fā)生在普通優(yōu)先級的主線程中,這譏諷之意著Android中的其他應用一旦也可以組建處理器資源,并傷害基本上的用戶界面交互,從而造成很明顯的延遲。
應用程序管理,開放的、自由與混亂Android給了開發(fā)人員更多的權利和自由,導致內(nèi)存泄漏或資源占用后臺進程,確實現(xiàn)在Android早就做了一些接觸來控制它,但力度還遠遠不夠,更何況在國內(nèi)還有一個很多出了問題的開發(fā)人員肆意在憑借這種自由做著一些其他傷害用戶體驗的事。
iOS就差別啊,它對開發(fā)人員做出了很多限制,在這樣一板一眼下,開發(fā)人員也做不了什么傷害的事情來,當iOS如果說某應用不是需要運行時,iOS會強制停止任何進程。
軟件與硬件的協(xié)作iOS與iPhone是一定高度協(xié)作的,它們也是蘋果公司設計和測試,并由Apple的合作伙伴制造,而Android四海為家,開發(fā)人員與硬件制造商分離出來,碎片化已不堪負重,在軟硬件的銜接過渡上遠不妨iPhone了。
恰恰因此這樣種種原因,才照成了題主所問的問題,不過,Android正準備努力再努力趕不上,Google也在不停相關規(guī)范這個系統(tǒng),兩者之間的差距一直在縮小成,但是,我們也要正視這種差距的存在。