當前位置:首頁 > 嵌入式 > 嵌入式動態(tài)
[導讀]寫在前面的一些話:在糾結(jié)了很久以后,我決定來寫寫 iOS 和 Android,也算是對自己近幾年來學習成果的一個總結(jié)。這個話題非常大,本人雖盡我所能查證來源,但也難免會有疏

寫在前面的一些話:

在糾結(jié)了很久以后,我決定來寫寫 iOS 和 Android,也算是對自己近幾年來學習成果的一個總結(jié)。這個話題非常大,本人雖盡我所能查證來源,但也難免會有疏漏,有的話歡迎指出。我希望大家讀完后,是這樣的:

 

而不是:

 

我們應該為這個世界的多樣性而感到慶幸,不是么?

一、什么是流暢?什么是卡頓?

如果我們討論流暢和卡是建立在不同的標準上,一定會變成毫無意義的口水戰(zhàn)。在這里,流暢我們定義為運行程序時達到 60fps 或以上的繪制效率,且盡可能少丟幀??D我們定義為程序運行時無法達到 60fps,丟幀頻繁。

二、Apple 和 Android陣營 比是不是能帶來更流暢的應用體驗?

不是。兩者都非常順滑,用久了也都不卡頓。

Android 定義為 帶有 GMS 推送的,帶有良好 Android 應用生態(tài)圈的(包括少數(shù)國內(nèi)優(yōu)秀應用),具有 Google Play 服務的 Android 手機,擁有健康使用習慣的 Android。包括但不限于 Nexus,Moto,SONY,LG,htc,Samsung 在沒有封殺 Google 的市場的使用體驗。

三、Apple 和 安卓陣營 比是不是能帶來更流暢的應用體驗?

是。安卓(尤其是用久了)很可能會卡頓。

安卓 定義為 不帶GMS推送的,缺失良好 Android 應用生態(tài)的,不具有 Google Play 服務的,基于各種“深度優(yōu)化,深度定制,世界第一,跑分天王,etc.” 家,配合 “動不動就管家衛(wèi)士全家桶,清理內(nèi)存釋放手機速度,打敗全國百分之XX” 的用戶的 安卓生態(tài)。

四、Apple 和 Android陣營 硬件對比

Apple 硬件處于一個什么樣的水平?足夠優(yōu)秀的水平,Apple 是著名的硬件狂魔,并不是大家想的 iPhone 硬件遠遠不及 Android 陣營。

1、 Android 陣營目前的旗艦 Soc 之一 是基于 高通810 的解決方案(MTK 和 三星,華為 的解決方案不是很了解,歡迎補充。當然業(yè)界一般認為是三星的 CPU 14nm 制程更先進,所以功耗發(fā)熱的表現(xiàn)較810更好。),它擁有 8 個 CPU 核心,20nm 制程,主頻高達 2 GHz。810 純 CPU 計算能力,并發(fā)計算能力優(yōu)于 A8。但它頻率高,核心多,功耗和發(fā)熱量在密集計算時也會遠高于 A8,發(fā)熱會限制 810 的發(fā)揮。

2、CPU Cache 方面。

A8 非??犊嘏鋫淞烁哌_ 64KB 64KB 的 L1 Cache,1MB L2 Cache 和 4MB L3 Cache,與上一代 A7 相同,810 數(shù)據(jù)不明。但實際應用來看,似乎 810 配備的 Cache 喂不飽 8個核心,存在 Cache Miss 的情況。(有硬件信息的朋友歡迎補充)但是,即使沒有準確數(shù)據(jù)的情況下,有一件事情也是可以確定的,那就是 Cache per Core數(shù)據(jù) 810 絕對不如 A8。如果要做到一樣的水平,那么 810 要配備 128kb L1 Cache,4MB L2 Cache,16MB L3 Cache。要知道的是,這么多的 Cache 即使是對于 Intel Core i7 也是很奢侈的。而如果假設(shè) 810 和 A8 配備了一樣的Cache,810 的 Cache per Core 數(shù)據(jù)就很難看了。要知道,CPU Cache 的速度遠高于 RAM 的速度,所以小 Cache 帶來的情況就是 外圍 I/O 經(jīng)常處于等待狀態(tài),延遲了 CPU 計算能力的發(fā)揮。打個比方,你拿跑車引擎配個 4 速變速箱,引擎的能力就無法發(fā)揮了。Cache 方面,A8 表現(xiàn)優(yōu)于 810。

