java比ios慢_Android为什么比iOS慢
有些人會覺Android應用沒有iOS應用使用得流暢,我覺得主要原因有以下幾點:
第一,因為Android平臺相較于iOS起步晚,平臺不成熟,初期的開發者水平也有限,沒有很關注性能優化,只是想做出可用的應用,而未做出好用的應用。
第二,Android相對比較開放,讓開發者發揮的空間比較大。比如開發后臺永生進程、肆意搜集手機使用信息等這些會影響手機整體性能的行為理論上都是可以做得到,所以有些開發者就利用這種開放性,不顧用戶體驗,做了很多上不了臺面的小動作,導致手機整體使用體驗被拖累。
第三,Dalvik運行時機制導致了Android應用相對iOS會慢一些,所以Android團隊在4.4版本后使用Art運行時替代了Dalvik,下面我們詳細分析下為什么Dalvik運行時會導致慢。
Android是基于Java語言的,iOS是基于Obejctive-C。表現在手機和應用程序運行機制上,Java的代碼實際上需要 兩次“轉換”才能最終以用戶可看的程序跑起來,一次發生在開發者發布安裝包前,使用開發者自己機器的CPU,另一次在用戶啟動APP前,使用手機的 CPU。而基于Objective-C的代碼只需要一次這種“轉換”,在開發者發布安裝包前,所以只占用開發者機器的CPU時間。
在編譯Android程序時,首先java代碼被編譯成class文件,然后被java打包工具dx打包成.dex文件, Dex是DalvikVM executes的簡稱,即Android Dalvik執行程序。然后.dex文件和資源文件一起被壓縮成apk文件。APK其實也是zip格式,只是后綴被修改為了apk。Android應用安裝過程:復制APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節碼)保存到dalvik-cache目錄,并data/data目錄下創建對應的應用數據目錄。這樣每次用戶點擊圖標運行android程序時,dalvik虛擬機就會用JIT的方法把dex文件翻譯為機器碼執行。雖然Dalvik虛擬機已被做過很多優化,但因為此種機制的存在,所以Android在電量消耗和程序運行流暢程度上一直不敵iOS。
Android 4.4版本后這種情況會有很大改觀,Android 4.4采用ART模式,可以在用戶第一次安裝應用時,字節碼就會預先編譯成機器碼,使其成為真正的本地應用。不過也因為這一點,一個應用會占用更大的rom空間,第一次安裝時間也會變長。但它帶來的好處是遠遠大于這些缺點的。
以下是Art和Dalvik的對比圖
Dalvik和Art模式區別
上文只代表一家言論,歡迎大家吐槽。
總結
以上是生活随笔為你收集整理的java比ios慢_Android为什么比iOS慢的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机qq看点功能怎么设置
- 下一篇: android 反色 java_Andr