让最新的 Android Q Beta 3 强制重启的 Project Mainline,到底是什么?
一. 序
最新的 Android 版本 Q,已經(jīng)發(fā)布了 Android Q Beta 3,雖然沒有正式發(fā)布,但是不少用戶已經(jīng)加入了測(cè)試計(jì)劃,搶先體驗(yàn) Android Q 的新功能。
近期不少體驗(yàn)用戶反饋,自己的設(shè)備升級(jí)到 Beta 3 之后,會(huì)出現(xiàn)觸不及防的強(qiáng)制重啟。谷歌方面已經(jīng)確認(rèn),是運(yùn)行了 Project Mainline 這個(gè)在 Android Q 中新加入的功能導(dǎo)致。谷歌在確認(rèn)的同時(shí)也表示,這些問題會(huì)在之后的測(cè)試版本中修復(fù),不會(huì)出現(xiàn)在正式版中。
那什么是 Project Mainline(后文簡(jiǎn)稱 P-M) 呢?它是干什么的?又解決了什么問題?
二. Project Mainline
2.1 P-M 解決什么問題?
Android 能有今天的發(fā)展,得益于它系統(tǒng)源碼的開源,又正是因?yàn)樗拈_源,導(dǎo)致碎片化嚴(yán)重。以至于在谷歌高速迭代 Android 系統(tǒng)版本的過程中,不少用戶在吐槽,Q 來了,O 還沒用上呢。
而碎片化又會(huì)導(dǎo)致各種問題,例如安全,隱私等問題。往往在系統(tǒng)中暴露出來一個(gè)問題,Android 團(tuán)隊(duì)修復(fù)它,還需要等待漫長(zhǎng)的時(shí)間,才能最終由廠商同步到用戶端。
中間環(huán)節(jié)太多,必然導(dǎo)致更新的緩慢,往往一個(gè)安全更新要經(jīng)過半年甚至一年才能最終被廠商升級(jí)到用戶端,同時(shí)這些步驟中,還有一些是有時(shí)間重疊的。
上圖表示了谷歌和芯片制造商以及手機(jī)廠商之間的更新時(shí)間,這各個(gè)階段之間的任何重疊,都可能導(dǎo)致更新的失效。這就導(dǎo)致對(duì)于手機(jī)廠商而言,使用較舊的但是更穩(wěn)定的 Android 版本,是更安全的做法。
為了解決這些問題,從 Android P 開始加入的 Project Treble 計(jì)劃,它就是現(xiàn)在 Android Q 中 Project Mainline 的基礎(chǔ)。通過 P-M 的支持,簡(jiǎn)化并加快了 Android 生態(tài)系統(tǒng)的升級(jí)更新。
上圖為 Project Treble 的計(jì)劃理想更新時(shí)間,在 Android Q 中,谷歌發(fā)現(xiàn)與系統(tǒng)級(jí)的更新相比,以“模塊”為粒度的更新,是一種更有效的方式,這就引入了 Project Mainline 計(jì)劃。
P-M 可以通過 Google Play,使用一種類似更新應(yīng)用程序的方式,更新系統(tǒng)的核心組件。這類更新可以無需等待手機(jī)制造廠商的 OTA 更新,直接觸達(dá)用戶,同時(shí)這些 Mainline 組件,在保證開源的同事,也不允許廠商直接修改,只能由 Google 來更新升級(jí)。初期提供的 Mainlin 組件,涉及到安全、隱私、一致性三個(gè)方面。
到現(xiàn)在應(yīng)該都知道 Project Mainline 的作用了吧?
簡(jiǎn)單來說,Android 的碎片化導(dǎo)致更新困難,而一些重要的功能又迫切的需要及時(shí)更新到用戶側(cè),例如安全類、隱私類等,谷歌開啟了 Project Mainline 計(jì)劃。Project Mainline 計(jì)劃將系統(tǒng)中,重要的“模塊”封裝成一個(gè)個(gè) Mainline 組件,通過 Google Play 的支持,使用一種類似更新應(yīng)用的方式,在需要的時(shí)候,直接更新到用戶端,以此來解決碎片化所帶來的各種問題。
Proejct Mainline 讓你手里的設(shè)備更安全并且兼容性更強(qiáng)了。
2.2 P-M 更新了那些東西?
初期 Project Mainline 支持的模塊,主要涉及到安全、隱私和一致性三個(gè)方向。但是這種更新方式是通用的,后期不排除可能會(huì)攜帶一些常規(guī)更新。
Project Mainline 包含的更新方向:
- 安全性:可以對(duì)關(guān)鍵的安全漏洞,提供更快的安全修復(fù)程序。例如媒體組件漏洞(占最近修補(bǔ)漏洞的近 40%)。
- 隱私:隱私一直是 Android 關(guān)心的焦點(diǎn),并且在版本更新中,一直投入大量的精力來更好的保護(hù)用戶數(shù)據(jù)并提高隱私標(biāo)準(zhǔn)。最主要的表現(xiàn)是對(duì)權(quán)限系統(tǒng)進(jìn)行更新升級(jí),更好的保護(hù)用戶數(shù)據(jù)。
- 一致性:一致性主要影響設(shè)備穩(wěn)定性、兼容性和開發(fā)人員使用 API 的一致性問題。
在 Android Q 中上,初始支持的組件包含:
- 安全性:媒體編解碼器、媒體框架組件、DNS 解析器、Conscrypt。
- 隱私:文檔 UI、權(quán)限控制器、ExtServices。
- 一致性:時(shí)區(qū)數(shù)據(jù)、ANGLE、模塊元數(shù)據(jù)、網(wǎng)絡(luò)組件、登錄組件、網(wǎng)絡(luò)權(quán)限配置。
分模塊的好處就可以做到“手疼醫(yī)手,腳疼醫(yī)腳,哪里不對(duì)點(diǎn)哪里了”,讓每次更新更輕量級(jí)。
2.3 P-M 是如何運(yùn)作的?
前面提到 P-M 主要是通過 Google Play,以一種類似更新應(yīng)用的方式去更新這些 Mainline 組件,那它到底是如何運(yùn)作的?
Mainline 組件最終以 APK 或者 APEX 文件的形式交付。APK 我們很熟悉,而 APEX 是谷歌開發(fā)的一種新的文件格式,類似于 APK。但是其根本區(qū)別在與,APEX 在系統(tǒng)啟動(dòng)過程中,加載的更早。
因此,以前需要成為完整操作系統(tǒng)更新一部分的重要安全性和性能的更新,現(xiàn)在可以像更新應(yīng)用一樣輕松的下載和安裝。
為了確保 Mainline 更細(xì)不會(huì)破壞原有的功能,還為此增加了保護(hù)機(jī)制和增加的測(cè)試流程,以確保每次更新都是經(jīng)過全面測(cè)試以及完善的后備方案。
三. 小結(jié)時(shí)刻
Project Mainline 的本意是為了讓更新更快觸達(dá)用戶,以提高安全性、隱私和一致性等問題。雖然現(xiàn)在 Android Q Beta 3 中可能會(huì)導(dǎo)致強(qiáng)制重啟,但是問題已經(jīng)暴露出來,后續(xù)解決它就很簡(jiǎn)單了。
可能 P-M 的工程師覺得有更新,立即重啟一下就可以生效了,就給用戶強(qiáng)制重啟了,當(dāng)然這也可能單純的就是一個(gè) Bug。理論上如果不是很重要的組件更新,可能和重啟應(yīng)用一樣簡(jiǎn)單,就不需要對(duì)系統(tǒng)進(jìn)行重啟,但是一些重要的組件更新,可能就需要重啟系統(tǒng)來確保它生效。
不過話說回來,再嚴(yán)重的問題,都已經(jīng)運(yùn)行在用戶端設(shè)備上這么久了,也不差這一天兩天的。參考 iOS 系統(tǒng)更新的策略就挺好的,立即更新或者在半夜空閑時(shí)更新。
這種單模塊的更新,可能會(huì)讓開發(fā)人員和測(cè)試人員更迷惑,以前兼容性的問題,只需要問清楚手機(jī)型號(hào)和系統(tǒng)版本,就可以針對(duì)性的做適配。現(xiàn)在好了,還需要弄清楚對(duì)應(yīng)的 Mainline 模塊的版本號(hào),也許有些問題已經(jīng)被谷歌偷偷的修復(fù)了,但是在用戶側(cè)還沒有及時(shí)更新。這時(shí)開發(fā)人員還是蠻尷尬的,你說我改還是不改?
你覺得呢?歡迎在留言區(qū)討論!
本文對(duì)你有幫助嗎?留言、轉(zhuǎn)發(fā)、收藏是最大的支持,謝謝!
references:
- APEX 格式
- project mainline
- project treble
公眾號(hào)后臺(tái)回復(fù)成長(zhǎng)『成長(zhǎng)』,將會(huì)得到我準(zhǔn)備的學(xué)習(xí)資料,也能回復(fù)『加群』,一起學(xué)習(xí)進(jìn)步;你還能回復(fù)『提問』,向我發(fā)起提問。
轉(zhuǎn)載于:https://www.cnblogs.com/plokmju/p/android_project_mainline.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的让最新的 Android Q Beta 3 强制重启的 Project Mainline,到底是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一百万如何理财收益最大 收益比一般上
- 下一篇: Vue+axios(intercepto