3、GPU 方面。

A8 配備的 PowerVR Series 6XT GX6450 運算能力是 136.4 Gflops(533MHz)/153.6 GFlops(600MHz),稍微優(yōu)于 801 配備的 Adreno 330 ,Adreno 430 則是 324~388.8 GHz(600MHz)【水冷……】。畢竟當時高通設(shè)計 810 的時候就是用來拖 4k 的,圖形性能 Adreno 430 數(shù)據(jù)上遠優(yōu)于 GX6450,但是 GX6450 帶 1334*750 相當于 801 帶 720p,帶 1920*1080 分辨率性能也足夠充裕。

4、晶體管數(shù)量。

喪心病狂的 A8 堆了 20 億個晶體管(包括 Cache,GPU,dsp),已經(jīng)趕上 810 所有 8 個核的總晶體管數(shù)量了。帶來了 A8 極其兇殘的單核性能。810 單核性能弱于 A8。

五、系統(tǒng)與運行機制層面

(一)內(nèi)核

1、又要開始拿 Linux 和 Unix 說事了,但很不幸的是,流暢這件事跟系統(tǒng)內(nèi)核一點關(guān)系都沒有。

2、說個老梗:

● iOS 基于 Unix 所以是 Touch(響應觸摸操作)——Media——Service——Core 架構(gòu)

● Android 基于 Linux 所以是 Application——Framework——Library(包含了響應觸摸操作的顯示相關(guān))——Kernal 架構(gòu)

● 所以 iOS 要比 Android 響應的快,所以 iOS 更流暢 云云

● 然而這個東西是 2.x 時代的,Google 早就改掉了……我也不知道這種 Unix 內(nèi)核性能優(yōu)于 Linux 的論調(diào)為什么時不時還會冒出來……反正兩者都不是實時操作系統(tǒng)(RTOS)。

(二)運行時(Runtime)

1、 Android 基于 Java 虛擬機,前段時間還因為這個 Google 和甲骨文吵上了法庭。算了回歸正題,我們主要要說的運行時有 Dalvik 和 ART(Android Runtime)兩種,Dalvik 是 Android 于 Android 4.4 之前所使用的默認 Runtime,ART 則是 Android Runtime,是在 4.4 時引入的一種新的運行時,在 L 及以上版本取代 Dalvik 成為默認運行時,在 GC 機制、JNI 和 Stack size 上都與 dalvik 有著很大的不同。Dalvik 屬于 JIT(Jusi-in-time)編譯器,ART 屬于 AOT(Ahead-of-time)編譯器。反正說了這么多你們只需要知道 ART 可以直接調(diào)用底層效率更高就對了。

● 其實是我 《編譯原理》 還沒啃熟你們不要打我嚶嚶嚶,有興趣的自己去看這兩個鏈接

● http://tinyurl.com/maz6uaq

● http://tinyurl.com/nepu7vk[!--empirenews.page--]

2、iOS 不開源,但是可以知道的是它的 Object-C 編譯器屬于 GCC 編譯套裝的一部分(感謝 @InflationAaron 指出:后期應該是轉(zhuǎn)向了蘋果主導的 LLVM 編譯器)。

(三)渲染流水線

1、 Android 3.0 引入了應用端繪圖的 GPU 加速(Hardware Canvas),Android 4.1 引入了黃油計劃(Project Butter),到 4.1 可以說 Android 的渲染機制已經(jīng)足夠優(yōu)秀,只要按 Design Guideline 寫是輕松讓過渡動畫達到 60fps 的。黃油計劃包括了:

● 窗口三重緩沖機制(降低連續(xù)丟幀可能性)

● 垂直同步機制(減小應用端開始繪制到實際屏幕更新的延遲)

