為什麼 Android 在同樣的硬件條件(甚至是更好的硬件)下沒法做到 iOS 下那樣的流暢? | 知乎問答精選

 

A-A+

為什麼 Android 在同樣的硬件條件(甚至是更好的硬件)下沒法做到 iOS 下那樣的流暢?

2018年12月20日 GOOGLE, 知乎問答精選 暫無評論 閱讀 5 ℃ 次

比較過android和ios的人應該都會或多或少的感覺到android不管是系統自帶的應用還是第三方開發的,經常會有卡的情況(在早期的android機器上更是卡的慘不忍睹),但是三年前發佈的iPhone 3GS卻能跑很華麗的遊戲。我的XOOM頂著雙核1G的處理器,卻連流暢的顯示pdf都做不到。這會是有什麼導致的?java比obj-c慢很多,還是android寫的太爛?

【Tea Tien的回答(17票)】:

蘋果可以從最底層的硬件 軟件上同時優化,並且產品只有幾款,完全專注其中,大力優化。

?而安卓則非常混亂,google發佈系統,各種手機廠商生產硬件,然後各種市場提供APP,產品的性能、分辨率等硬件條件都參差不齊,很難做到各個版本都做到完美兼容。

轉自最近在微博看到的:前谷歌工程師解釋為何Android沒iOS流暢.

Andrew表示,在IOS系統中,用戶界面的渲染過程被賦予了極高的優先等級,只要用戶手指接觸屏幕開始操作,IOS將停止所有進程,集中講所有系統資源對界面進行渲染,使得用戶的使用體驗有著非常高的水平。而在android系統中,界面的渲染就沒有這種待遇了,各種進程並不會因此讓路,android手機的配置雖然高,但是由於資源都被分配到不同任務去了,能分配到資源反而不如IOS多,andrew說這就是android流暢性不如IOS的原因。

為什麼android團隊不著手解決呢?andrew又繼續爆料:android系統的開發的時間甚至要早於第一代iphone發佈的時間,當時的手機還沒有進入屏幕觸控的風潮,android原型機一開始是帶鍵盤的手機設計,用戶界面渲染的優先級別要求也不高。但是在iphone發佈之後,android團隊為了讓其成為能與IOS競爭的產品,在非常短的時間內將android改成了屏幕觸控手機,由於時間緊,已經不可能重寫代碼框架式,因為那會使所有應用程序都無法使用。於是界面的渲染級別問題就一直存留到今天。

【程博的回答(8票)】:

ios的object-c需要自己分配及釋放內存,android則相反,由垃圾回收負責回收內存,而且這個動作發生的時間不由程序員控制,所以導致用戶在使用app時,經常垃圾回收開始工作導致系統流暢度下降

【戴峰的回答(4票)】:

蘋果擅長的是軟硬結合,iOS只跑在屈指可數的芯片上。

Android要面對無數不同的硬件組合,分辨率,驅動。。。。質量參差不齊。

原來遊戲卡有一個因素是JAVA的GC,現在比較跨平台遊戲,Android並不處於下風。

【張志深的回答(1票)】:

簡單的說,蘋果的硬件是為操作系統而生。iOS系統本身做得好,加之軟件開發工具周全,所以不乏高水平用戶體驗的精品軟件。而安卓機型各大廠商在Android3.0及以下時代拼硬件很大程度上是無意義的,操作系統限制很大,4.0系統的釋出是安卓與蘋果的背水一戰與新的起點,靜觀4.0的市場反饋吧。順便說一下,微軟的WP7正是看到了蘋果的優點與安卓的缺點。

【孟剛的回答(0票)】:

蘋果ios都是針對其特有硬件做了優化的,而安卓不同,是大眾化的os,需要兼顧各個平台,所以不免在某些性能上有損失嘍~

【湯宗勝的回答(0票)】:

iOS和Android的線程調度策略的不同,

在iOS中,蘋果將UI線程的優先級置為極高(實時級),工作線程較低,這樣可以保證前台UI的流暢度,給用戶及時的反饋,加強體驗。

【孫竟的回答(0票)】:

有篇文章曾經指出,iOS優先處理用戶請求,這樣會讓用戶感覺很好;而Android是並行處理用戶請求和後台線程,這樣效率雖然更高,但用戶體驗就糟糕了。

此外,Java在垃圾回收時貌似會暫停其他線程,這樣也會造成突然很卡的情況。

【iKaws的回答(1票)】:

軟硬結合,配置夠用優化合理是,iOS在設計時就考慮的很清楚了。

Android過度的硬件配置堆積,系統並未考慮到硬件,硬件也沒對系統對資源的佔用進行優化,外加上java的天生缺陷,導致高配低能。

【鄭紫陽的回答(0票)】:

正如各位所說這是 un-native 的原罪。

【劉凱的回答(0票)】:

個人覺得WP7的系統優化做的相當好,流暢度跟ios差別不大

【Holly Lee的回答(0票)】:

就沒用到 OpenGL ES 的普通應用而言, android UI 的不流暢主要是因為沒有利用 GPU 的加速能力的緣故.

【上吊de魚的回答(0票)】:

ios應用都通過蘋果嚴格審核,卡的話你就不會看到了,android應用幾乎不審核。ios開發者要控制內存的使用,開發成本也要高的,ios不支持後台程序節省了很多系統資源

【毛藝的回答(0票)】:

這個問題不太瞭解

【快樂的小煙苗的回答(0票)】:

其實如果使用像三星這種深度優化的應該沒問題。

標籤:-蘋果(Apple-Inc-) -谷歌-(Google) -Android -iOS -手機 -平板電腦 -Tea Tien


相關資源:




給我留言