這真是一個(gè)極好的消息。
12 月 19 號(hào)卸亮,Google 正式在安卓開發(fā)者博客官網(wǎng)宣稱忽妒,為提升應(yīng)用安全性和性能,確保每一個(gè)安卓設(shè)備用戶擁有良好用戶體驗(yàn),所有想要將應(yīng)用上線 Google Play 的安卓開發(fā)人員必須嚴(yán)格遵守這三條鐵律做出改變:
2018 下半年開始段直,Play 商店強(qiáng)制要求新發(fā)布和需要更新的 apps 修改 Target API 為最新版本吃溅。具體時(shí)間分別是,對(duì)于新上線的應(yīng)用為 2018 年 8 月鸯檬,對(duì)于更新已經(jīng)上線的應(yīng)用為 2018 年 11 月决侈。此舉是為了確保應(yīng)用使用的是在安全和性能方面有所優(yōu)化的最新 API 編譯的。
2019 年 8 月開始喧务,Play 商店要求新上線和更新的 apps 必須支持 64 位 CPU 架構(gòu)赖歌。至于是否支持 32 位版本,取決于應(yīng)用自身功茴。
除此之外庐冯,從 2018 年上半年開始,Play 商店將在每一個(gè) APK 上面自動(dòng)添加少量的安全性元數(shù)據(jù)(metadata)坎穿,進(jìn)一步驗(yàn)證 app 真實(shí)性。注意,開發(fā)者不需要為此變化做出任何修改剪菱。
這三條非常有力的強(qiáng)制性改變罪裹,足以見出 Google 在維護(hù)安卓開發(fā)生態(tài)系統(tǒng)上下定的決心。同時(shí)孵延,我們也不用擔(dān)心忘記對(duì)自己應(yīng)用的修改衡载,Google 會(huì)持續(xù)提供提醒,并將這些變更的關(guān)鍵時(shí)間點(diǎn)告知開發(fā)者們隙袁。
知曉完上述三條關(guān)鍵變更消息痰娱,我們?cè)賮砜纯?Google 是如何詳細(xì)解讀每一條鐵律背后的知識(shí)點(diǎn)。
Target API level
事實(shí)上菩收,每一次的 API 升級(jí)變更梨睁,Google 都在致力于幫助安卓開發(fā)人員提升應(yīng)用安全性,避免用戶遭受來自惡意軟件的攻擊娜饵。比如近幾次大版本的更新:
不再支持用于 bindService() 的隱形 Intent(Android 5.0)
運(yùn)行時(shí)權(quán)限(Android 6.0)
用于安全連接的用戶自定義 CAs 證書默認(rèn)不再受信(Android 7.0)
用戶沒有明確批準(zhǔn)時(shí)坡贺,應(yīng)用不能訪問用戶賬戶信息(Android 8.0)
大部分 API 變更僅適用于那些通過 targetSdkVersion 屬性明確指明支持新版 API 行為的應(yīng)用。比如箱舞,targetSdkVersion 大于等于 23 時(shí)遍坟,應(yīng)用只能通過運(yùn)行時(shí)權(quán)限向用戶請(qǐng)求訪問通訊錄或者發(fā)起定位。
為了盡可能地給用戶最好的安卓設(shè)備使用體驗(yàn)晴股,Google Play 應(yīng)用商店將要求 Apps 的 Target API 設(shè)置為最新版本:
2018 年 8 月:要求新發(fā)布 Apps 的 Target API 設(shè)為 26(Android 8.0)或更高版本愿伴;
2018 年 11 月:現(xiàn)有 Apps 發(fā)布新版本時(shí)也需要設(shè)置 Target API 設(shè)為 26(Android 8.0)或更高版本;
2019 年開始:隨著每年 Android 新版本 API 的發(fā)布电湘,新上線和更新現(xiàn)有 Apps 時(shí)隔节,Target API 都需要設(shè)置為對(duì)應(yīng)的新版 API 或更高版本鹅经;
當(dāng)然,對(duì)于已經(jīng)存在并且不需要更新的應(yīng)用不受此影響怎诫。對(duì)于 minSdkVersion 屬性瘾晃,開發(fā)人員根據(jù)自己的需要自由設(shè)置。Google 鼓勵(lì)開發(fā)者盡向后兼容幻妓。
支持 64-bit 架構(gòu)
Android 5.0 開始引入支持 64 位 CPU 架構(gòu)蹦误。如今,已經(jīng)有超過 40% 的安卓設(shè)備支持 64 位架構(gòu)肉津,同時(shí)也保留著 32 位的兼容性强胰。對(duì)于那些使用原生依賴庫的應(yīng)用,在額外引入的寄存器和新指令的作用下阀圾,64 位的代碼明顯有著更好的性能哪廓。
在未來安卓設(shè)備僅僅支持 64 位架構(gòu)的期待下,Play 商店要求使用本地庫的新發(fā)布 Apps 或者現(xiàn)有 Apps 的新版本必須提供 64 位版本初烘,而 32 位版本則可以按需支持涡真。開發(fā)者可以選擇使用一個(gè) APK 或者多 APKs 發(fā)布。
Google 也將會(huì)支持支持 32 位的應(yīng)用和設(shè)備肾筐。那些不包含本地庫的應(yīng)用不受此影響哆料。
這項(xiàng)變更將在 2019 年 8 月開始執(zhí)行。Google 也會(huì)在官網(wǎng)博客上持續(xù)發(fā)文提醒吗铐,包括告知開發(fā)者使用 64 位本地庫的好處东亦。
增加安全性元數(shù)據(jù)
明年開始,Google Play 商店將會(huì)在每個(gè) APK 上面增加少量安全性元數(shù)據(jù)唬渗。當(dāng)你下載安裝應(yīng)用時(shí)典阵,你會(huì)發(fā)現(xiàn)一個(gè)表明產(chǎn)品真實(shí)性的標(biāo)簽或者角標(biāo)之類的東西。
對(duì)于這一點(diǎn)镊逝,開發(fā)者或者用戶不需要做任何事情壮啊。Play 商店會(huì)自動(dòng)添加額外的少許元數(shù)據(jù)到 APK 簽名模塊,并且不影響應(yīng)用的任何功能撑蒜。除了加強(qiáng) Play 商店手機(jī)應(yīng)用生態(tài)系統(tǒng)完整性歹啼,這些元數(shù)據(jù)信息將來也會(huì)給開發(fā)者帶來更多的分發(fā)機(jī)會(huì),幫助更多人能夠及時(shí)更新版本座菠。
最后的寄語
安卓系統(tǒng)自誕生以來狸眼,在安全和性能方面,一直被用戶詬病浴滴。尤其對(duì)比移動(dòng)市場(chǎng)領(lǐng)域的 iOS 系統(tǒng)拓萌,差異明顯。但是巡莹,我們能夠看出 Google 一直在為此付諸努力司志,在一年一度的 I/O 大會(huì)上甜紫,總是能帶來質(zhì)的飛躍降宅。Google 一直在幫助開發(fā)人員提升應(yīng)用質(zhì)量和用戶體驗(yàn)骂远,也一直很有信心,2018 年和更遙遠(yuǎn)的未來腰根,安卓生態(tài)系統(tǒng)定將日趨茁壯激才。
這真是一個(gè)極好的消息。
消息來源:Android Developers Blog