● GL 窗口緩存繪圖命令的異步執(zhí)行(減少應用主線程的阻塞)

但很明顯 Google 還不滿足,于是在 Android L 引入了獨立的 GPU 線程,并允許主線程和 GPU 線程并發(fā)。也就是說GPU線程在繪制第 N 幀的 Display List 時,主線程已經(jīng)可以同時生成第 N 1 幀的 Display List,并且允許 GPU 調(diào)用不同參數(shù)繪制同一個 Display List,簡單的說就是提高了繪制過渡動畫的效率。

這里說一個 Google 的黑科技,Project Sky - Dart on Android,完全脫離 Java 的一套東西,他們的目標是把渲染時間壓縮到 8ms 以內(nèi),也就是等效 120fps。但他們現(xiàn)在做出的 Demo 里每幀平均渲染時間是 1.2ms/f,也就是等效驚人的 833fps……

2、iOS 不開源……(又來了)但是,我們?nèi)匀豢梢酝茰y他的渲染流水線和 WebKit 類似,因為 WebKit 存在大量 Apple 的參與代碼。

3、總而言之,你們只需要知道 Android 和 iOS 是 different but not better than each other 就行了。只是在實現(xiàn)路線上有所不同,但實際上到最后都異曲同工。Google 的 Project Sky 性能驚人,實際應用有待觀查。

六、應用,ROM(Android)以及其它

(一)This might be the most tedious part.

(二)應用,講到這里就不想講了,算了,還是講一下吧:

1、BAT

● Baidu,alibaba,tencent,號稱 Android 流暢度三大殺手

● 這些大公司用戶太多太多了,導致他們必須兼容低版本的 Android,無法利用新的 API,導致卡頓:

(1)QQ,節(jié)奏大師,Android 2.2,API level 8

(2)QQ瀏覽器,UC瀏覽器,Android 2.3,API level 9

(3)閑魚,支付寶,淘寶,百度,Android 4.0,API level 14

(4)微信,Android 4.0.3,API level 15

● 發(fā)現(xiàn)什么問題了沒有?引入黃油計劃的 Android 版本是 4.1,所以 60fps……

● 然后 QQ 和節(jié)奏大師你們這還抱著凍酸奶的態(tài)度令我感動……以及瀏覽器們都和姜餅曖昧不清……唉,連GPU加速都……

● 然后如果打開開發(fā)者選項里面的 show GPU overdraw(雖然不一定是 GPU 繪制的),你們就會發(fā)現(xiàn)各種嚴重的 overdraw,尤其是阿里巴巴系列的應用,整個頁面濫用 Webview,導致了嚴重的重復繪制。

● BAT 經(jīng)常大量使用自制控件進一步加劇了對資源的使用。

● 假如有第三方客戶端的話,其實往往有非常優(yōu)秀的遵守 Design Guideline 的應用,比如新浪微博的第三方客戶端們,四次元,F(xiàn)uubo,Smooth等等。

2、GCM,與那些推送的事情

● GCM 就是 Google Cloud Messaging,是 Google 自家的推送服務,也是絕大多數(shù) Android 應用的推送服務。使用這個服務,利用的是 Google 服務器統(tǒng)一推送,可以帶來及時,省電,后臺不喚醒的推送體驗。

● APNs 就是 Apple Push Notification Service,Apple 的推送服務,與 GCM 類似,可以帶來良好的體驗,且是 iOS 上唯一的推送機制。

● 然而由于某堵墻的存在,國內(nèi)并沒有辦法體驗到 GCM 推送帶來的推送體驗。所以部分手機廠商就開始做自己的推送機制,比如小米做的對齊喚醒和 MiPush,但是只對 MIUI 及兼容的部分應用有用。

● 剩下的就是其它諸多推送了,BAT 自家的推送機制,極光,蝴蝶云,智游,個推等等。假如很不幸的,你的手機上安裝了 BAT 全套,又安裝了帶各種不同推送提供商的應用,那就等著感人的耗電,內(nèi)存占用與無數(shù)的后臺喚醒吧……

3、優(yōu)化

