[討論] Android O: Project Treble
打從4.0 ICS起谷歌養成了會挑特定領域組團打怪改進Android的習慣。
今天新鮮公佈是Android O的計劃是Project Treble。
“treble: a threefold quantity or thing, in particular.”
這回終於輪到針對安卓的更新瘟疫做出的小改善。 此計劃目的是將Android OS模組化, 區分開谷歌主導的Android OS架構代碼與”由特定晶片供應商撰寫的“硬體代碼。 這麼做理論上可達成'當晶片供應商沒有參與的情況下', 單靠OEMs本身就能著手準備為手機提供Android更新。
http://i.imgur.com/jaso5br.png
新版本安卓由谷歌釋出後還要經過三關才有機會送達你我手中, 分別為:
1. 晶片供應商(高通Snapdragon, 三星Exynos, 聯發科Helio)基於自家生產硬體針對新版Android的改變做出對應修改, 確保各關鍵組件如驅動和電源管理機制在新版本能夠正常運作。
2. OEMs (Samsung, LG, HTC) 投入確保自家手機使用的所有硬件都正常運作, 為自家皮膚改版, 準備系統內建應用程式, 對Android OS上層做出修改並添加各種OEMs喜愛的花俏功能。
3. 營運商測試及批准更新,加入更多沒人愛的apps。 這一項美國是重災區, 其他地區營運商沒那麼大討價能力,也沒這麼做得這麼極致的習慣。
可見Project Treble非萬用救命仙丹, 它嘗試解決的是上圖中第一二步驟之間的阻礙。
The Vendor Interface (供應商界面)
http://i.imgur.com/zwv7zZd.png
一開始Android的目標就是要在各式各樣各家的硬體上都能運行, 因此谷歌曉得維持API行為一貫的重要性。 一直以來都藉著兼容定義文件(Compatibility Definition Document) 搭配兼容性測試套件(Compatibility Test Suite )來確保Android裝置的一致性。 只有這樣應用程式開發者才能開發出一個在各式Android裝置上都能運作的應用程式。
Project Treble主要概念是將大多由晶片供應商負責的底層部分剝離中上層Android OS架構。 為此Android O新增了的供應商界面, 可視它為Android OS架構與晶片供應商硬體間的穩定橋樑。 谷歌也就此設計了類似CTS的供應商測試套件(Vendor Test Suite), 來驗證晶片供應商所寫的界面, 同時確保該供應商界面的向後兼容性。
Project Treble的益處
由於安卓一路走來都沒有形式上的供應商界面, 每回有新Android系統要更新時需要先將散佈在各方的零散供應商提供的代碼一併更新才能達成目的。
http://i.imgur.com/xBIAMJW.png
有了穩定的供應商界面作為兩者之間的媒介, OEMs也有了選擇僅更新上層Android OS架構的能力。 這就能省去等待晶片供應商提供新版本BSP一環。
http://i.imgur.com/5dI2Wqh.png
Project Treble將會出現在Android O起的新Android版本, 實際上它現在已被應用在開發版Android O的手機上了。 此外,谷歌也和夥伴們合作將一些特定國家營運商使用的特定功能移入AOSP中,這樣OEMs便不再需要每更新一回都得重新自行移植一回一樣的功能。
https://goo.gl/DE6Ipn
-----
Project Treble在Google旗下手機的Android O DP1韌體已上線, 意味著高通已將Snapdragon 810, 820兩條維護線的供應商界面預備好了。 按常理說使用這些高通SoCs的手機, 只要OEMs有心便能更快就獲取Android O更新了。 至於其他晶片供應商的情況如三星Exynos就不曉得了,但要轉移去新界面若現在還沒開始整合應該會慢些, 好處是使用供應商界面以後會方便許多。
最後則是醒腦部分, 有了供應商界面以後是能免去高通無預警中斷Snapdragon 800線的Android 7支援的慘劇。 新安卓推出後至各廠手機獲得更新的時程會縮短, 但這不代表OEMs會提供像蘋果iOS那麼長的OS更新支援時間, 我這話包括了谷歌旗下的Pixels系列的2年系統更新。
三方ROMs方面將會大大受益, 要支援新版本安卓方面應會容易許多。 有了供應商界面後,各種硬件也不會亂壞東壞西的, 廠商不支援後的新版本Android也不需要自行再駭出一堆補丁勉強用了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.51.8.123
※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1494650595.A.90E.html
推
05/13 12:44, , 1F
05/13 12:44, 1F
推
05/13 12:50, , 2F
05/13 12:50, 2F
→
05/13 12:50, , 3F
05/13 12:50, 3F
推
05/13 12:51, , 4F
05/13 12:51, 4F
推
05/13 12:53, , 5F
05/13 12:53, 5F
→
05/13 12:58, , 6F
05/13 12:58, 6F
推
05/13 13:11, , 7F
05/13 13:11, 7F
→
05/13 13:12, , 8F
05/13 13:12, 8F
→
05/13 13:26, , 9F
05/13 13:26, 9F
→
05/13 13:26, , 10F
05/13 13:26, 10F
→
05/13 13:26, , 11F
05/13 13:26, 11F
推
05/13 13:34, , 12F
05/13 13:34, 12F
我怕是省下的 人力資源都被拿去cost down
推
05/13 13:41, , 13F
05/13 13:41, 13F
摸摸mog大 下面回你文
→
05/13 13:42, , 14F
05/13 13:42, 14F
※ 編輯: mainline (60.51.8.123), 05/13/2017 13:44:17
推
05/13 13:46, , 15F
05/13 13:46, 15F
只要還是以ARM架構為主 不可能啦
※ 編輯: mainline (60.51.8.123), 05/13/2017 13:54:26
推
05/13 15:08, , 16F
05/13 15:08, 16F
推
05/13 16:29, , 17F
05/13 16:29, 17F
※ 編輯: mainline (60.51.8.123), 05/13/2017 16:39:12
→
05/13 16:50, , 18F
05/13 16:50, 18F
→
05/13 16:50, , 19F
05/13 16:50, 19F
→
05/13 16:50, , 20F
05/13 16:50, 20F
→
05/13 16:50, , 21F
05/13 16:50, 21F
推
05/13 17:12, , 22F
05/13 17:12, 22F
推
05/13 17:14, , 23F
05/13 17:14, 23F
→
05/13 17:14, , 24F
05/13 17:14, 24F
→
05/13 17:14, , 25F
05/13 17:14, 25F
推
05/13 17:38, , 26F
05/13 17:38, 26F
推
05/13 23:06, , 27F
05/13 23:06, 27F
→
05/14 01:04, , 28F
05/14 01:04, 28F
→
05/14 01:04, , 29F
05/14 01:04, 29F
→
05/14 01:04, , 30F
05/14 01:04, 30F
推
05/14 01:30, , 31F
05/14 01:30, 31F
→
05/16 03:36, , 32F
05/16 03:36, 32F
→
05/16 03:36, , 33F
05/16 03:36, 33F
→
05/16 03:37, , 34F
05/16 03:37, 34F
→
05/16 03:37, , 35F
05/16 03:37, 35F
→
05/16 03:37, , 36F
05/16 03:37, 36F
→
05/16 03:37, , 37F
05/16 03:37, 37F
→
05/16 03:37, , 38F
05/16 03:37, 38F
→
05/16 03:38, , 39F
05/16 03:38, 39F
→
05/16 03:38, , 40F
05/16 03:38, 40F
→
05/16 07:53, , 41F
05/16 07:53, 41F
→
05/16 07:53, , 42F
05/16 07:53, 42F
→
05/16 07:53, , 43F
05/16 07:53, 43F
→
05/22 15:38, , 44F
05/22 15:38, 44F
→
05/22 15:38, , 45F
05/22 15:38, 45F
→
05/22 15:38, , 46F
05/22 15:38, 46F
→
05/22 15:38, , 47F
05/22 15:38, 47F
→
05/22 15:48, , 48F
05/22 15:48, 48F
→
05/22 15:48, , 49F
05/22 15:48, 49F
→
05/22 15:48, , 50F
05/22 15:48, 50F
→
05/22 15:48, , 51F
05/22 15:48, 51F
→
05/22 15:48, , 52F
05/22 15:48, 52F
→
05/22 15:48, , 53F
05/22 15:48, 53F
→
05/22 15:48, , 54F
05/22 15:48, 54F
→
05/22 15:49, , 55F
05/22 15:49, 55F
→
05/22 15:49, , 56F
05/22 15:49, 56F