當手機廠商說在 Android 底層做優化的時候,它們到底在做什麼?

很多手機廠商都喜歡說「優化」一詞,當然還有給硬體做優化,請問這些「優化」工作的具體內容是指什麼?


不邀自來~

優化可以翻譯成改善,完善,做到更好…

那怎麼優化,優化了啥,自然如現在排名第一的答主說的,肯定是包羅萬象的。

下面我們系統地回答一下這個問題。

一、為什麼要優化(改善)?

自然是提高用戶體驗,白話一點就是用起來爽啊!不爽談什麼體驗。

而人用手機有很多交互途徑,視覺、聽覺、觸覺、還有綜合感知(比如反應慢)…

那體驗的例子有:

1 TMD 怎麼又崩潰了

2 Shit 燙死了

3 XX 信號這麼差

4 卡出 翔 啊

5 這像素真 渣,而且效果偏紅啊

6 公共wifi能用嗎?支付寶密碼泄露咋辦

7 破果果,怎麼老是電池爆炸

8 這破手機,土掉渣呀

9 這貨性價比不錯啊

10 這客服聲音好甜

優化的目的是讓產品用起來更爽,主體是人,產品只是載體,施工方是手機製造環節的所有人員,採購、品質、研發、結構、產線、測試、客服甚至Marketing(忽悠也很惱火的)…

二、哪些東東需要優化(改善)?

能讓人用得爽的都需要,咱們可以結合上述例子做個概括,如果不概括,用戶容易被忽悠,研發容易找不著北,媒體每天就只知道扯淡…

咱可以這麼分類:

1 功能 (各種用戶基本需求,各類軟體服務)

2 效果 (外形,色彩,交互等)

3 可用性/穩定性 (死機,重啟,崩潰)

4 性能(流暢性/響應速度/完成時間)

5 續航 (也算一種可用性,沒電就用不了)

6 安全(Security Safety)

7 溫控(發燙,發熱,溫熱,涼快)

8 成本 (性價比,元器件品質和壽命,企業資金實力)

三、那底層可以做哪些(改善)?

啥是底層?咱們要看 Android 系統的架構,這裡應該配圖,懶得找了,直接來個文字架構圖:

APP

Framework

HAL

Kernel/Driver/Bootloader(BSP)

HW

APP之下,用戶看不到的摸不著的都可以叫底層,更底層的則為 HAL 以及之下,這個之上可以叫 ROM,一般做 ROM 都是重用 HAL 之下的東西。

上節列舉的一些點,有的是純粹上層可以做到的,但是蠻多部分是涉及到所有層面的配合與協調的。不過不同層面的影響範圍和深度有差異。

通常的分工是,Driver 負責封裝硬體的功能並提供介面給 HAL 或者 Framework,Framework 提供 Service與API 給應用,而 Kernel 則提供任務調度,文件系統等最核心的操作系統組件。而 APP 是用戶直接與手機交互的介面。

APP 通常只會影響本身的功能和體驗,比如說功能不能用,啟動慢,內存佔用高,導致系統卡頓,導致 CPU 佔用率高,導致功耗過高…應用崩潰蠻多時候重新載入應用本身即可,對於可用性(持續可用的時間)的影響相對較小,而且再大不了換個應用。

那 Framework 可以做什麼,可以在啟動,轉屏的時候主動請求更多處理器資源,讓交互更流暢,可以在滅屏的時候限制後台的任務數,或者在沒有用戶交互的情況下,把所有任務凍結,硬體關閉,然後休眠。可以限制每個任務的資源使用上限,確保其他任務可用,也可以動態檢測手機外殼溫度然後動態調節頻率,如此等等。Framework 崩潰一般會重啟 Android,比整機崩潰好多了,但是比 APP 崩潰就煩死了。

而再到 BSP 部分,則提供了各種同步,wakelock,調度,文件系統,時鐘服務,多核管理,DVFS,PM QOS,CGroup等底層資源管理與軟體機制保障,如果這部分出問題,通常可能會造成整機死機或者重啟,這個恢復時間長,甚至要用戶手動恢復,造成的比較長時間不可用,體驗性非常糟糕。同樣地,其他的問題還會影響發熱、續航、溫控等,比如說待機功耗就完全是在 BSP 配置,一般 BSP 出現問題,影響的會是整機。