● 很不幸的是,到現(xiàn)在,兩個平臺都仍然有大量的應用跑在單核單線程上,對雙核,多核以及 64 位的利用非常之低,甚至沒有。這個時候 A8 較高的單核性能能帶來更好的體驗。但如果應用對多核做好了適配的話,在 Android 上流暢性是可以花樣吊打 iOS 的。

4、流媒體視頻

● Android 在這方面流暢度要好于 iOS

(1)Android 支持傳統(tǒng)流媒體格式,可以用已經(jīng)成熟的 CDN

(2)iOS 需要使用TS流,需要額外準備 CDN 線路,部分線路支持還不佳

(3)Android 4.0 后使用 HLS 協(xié)議并且實現(xiàn) P2P

(三)ROM

1、iOS 并不存在這個問題,不講。

2、Android 存在的問題是,有太多廠商太多版本的 ROM 了,每個廠商都對底層做些修改。所以簡而言之就是鬧心,負分優(yōu)化大家見得多了我就不說了。

PS:知道為什么國內(nèi)定制越深度的 ROM 適配 Android L 越慢嗎?就是因為底層的東西改得太多 5.0 把運行時改了工程量很大難以在保證功能健全的情況下快速適配。

3、驅(qū)動(不是很懂,希望補充)

七、最后我們來說說設(shè)計

1、 iOS 的人機交互設(shè)計還是很值得稱道的,畢竟是帶領(lǐng)我們進入了 Multi Touch 時代,從 iOS 6 的擬物到 iOS 7/8/9 的扁平 高斯模糊毛玻璃為代表的設(shè)計路線,都可以說是一套非常值得令人尊重的設(shè)計方案。它是比較早把流暢的動畫引入設(shè)計語言的一個方案,也在長期的驗證中逐漸發(fā)展成熟。

2、以 Holo Theme 為代表的 Android Design,進化出了 Material Design,對整個 UI 的把控能力達到了一個非常高的水準。陰影,漣漪波紋,Z 軸等等,都顯示出 Google 對細節(jié)一絲不茍的把控,且這套 UI 比較好的解決了桌面,網(wǎng)頁,移動端的交互統(tǒng)一性。

八、總結(jié)

1、總之,對比下來我們會發(fā)現(xiàn),兩種生態(tài)在健康的情況下其實軟硬技術(shù)實力都是處在同一水平線上的,互有長短。硬件 Apple 并沒有弱于 Android,更談不上軟件的神優(yōu)化。但是,如果 Android 沒有 Google Services,就相當于失去了 Android 的靈魂,失去了 Google Play 的優(yōu)秀資源,失去了 GCM 推送帶來的流暢省電,失去了 Google Cloud 在內(nèi)的很多很多核心競爭力。不卡或會卡,本質(zhì)不是系統(tǒng)的問題,而是什么樣的環(huán)境,用戶著什么樣的程序。[!--empirenews.page--]

2、iPhone 就好像是一輛 F1 方程式賽車,里里外外都精心設(shè)計過??雌饋碇挥?1.6L 的排量,但實際上卻是一顆上千馬力的心臟,但這也決定了他只能在專門設(shè)計的方程式賽道上跑,而且跑的很歡。一旦脫離賽道(越獄),就各種不安全。

3、 Android 則好像是各種其它跑車,硬件的定制化程度極高,既有入門級的現(xiàn)代 Coupe,尚酷 R,也有比肩 F1 的布加迪威航,法拉利,蘭博基尼,更有小眾的科林賽格,優(yōu)雅的瑪莎拉蒂等等……如果再適合他們的路況上跑,就算是入門級,輕松破 200km/h 也不是什么難事,即使無法比肩 F1,也足夠體驗駕駛樂趣,旗艦則可以和 F1 全面硬抗,彎道,直道,加速,都能爭個高下,甚至還可以玩一些 F1 做不到的事情,比如彈射起步,漂移等等。

4、安卓則是……則是幾個改裝廠把這些跑車們自行改裝,有的廠商改的好,有的改成渣,拉到了坑洼不平的土路上,還時不時來點路障,這就算起步跑得溜,但久了對整車肯定不好。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