Android 11 正式發佈 | 開發者們的舞臺已就緒

做者 / Stephanie Cuthbertson,產品管理總監html

Android 11 來了!今天咱們將源碼推送至 Android 開源項目 (AOSP),正式爲你們帶來最新版本的 Android。咱們在打造 Android 11 時,重點關注了三個主題: 以人爲本 的溝通方式、讓用戶快速訪問和 靈活控制 全部智能設備,以及讓用戶有更多方式控制設備上的數據如何共享的 隱私安全 。請閱讀咱們的 官方博客文章 瞭解詳情。java

對於開發者來講,Android 11 帶來了大量的新功能,包括會話通知、設備和媒體控制、單次權限、加強的 5G 支持、IME 切換效果等,歡迎你們積極嘗試。爲了幫助您更快地推動開發工做,咱們還添加了新的工具,如兼容性開關、ADB 增量安裝、應用退出緣由 API、數據訪問審覈 API、Kotlin 可空性註解等。這些工做都是爲了讓開發者們能喜好 Android 11,咱們很是期待在上面看到您的做品!android

正式版本的 Android 11 也即將在您身邊的設備上閃亮登場,Pixel 二、三、3a、4 和 4a 系列設備今天就能開始更新。請訪問 Android 11 開發者網站 瞭解詳情。git

以人爲本、靈活控制與隱私安全

以人爲本

Android 11 致力於凸顯人的要素,且善於溝通。咱們重塑了您在手機上進行溝通的方式,也讓操做系統能識別出那些對您來講更重要的人,讓您能更快速地和他們聯繫。對於開發者來講,Android 11 能夠幫助您在應用中實現更深刻的會話和更個性化的互動體驗。github

  • 會話通知 會顯示在通知欄頂部的專門區域,其設計更凸顯聯繫對象,且提供了會話特定的操做,例如以 Bubbles 的形式打開聊天、在主屏幕中建立會話快捷方式,以及設置提醒。
  • Bubbles  可讓用戶在手機上進行多任務切換時依然保持對話可見而且可交互。消息和聊天應用能夠經過基於通知的 Bubbles API,在 Android 11 上提供這種全新體驗。
  • 鍵盤提示整合功能 可讓自動填寫應用以及 IME (輸入法編輯器) 在 IME 建議欄中安全地向用戶提供基於上下文的實體和字符串,使得輸入更加便利。

△ Bubbles 和以人爲本的會話

△ Bubbles 和以人爲本的會話api

靈活控制

Android 11 讓用戶們得以快速訪問全部的智能設備,並集中控制它們。開發者們則能夠經過全新的 API 來幫助用戶控制智能設備和管理媒體播放:緩存

  • 設備控制 ( Device Controls ) 讓用戶得以更快、更輕鬆地訪問和控制他們鏈接的設備。只需長按電源按鈕就能夠調出設備控制菜單,一站式完成設備控制。應用也能夠經過新的 API 出如今這個控制菜單中。詳細信息請訪問 官方文檔
  • 媒體控制 ( Media Controls ) 讓用戶得以更快捷地切換音頻和視頻內容的播放設備——不管是耳機、麥克風仍是電視。詳細信息請訪問官方文檔


△ 設備控制和媒體控制安全

隱私安全

在 Android 11 中,咱們爲用戶帶來了更高的掌控能力,讓他們能更好地管理敏感權限。咱們還會經過更快速的更新來持續確保設備安全。網絡

單次受權  - 用戶如今能夠授予應用一次性的權限來訪問設備的麥克風、攝像頭或者位置信息。應用下次被使用時須要再次請求權限。詳細信息請訪問 官方文檔併發

Android 11 中的單次受權對話框

△ Android 11 中的單次受權對話框

後臺位置  - 想訪問後臺位置信息如今須要用戶在授予運行時權限外進行更進一步的操做。若是您的應用須要訪問後臺位置信息,系統會要求您必須先請求前臺位置權限。您能夠經過 單獨的權限申請 來進一步要求訪問後臺位置信息,系統會將用戶帶到設置頁面 (Settings) 中完成受權操做。

另外須要注意的是,咱們在今年二月宣佈,Google Play 開發者須要得到批准後纔可讓應用在後臺訪問位置信息,以防止濫用。如今咱們爲開發者提供更長的時間來作出修改,在 2021 年以前咱們不會強行要求現有的應用遵照本政策。詳細信息請訪問 官方文檔

權限自動重置  - 若是用戶在很長一段時間裏未使用某應用,Android 11 將 "自動重置" 全部與該應用關聯的運行時權限並通知用戶。在用戶下次使用該應用時,應用能夠再次請求權限。詳細信息請訪問 官方文檔