所以,事關穩定性、性能、功耗、溫控甚至安全的最核心的改善都是優先從離硬體最接近的 BSP 做起,而 BSP 的優化又會發現硬體設計、結構設計或者是 APP 的缺陷。

具體的優化工作涵蓋手機日常交互的方方面面,但是都脫離不了上面幾個大項,每個大項可以細化到更具體的硬體資源或者交互場景。至於細節,這裡估計沒有那麼多篇幅涵蓋了。http://tinylab.org 有不少原創文章和幻燈專門討論這些。

BSP 之上的優化之後就是 Framework,再是 APP。

當然,再底層就是硬體,比如信號,比如散熱設計,比如電路設計,這些一旦有問題,更是牽一髮而動全身。通常,這裡頭的問題需要 BSP,Framework,APP 等優化或者測試來發現並協同解決,如果硬體改版不了,只能改 BSP 來 workround 了,再不行就只能重做了。

以死機這類可用性問題(RAS)為例,優化的目的就是提高可用性,白話一點,就是提高持續可正常使用的時間。

比如說,

1 把死機變為重啟,用戶不用手動按了,可以恢復服務,中斷的時間變短了,否則拔電池,返廠…那體驗就爛透,專業一點就是 fail-stop 2 fail-restart,比如說 panic timeout…

2 重啟了就得想辦法不重啟,那就跟破案一樣要設法保護現場,設法找證據,那如何保護現場,如何防止破壞證據?比如說 /proc/last_kmsg 或者 ramoops + pstore…

3 各種測試復現問題,各種量測信號,各種案情分析,各種定位,找出原因解決問題,比如說 fiq debugger, jtag debugger, git bisect…

4 如果某類問題老出來,那社會學家就得研究如何提前避免,提前應對,或者提前發現或者提前公權力介入,以避免逐個應對,疲於奔命,所以要強化各個環節,提前研討應對問題的策略,提前問題的發現,例如:錯誤注入,自動化測試和壓力測試,靜態代碼檢查,器件導入監管…

5 還要有研究報告(比如 FAQ 總結),人員培訓(Internal training)…

好吧,整個要做好,那是一套套的方案…各個階段,各個環節,各類人員都涉及…咱們這裡點到為止。

四、行業現狀咋樣?

從目前市場的產品來看,蠻大的一部分廠商只是停留在硬體功能的堆砌上。沒有再多的資源再深一步。有的也有在功能方面在做更多的探索,比如音頻、視頻、生活等各類人性化或者提高生活品質的服務。

再有一些企業有投入資源做 UI 設計,硬體外觀和 ROM 的主題以及各種交互優化。

還有一些在艱難地做基本的穩定性優化,降低系統的死機、崩潰或者重啟概率,而有的廠家,很多產品因為這些問題都難產了。有的停留在疲於奔命地解決各種死機重啟Bug,極少數在應用諸如 RAS 這樣的系統化解決方案。

與此同時,基本場景的功耗也是有一定市場的手機廠商的必修課,一般都是每個場景0.幾個 mA 的去扣,各種 GPIO,Clock,PowerDomain,Regulator 配置,各種手段,很多異常的系統服務和應用負載通常也在這個環節發現。很多山寨廠商應該是沒有資源做得這麼細緻的。更多的資源管理機制和演算法這個時候也會涉及,而 Framework 部分也有些極少數廠商已經在 Android M 的Doze 和 App standby 即將出來前很有作為地跳出來做了自啟動和後台任務管理,以便阻止垃圾應用的泛濫。

在保障基本功能、基本外觀與基本可用性和基本續航之後,有些廠家開始有精力去優化性能,優化的對象其實主要是內置的服務與應用,以及相應的公共交互事件和過度動畫。比如說應用啟動速度,休眠歡迎速度,過度繪製,FPS 改善…

與此同時,溫控工作在更少數的廠家那裡得到重視,包括結構散熱與更精確的溫控演算法得到系統化地研究。

安全是另外一個課題,包括查找手機,指紋等技術的應用在一定程度在強化 Security,而 Safety 部分目前來看這部分蠻多取決於供應商和底層硬體設計,當然溫控也是一個方面,CPU 過熱燒壞器件或者充電電流過高可能導致電池異常也是要關注的問題。如此等等…

