持續提升 Android 應用的安全性與性能


每一年,Google Play 助力數十億的 App 進行安裝或者更新。咱們一直致力於提高 App 安全性和性能,確保每一個用戶都可以獲取最佳體驗,探索和安裝本身喜歡的 App 和遊戲。html

今天,咱們想要和各位 Android 開發者簡單說明一下三項變動,它們背後的緣由,以及它們如何讓 Android 設備運行得更加安全和流暢。android

  • 從 2018 下半年開始,Google Play 要求新 App 和 App 更新包將目標 SDK 版本(Target SDK Version)設定爲最新版。針對新發布 App,此項變動將從 2018 年 8 月實施;針對現有 App 的版本更新,此項變動則從 2018 年 11 月生效。開發者們要留心此時間,確保 App 基於最新 API 進行開發,得到安全性和性能方面的優化。安全

  • 2019 年 8 月開始,Google Play 要求用原生庫(native libraries)進行發佈和更新的 App 都必須提供 64 位和 32 位兩個版本。
    性能優化

  • 此外,從 2018 年上半年開始,Google Play 將在每一個 APK 頭部添加少許安全元數據,用於進一步驗證 App 的真實性。此項變動不須要開發者方面採起任何行動。架構

咱們十分重視開發者生態圈,但願這篇文章可以幫助各位順利發佈 App。並且咱們會繼續發佈提醒通知,分享開發者資源幫助各位在關鍵日期節點前作好充分準備。ide

從 2018 年下半年開始, API 目標等級新規定

API 行爲變動可以提升 Android 安全性和隱私保護 —— 助力開發者提升 App 安全性、防止用戶遭受惡意軟件攻擊。如下列舉了咱們針對近期平臺版本,推出的幾項有關 API 的變動:性能

  • 再也不支持經過隱式的 intent 調用 bindService ( ) (Android 5.0)優化

  • 在運行時請求權限 (Android 6.0)ui

  • 默認條件下,再也不信任用戶爲安全鏈接添加的 CA 證書 (Android 7.0)google

  • 在未得到用戶明確批准的情形下,App 沒法訪問用戶帳號 (Android 8.0)


上列變動僅僅適用於在 targetSdkVersion 清單屬性中明確代表支持新 API 行爲的 App。例如,只有在 targetSdkVersion 值爲 23(Android 6.0 適配 API 等級)或者更高的 App 內,用戶才能經過設定 「在運行時請求權限」,徹底控制 App 可以訪問到哪些隱私數據 —— 如聯繫人和位置信息。

一樣地,近期發佈的幾個版本還改善了用戶體驗,如防止 App 忽然過分消耗電池和內存等資源,後臺執行限制就是一個很好的例子。

爲了讓用戶能享受到最好的 Android 體驗,Google Play 管理中心將要求 App 設定目標 API 等級爲近期版本:

  • 2018 年 8 月:新 App 須要將 target API 等級設定爲 26(Android 8.0)或者更高

  • 2018 年 11 月,現有 App 的更新包須要將 target API 等級設定爲 26 或者更高

  • 2019 年以後:每一年 targetSdkVersion 會提出新的要求。Android 新版本系統發佈一年內,App 的開發和更新都須要將 API 調整到相應或者更高等級。

現有但再也不更新的 App 並不受影響。開發者能夠自行選擇是否使用 minSdkVersion,依舊能夠進行基於舊版本 Android 系統的 App 開發。

咱們建議各位開發者儘可能提供向後兼容性。從此的 Android 系統會對未達到 API 要求而在安全和性能方面有所欠缺的 App 設置限制。咱們將會採起積極主動的措施,下降 App 生態圈碎片化程度,保證 App 運行安全並且流暢。咱們會提早通知開發者,讓各位可以作好相應計劃。

今年咱們正式發佈 Android Oreo。在安全和性能方面,Oreo 是目前最好的一款 Android 系統。同時咱們還發布了 Project Treble 計劃,加速設備上的系統更新速度。請當即開始爲 Android 8.1 Oreo 開發 App。

2019 年開始要求提供 64 位支持

從 Android 5.0 開始,Android 平臺就加入了 64 位架構支持。到目前爲止,40% 的 Android 設備都支持 64 位版本,同時兼容 32 位版本。通常來講,若是 App 用的是原生庫,那麼 64 位代碼一般能提供顯著更好的性能,由於該架構支持更多的寄存器數量和更新的指令集。

預期將來 Android 設備可能只提供 64 位代碼支持,Google Play 管理中心要求新 App 以及 App 更新包在無 32 位支持的設備上也能運行。使用 32 位庫的 App 須要同時兼容 64 位庫 —— 發佈時能夠打包在同一個 APK 內,也能夠做爲多 APK 中的一個。不包含原生代碼的 App 不受此要求影響。

以上變動將在 2019 年 8 月起正式生效。這次預先通知是爲了讓廣大開發者可以有充足的時間爲支持 64 位代碼作好準備。咱們隨後會推出一系列相關文章內容,深度探討 64 位原生庫爲 Android 帶來哪些性能優化,敬請期待。欲知更多信息,請查閱 Android NDK CPU 和構造指南:

https://developer.android.google.cn/ndk/guides/arch.html

2018 上半年開始採用安全元數據

從明年開始,咱們將會在每一個 APK 頂部添加少數安全元數據,用來認證 App 是經過 Google Play 官方發佈的。好比說您去買東西,上面印着的商標就用於肯定商品真僞。而咱們往 APK 添加的元數據也是起這樣的做用,告訴用戶這個 App 是由 「Google Play」 官方下載的。

該項變動不須要開發者或者用戶方面採起任何措施。咱們將會根據添加的元數據大小,調整 Google Play 中 APK 體積的上限值,並添加到 APK 簽名區塊中(APK Signing Block),而對 App 的功能沒有任何影響。這些元數據不只可以加強 Google Play 移動 App 生態系統的完整性,還能爲開發者帶來新的發佈機會,幫助更多的用戶享用最新 App。

展望將來

2017 年對 Google Play 而言是意義非凡的一年,咱們共同見證了許許多多開發者的成長和成功。咱們一直努力改善各項功能(包括先前在 Google I/O 2017 開發者大會Playtime 大會上提出的功能),助力開發者提升 App 質量,創造更多商業價值。

咱們但願經過這些功能和即將發佈的更新,在 2018 年及之後助力 Android 和 Google Play 生態系統繼續蓬勃發展。

相關文章
相關標籤/搜索