分區存儲  - 咱們一直在努力更好地保護外部存儲上的應用和用戶數據,還加入了更多的改進以便讓開發者更輕鬆地進行遷移。詳細信息請訪問 官方文檔

Google Play 系統更新  - 自去年發佈以來,Google Play 系統更新讓咱們能更快速地更新操做系統核心組件,並覆蓋 Android 生態系統中的衆多設備。在 Android 11 中,可更新的模塊數量增長了一倍有餘,新增的 12 個可更新模塊,爲用戶和開發者帶來更好的隱私性、安全性和一致性。

BiometricPrompt API  - 開發者如今能夠經過 BiometricPrompt API 來指定其應用所需的生物識別身份驗證強度類型,用來解鎖或者訪問應用中的敏感內容。爲了向下兼容,咱們也將這些功能加入到了 Jetpack Biometric 開發庫 中。隨着工做的進展,咱們會爲你們帶來進一步的更新。

身份認證 API ( Identity Credential API ) - 這個 API 會帶來全新的使用場景,支持包括駕駛執照、國民身份證和數字身份證。咱們正在與各政府機構和行業夥伴合做,以確保 Android 11 爲數字化身份認證體驗作好準備。

這裏 閱讀有關 Android 11 隱私功能的詳細信息。

實用創新

更強的 5G 支持  - Android 11 可讓開發者利用 5G 網絡更快的速度和更低的延遲。您能夠知曉用戶什麼時候 鏈接到 5G 網絡,查看 鏈接是否處於計費狀態,而且 估測鏈接的帶寬。爲了幫助您即刻打造 5G 體驗,咱們也在 Android Emulator 中加入了 5G 支持。請訪問 5G 開發者網頁,瞭解如何在 Android 上使用 5G 功能。

△ 將高速體驗帶出家門,5G 可讓您的隨行移動體驗更加流暢,讓您隨時與周邊環境、朋友、家人互動並知足工做的須要

△ 將高速體驗帶出家門,5G 可讓您的隨行移動體驗更加流暢,讓您隨時與周邊環境、朋友、家人互動並知足工做的須要

新的屏幕類型  - 設備廠商們也在持續進行創新,將新的屏幕形態投入市場,包括挖孔屏和瀑布屏。Android 11 已經在平臺中增長了對這些屏幕的支持,並提供了相應的 API 方便您優化應用。您能夠經過現有的 Display Cutout API 來管理挖孔屏和瀑布屏。您能夠經過設置 新的窗口布局屬性 來使用整個瀑布屏,並經過 瀑布屏邊襯區) (insets) API 來管理屏幕邊緣附近的互動。

呼叫過濾服務  - Android 11 能夠幫助呼叫過濾應用更好地管理騷擾電話。應用在呼叫詳細信息中能夠獲取來電的 STIR/SHAKEN) 驗證狀態 (這個標準能夠防止來電 ID 欺詐),並能報告拒接來電的緣由。應用還能夠自定義系統提供的 呼叫後屏幕 (post call screen),方便用戶執行諸如 "將呼叫方標記爲騷擾電話" 或 "添加到聯繫人" 之類的操做。

優化與品質

操做系統彈性  - 在 Android 11 中,咱們經過對內存回收操做 (好比根據 RSS HWM 閾值強制用戶沒法感知的進程重啓) 進行微調,使操做系統總體更具動態性和彈性。另外,爲了改善性能和內存的使用,Android 11 還增長了 Binder 緩存,經過緩存那些檢索相對靜態數據的系統服務,優化了使用率高的 IPC 調用。Binder 緩存還經過減小 CPU 時間延長了電池壽命。

同步 IME 切換效果  - 這是一組全新的 API,讓您能夠在 IME (輸入法編輯器,也叫軟鍵盤) 和系統欄進出屏幕時同步調整應用中的內容,從而更輕鬆地建立出天然、直觀、流暢的 IME 切換效果。爲了確保切換時作到逐幀精確,新的 WindowInsetsAnimation.Callback API 會在系統欄或 IME 移動時逐幀告知應用邊襯區的變化。此外,您能夠經過新的 WindowInsetsAnimationController API 控制系統 UI,包括系統欄、IME、沉浸模式等。閱讀 這篇博文 瞭解更多。


△ 左側示意: 經過邊襯區動畫監聽器實現 IME 同步切換效果 右側示意: 經過 WindowInsetsAnimationController 實現應用驅動的 IME 體驗