不同層次的廠商做的深度差異很大,要在各方面都能均衡發展的話,確實需要多年的經驗積累,也需要企業和員工有追求極致和完美的精神,有服務好用戶,讓用戶爽的態度,這樣才可能有專門的投入,才可能有技術積累,才可能逐步形成配套的系統化解決方案…這些蠻多可以從各個廠家的手機研發周期與產品品質深刻體會得到…但是優化是個長期的過程,沒有最好,只有更好……

五、如何做到更好?

要做到更好,可能需要敞開胸襟,開放思想,除了加強用戶與企業之間的交流(所謂參與感)之外,加強企業之間的交流與合作,創建相應的技術沙龍或者平台可能也很重要,可以一起制定一些標準,比如統一國內的消息 push 機制,比如一起協作開發一套標準的開源自動化測試套件,一起贊助高校做一些研究課題,比如快充,比如大容量電池技術…

答主從大學時代開始涉入開源社區,對開放與協作的精神感受很深,也持續利用業餘時間發起或者參加了一些開源項目,並於不久前搭建了一個技術分享與交流平台:http://tinylab.org,歡迎一線工程師參與進來。

這個交流平台(http://tinylab.org)致力於打造更極致的嵌入式 Android/Linux 產品… 從穩定性、性能、續航、實時性、裁剪、虛擬化…我們都持續關注…

更多具體的技術文章和系列化討論會逐步展開,比如說 Linux 產品 RAS 保障,Android 手機續航優化,Android 溫控優化技術(比如 ARM 近期提出的 IPA 技術),Android 手機性能優化大觀…

其實已經有不少文章,也已經有十多位來自手機一線的同學逐步加入,歡迎更多同學參與,可先關注微博和微信(泰曉科技),或者關注我個人微信 lzufalcon(請註明知乎並簡要說明緣由),然後邀請大家加入不同的技術討論微信群。


說優化這倆字最多的不是廠商,是啥都不懂的所謂評測師們...

軟體打開速度慢→優化差

待機短→優化差

發熱大→優化差

玩遊戲幀數低→優化差

軟體切換卡頓→優化差

拍照對焦速度慢→優化差

拍照噪點多→優化差

xxxx→優化差

優化是個筐,啥都往裡裝

現在很多人在做評測,但是這些人中很少有人能夠說明白出現這些問題到底問題出在哪兒,以上舉的這些例子很大可能問題是出現在硬體上的,比方說系統卡頓很有可能是內存帶寬不夠,這屬於硬體問題,從設計之初就存在的,後期除非更換硬體否則再怎麼優化也沒辦法解決。

國內做評測的人數猛漲不是沒有原因的,做這個確實很賺錢,啥都不會都能做,廠商有新機要發布就得請媒體做宣傳,就得請他們,然後他們拿著評測機吐個槽,過段時間寫篇黑文再找廠商要公關費刪帖,這就是現狀,這些人的大量湧入導致國內評測水平直線下降,現在國內評測環境已經污濁不堪,大家都沒得玩就只能整天掐架了,整天說些玩爛了的老梗黑這個廠商黑那個廠商,比方說小米的發熱魅族的續航等等,哪怕廠商已經解決了這些問題他們還是拿這些毫無營養的話來黑廠商,偏偏還有粉絲吃這一套。再不然就是整天盜圖,從其他媒體那兒偷過來假裝是自己獲得的第一手新聞,並且信誓旦旦的告訴別人這是真的,之前已經好幾次有人被假新聞釣魚了。(見本回答末尾圖片)

當然這不包括做的比較好的評測機構,Zealer、FView、科技美學等等,他們還是投入了精力和資金在做這些事的,在這一點上無論他們做的成果如何,我還是覺得很佩服他們。

說回優化,優化這種事廠商一般比較少拿來說,一般能說詳細點比較好,比方說攝像頭優化到底優化了些啥,到底是對焦演算法優化還是白平衡優化了。發布會只用一句優化帶過去那根本填不滿一兩個小時,下了那麼大功夫改進一句話帶過工程師得哭死,所以一般廠商會把具體優化了些什麼東西說出來的。

等有空有閑心的時候考慮弄一個模版,只要拿到機器誰都可以寫一篇像模像樣的評測出來

┐(′д`)┌

---

解釋一下,這條微博中的圖是微博一位網友做的釣魚圖,然後顯而易見的,這位KOL上了鉤,當我告訴他這是錯的不要無腦轉發的時候,他信誓旦旦告訴我這是索尼官網的圖片,再然後,他不出意外的刪掉了這條微博。


今天的日誌寫點什麼好呢?

繼續功能優化……

繼續架構優化……

繼續底層優化……

……


個人非系統or軟體工程師,看到這個問題沒有任何答案對「優化」做註解,尤其是那個高票回答,說了一堆評測人的不是,卻半點有關優化的具體內容都沒有談,還順帶吹噓了一下自己知道某傳言是假的,自己看穿、某KOL卻沒有看穿的故事,知乎的氛圍當真是越來越好。

為示例,來談一個手機攝像頭對焦時的演算法優化簡例,雖然不是對系統優化做詳解,但多少可以讓題主了解「優化」是個什麼樣的概念。需要注意的是,以下圖片和文字內容主要改編自數碼多,原文鏈接附於本回答之後,若涉及侵權,請告知。

一般來說,絕大部分不可換鏡頭數碼相機、微單、手機的攝像頭都採用反差式對焦方案(至於為什麼要對焦,那你要去學習一下基本的光學知識)。通常大部分攝影師會告訴你,相位差對焦(單反採用的主流對焦方式)的對焦速度會明顯快於反差對焦。但隨著反差對焦技術的發展,實際上高速反差對焦已經成為可能,而其中重要的一環就是對演算法做「優化」。

要了解這種優化,首先要知道反差對焦的原理。這還是比較容易理解的,就是當手機攝像頭或成像設備的圖像感測器採集到一張影像以後,圖像處理器對所得的這張影像做分析,對用戶所選位置做對比度反差分析,如下圖所示。

這張圖是網上流傳甚廣用於講解反差對焦原理的圖片,對用戶所選畫面位置的不同像素做亮度和色彩值的比較,當發現反差達到最大時,即認為當前對焦成功。這個對焦方式成本比相位對焦更低(因為相位差對焦還涉及到採用專門的對焦感測器或對焦像素),也相對比較簡單。

長期以來反差對焦之所以速度不如相位差對焦,也的確受限於很多因素,像是這種對焦方式比較考驗圖像感測器本身的刷新率——比如說圖像感測器每秒刷新數百次,那麼圖像處理器每秒鐘就能夠接受到來自感測器的數百張所采影像,且做計算,這種情況下對焦效率自然能提升很多,只是市面上有此種水準的感測器實在還不多。

還有鏡頭本身的採樣幀率,因為對焦過程實際就是對焦鏡組(或鏡片)在鏡頭中移動的過程,那麼鏡組的移動效率,包含對焦馬達每秒能驅動對焦鏡組移動的頻率以及精確程度,也可以影像對焦效率。

上面所說的這些都屬於硬體範疇內需要去著手處理的問題,還有一個影響反差式對焦效率的因素就是對焦演算法。按照數碼多的示例,上面這個拍攝鴨子的對焦過程歷經8幀,最終完成合焦,反差對焦系統發現F5位置時合焦。但這個過程實際上是有優化餘地的,比如說在F1的時候,系統發現此時的反差很低,就直接跳過F2,來到F3,並在步進到F6、F7的時候發現反差再度降低了,也就可以省略F8,那麼整個對焦過程就省略了2幀,這樣對焦效率理論上提升了25%——這就是演算法表現出來的優勢了。這是比較典型的對焦「優化」的一個示例,當然這是個簡化後的模型,實際情況比這要複雜很多。

於是同樣的鏡頭、同樣的圖像感測器,在不同的廠商手裡可以表現出截然不同的成像素質,以及對焦表現,這裡面的差別主要就體現在了ISP的演算法上,如果優化得當,自然可以得到更好的成像表現,以及更出色的拍照體驗,提升對焦效率就是其中一個組成部分。

以上內容主要精簡了數碼多的文章《夏昆岡作品 - 快速反差對焦的秘密 [Soomal?數碼多]》,有興趣的同學可點擊查看更具體的內容。

----------

需要說明的是,這篇回答只是為了表達「優化」是什麼,以及可以做些什麼,所做的一個表述,以示例的方式談一談什麼是優化。和題主所問「Android底層優化」並不相關,我也沒有能力回答Android底層優化的問題,雖然對此稍有了解。這裡拋磚引玉,待高手對這一問題做解答。

最後想說一句,要寫一篇評測或文章,如果該文技術含量是半瓶水,那麼作者本人起碼要有一瓶水的本事。不是只有所謂的評測人在說優化,而是優化是確實存在的東西,也不要把評測人都想成一群頭腦簡單的人。


我把廠商分為三種

1優化了或添加功能了

比如cm,魔趣是把系統優化了

emui.miui添加實用功能了

2沒改過,直接用原生系統,在國內把谷歌一家子移除了,其他沒改

3負優化,沒事植入軟體,還刪不掉,逼人root,運存毀滅,耗電嚴重


比如我改了個安卓,支持兩個顯示屏,都帶觸摸屏,可顯示不一樣的內容。


比如電源管理,還有安卓的bug


強化舊bug同時引進新的bug。T_T


各種所謂的優化,基本可以概括為以下四種

一種是自以為聰明,去把谷歌標準的交互改成自己所謂的更人性化交互,比如安卓非要用實體鍵,比如非要把UI做成IOS式的純桌面,把應用抽屜取消。當然其中確實有些是不錯的優化,比如國內通常會在下拉信息欄里定製更多的快捷開關,但更多的其實都是畫蛇添足。

另一種則是各種為了自己的收入和用戶信息收集,進行了大量的工作以便夾帶各種私貨,這個就不用多說了。

還有一種則是自己覺得自己的審美水平很高,非要挑戰谷歌的美工設計,把好好的安卓打扮的花里胡哨,要多難看有多難看。

最後一種算是有些良心的,為了差異化,各自設計了一些在原生安卓上並沒有被支持的硬體,於是只好自行優化驅動和應用進行支持。


優化版本號過低的問題


解決舊BUG,產生新BUG,反覆循環


這個不得不誇一下我大神族了,自從老大第一部神族M8手機,沒有一代神族的機子能正兒八經正常使用的,不是發熱就是續航尿崩,要麼就是卡頓,要麼就是無故重啟,當然真旗艦魅藍note例外,它不僅秒了旗艦,還秒了下一代note2,真是碉堡了!而bugme的迭代更新,其結果就是修復你不知道的bug然後添加新的bug供你免費體驗,神族在其官方神壇美其名曰:系統優化。

ps:心疼排名第一第二的寨族攻城獅和逼格科技官方常駐知乎寫(水)手(軍),同時心疼神族營銷部和神壇官方人員,每次說那麼多假話,惡意僱傭水軍,惡意刪帖封殺論壇賬號,不怕雷劈么?


只是做一些應用層面上的本地優化,比如:自啟管理,許可權管理,垃圾掃描,被盜以後鎖機等。

你真的要做底層優化的時候,谷歌也在修改系統底層,比如:

從 Android 5.0 開始,Webview 將從系統中剝離,由 Google 直接負責更新。Webview 是 Android
應用展示網路內容時使用的渲染引擎。在 Play Store 中,大概有 70% 至 80% 的應用使用了
Webview,因此,它是系統中非常重要的部件。Webview 剝離之後,Google
想要修復安全漏洞的時候,直接推送補丁就行了,不用全面的系統更新。

Android 5.0:從系統升級看 Google 的未來策略

你的底層優化並不能和新的系統合併,不跟著谷歌的新系統走,只會引發各種 bug。

再說有那麼多聰明的谷歌工程師,在為你做底層優化,你何必自己動手。


把谷歌的東西換成自己的。。。我也是無語了,政府再不讓谷歌入華,我是不是該移民……


color os的優化是閹割


閹割~


有廠家優化了系統,好用了,銷量高了

其他廠家一看,優化這個詞不是專利

結果就是所有廠家都號稱優化了

其實原版不錯,

有實力的公司優化了適合自身手機的特點

沒實力的公司改兩個不重要參數

大部分不要臉的都是加入吸金軟體或者自己公司開發的垃圾軟體


穩定流暢易用性美觀性。沒了。當然,他們做沒做就兩說了。


優化的意思就是讓你的舊手機跑不動新程序,以達到讓你買新手機的目的。


主要是改bug,不出bug就萬事大吉了


推薦閱讀:

在相應平台上遵守 iOS 或 Android 設計規範對用戶來說很重要嗎?
如何看待 Android 綠色應用公約?
未來還能買到4.7寸以下配置中上的智能手機嗎?
暑期換機,在HTC U11和索尼Xperia XZ Premium之間如何選擇?

TAG:手機 | Android開發 | 硬體 | Android | 手機廠商 |