HEIF 動畫可繪製對象  - ImageDecoder API 如今容許您解碼和渲染存儲在 HEIF 文件中的圖像序列動畫,方便您引入高品質的素材,同時最大程度地減小流量消耗和 APK 尺寸。相對於 GIF 動畫,HEIF 圖像序列能夠顯著減少文件尺寸。

原生圖像解碼器  - 應用可使用新的 NDK API 來經過原生代碼解碼和編碼圖像 (如 JPEG、PNG、WebP),以便進行圖形或後期處理,並且由於您無需捆綁外部代碼庫,從而得以保持較小的 APK 尺寸。原生解碼器還能夠從 Android 持續的平臺安全更新中獲益。咱們提供了 NDK 樣例代碼 做爲使用參考。

MediaCodec 中的低延遲視頻解碼  - 低延遲視頻對於 Stadia 等實時視頻流應用和服務相當重要。支持低延遲播放的視頻編解碼器會在解碼開始後儘快返回流的第一幀。應用可使用新 API 來針對特定編解碼器 檢查) 和 配置 低延遲播放。

可變刷新率  - 應用和遊戲如今能夠經過 新的 API) 爲其窗口設置首選幀率。大多數 Android 設備以 60Hz 的刷新率更新屏幕,可是某些設備支持多種刷新率,例如 90Hz 和 60Hz,並可在運行時切換。在這些設備上,系統會基於首選幀率來爲應用選擇最佳刷新率。您能夠經過 SDK 和 NDK 來使用該 API。詳細信息請訪問 官方文檔

動態資源加載器  - Android 11 提供了一個新的公開 API 來讓應用在運行時動態加載資源和素材。經過 Resource Loader 框架,您能夠在應用或遊戲中包含一套基本資源,而後在運行時根據須要加載其餘資源,或更改已加載的資源。

Neural Networks API (NNAPI) 1.3  - 咱們持續增長算子和控制,以支持 Android 設備上的機器學習。爲了優化常見的使用場景,NNAPI 1.3 增長了優先級和超時、內存域 (memory domains) 以及異步指令隊列的 API。新的算子支持包含有符號整數非對稱量化以及分支和循環的高級模型,hard-swish 算子則能夠用於加速下一代設備上視覺模型 (如 MobileNetV3)。

開發者體驗

應用兼容性工具  - 咱們努力將大多數 Android 11 行爲變動設置爲可選擇開啓,從而最大限度地減小對兼容性帶來的影響,除非您將應用的 targetSdkVersion 設置爲 30,不然這些變動不會生效。若是您是經過 Google Play 發佈應用,則有一年多的時間來選擇支持這些變動,但咱們建議儘早開始測試。爲了幫助您進行測試,Android 11 容許您單獨開啓或關閉其中的許多變動。詳細信息請訪問 官方文檔

應用退出緣由  - 瞭解應用退出的緣由以及當時的狀態十分重要——包括應用所在的設備類型、內存配置和運行場景。Android 11 經過 退出緣由 API 讓這個事情變得更加容易: 您可使用該 API 來查看應用最近退出的 詳細信息

數據訪問審覈  - 數據訪問審覈可讓您更好地瞭解本身的應用訪問用戶數據的狀況,以及訪問來自的用戶流程。例如,它能幫您識別無心的私有數據訪問,不論其來自於您本身的代碼仍是其餘 SDK。詳細信息請訪問 官方文檔

ADB 增量安裝 ( ADB Incremental ) - 在開發過程當中使用 ADB (Android Debug Bridge) 安裝體積較大的 APK 可能會拖慢速度,影響您的工做效率,對 Android 遊戲開發者而言尤爲如此。Android 11 帶來了 ADB Incremental,如今從開發機向 Android 11 設備上部署大型 APK (2GB 以上) 的速度能夠提升 10 倍之多。詳細信息請訪問 官方文檔

Kotlin 可空性註解  - Android 11 爲公共 API 中的更多方法增長了可空性註解。並且,它將一些現有的註解從警告升級爲錯誤。這能夠幫助您在構建時就發現問題,不用等到運行時纔出錯。閱讀 此文 瞭解更多。

讓您的應用爲 Android 11 作好準備

Android 11 即將抵達用戶手中,如今是時候 完成您的兼容性測試併發布更新 了。

請首先關注 針對全部應用的行爲變動:

下面是首先須要關注的行爲變動 (不管您應用的 targetSdkVersion 是多少): 

  • 單次權限  - 如今,用戶能夠爲位置信息、設備麥克風和攝像頭授予單次使用權限。詳細信息請訪問 官方文檔
  • 外部存儲訪問權限  - 應用沒法再訪問外部存儲空間中其餘應用的文件。詳細信息請訪問 官方文檔
  • Scudo Hardened Allocator  - 如今它是應用內原生代碼的堆內存分配器。詳細信息請訪問 官方文檔
  • 文件描述符排查器  - 此功能如今默認啓用,以檢測應用原生代碼的文件描述符處理錯誤。詳細信息請訪問 官方文檔:

Android 11 中還有許多 可選擇支持的行爲變動 - 您的應用若是針對新平臺發佈,纔會受到影響。咱們建議在您發佈應用的兼容版本後儘快評估這些變動。有關兼容性測試和工具的更多信息,請查看 Android 11 兼容性相關的資源,並訪問 Android 11 開發者網站 瞭解技術細節。

使用新功能和 API 改進您的應用

準備就緒後,請深刻研究 Android 11 並瞭解您可使用的 新功能和 API。下面是一些您能夠優先考慮的重點功能。

咱們推薦全部應用支持這些功能:

  • 深色主題  (自 Android 10 開始支持) - 經過添加 Dark Theme (深色主題) 或啓用 Force Dark,確保爲啓用全系統深色主題的用戶提供一致的體驗。
  • 手勢導航  (自 Android 10 開始支持) - 請支持手勢導航,包括提供邊到邊的沉浸式體驗,以及確保自定義手勢與默認手勢配合良好。詳細信息請訪問 官方文檔:
  • 共享快捷方式  (自 Android 10 開始支持) - 想要接收共享數據的應用應該使用 共享快捷方式 API 來建立共享目標。想要發送共享數據的應用應確保使用 Android Sharesheet
  • 同步 IME 切換效果  - 使用新的 WindowInsets 和相關 API 爲用戶提供流暢的切換效果。詳細信息請閱讀 這篇博文
  • 新的屏幕類型  - 對挖孔屏或瀑布屏設備,請確保根據須要針對這些屏幕測試和調整您的內容。詳細信息請訪問 官方文檔

咱們還推薦這些功能,若是它們和您的應用體驗契合的話:

  • 會話  - 消息和通訊應用能夠經過提供長效 共享快捷方式 和在通知中呈現對會話來融入用戶的對話體驗。詳細信息請訪問 官方文檔
  • 聊天氣泡 ( Bubbles ) - Bubbles 能夠在多任務切換時依然保持對話可見及可用。應用經過基於通知的 Bubbles API 來實現此功能。
  • 5G  - 若是您的應用或內容能夠利用 5G 更快的速度和更低的延遲,請參考咱們的 開發者資源,開始構建 5G 體驗。
  • 設備控制  - 若是您的應用支持外部智能設備,請確保這些設備能夠重新的 Android 11 設備控制菜單訪問。詳細信息請訪問 官方文檔
  • 媒體控制  - 對於媒體應用,咱們建議支持 Android 11 媒體控制,這樣用戶就能夠從快速設置 (Quick Settings) 菜單中管理媒體播放。詳細信息請訪問 官方文檔

您能夠前往 developer.android.google.cn/11 瞭解更多有關 Android 11 功能的信息。

Android 11 即將出如今您身邊的設備上!

Android 11 將從今天開始在選定的 Pixel、一加、小米、OPPO 和 realme 手機上陸續推出,將來幾個月將有更多合做夥伴推出以及升級設備。若是您擁有 Pixel 二、三、3a、4 或 4a 系列手機,包括那些參加了今年 Beta 測試計劃的手機,請關注即將到來的 OTA 更新!

Pixel 設備的 Android 11 出廠系統映像也能夠經過 Android Flash Tool 得到,您也能夠在 這裏 下載。和以往同樣,您能夠經過 Android Studio 中的 SDK Manager 得到最新的 Android 模擬器系統映像。若是您想在其餘支持 Treble 的兼容設備上進行更普遍的測試,能夠在 這裏 獲取通用系統映像 (GSI)。

若是您須要 Android 11 的源代碼,能夠在 Android 開源項目 repo 的 Android 11 分支下的 這個地址 獲取。

下一步是什麼?

咱們很快會關閉預覽版問題反饋通道,並清除針對開發者預覽版或 Beta 版的開放 Bug,若是您再次發現了曾經在預覽版時期提交過的問題,請在 AOSP 問題反饋表單中針對 Android 11 提交新的錯誤報告,但願您繼續爲咱們提供反饋意見!

再次感謝今年參與預覽計劃的衆多開發者和早期體驗者!你們爲咱們提供了很是好的反饋,助力咱們打磨產品。正是你們提交的數以千計的問題報告將 Android 11 打形成了一個更好、更適合用戶的平臺。

期待在 Android 11 上看到你們的應用!

相關文章
相關標籤/搜索