作者 / Stephanie Cuthbertson,產品管理總監
Android 11 來了!今天我們將原始碼推送至 Android 開源專案 (AOSP),正式為大家帶來最新版本的 Android。我們在打造 Android 11 時,重點關注了三個主題: 以人為本 的溝通方式、讓使用者快速訪問和 靈活控制 所有智慧裝置,以及讓使用者有更多方式控制裝置上的資料如何共享的 隱私安全 。請閱讀我們的 官方部落格文章 瞭解詳情。
對於開發者來說,Android 11 帶來了大量的新功能,包括會話通知、裝置和媒體控制、單次許可權、增強的 5G 支援、IME 切換效果等,歡迎大家積極嘗試。為了幫助您更快地推進開發工作,我們還新增了新的工具,如相容性開關、ADB 增量安裝、應用退出原因 API、資料訪問稽核 API、Kotlin 可空性註解等。這些工作都是為了讓開發者們能喜愛 Android 11,我們非常期待在上面看到您的作品!
正式版本的 Android 11 也即將在您身邊的裝置上閃亮登場,Pixel 2、3、3a、4 和 4a 系列裝置今天就能開始更新。請訪問 Android 11 開發者網站 瞭解詳情。
以人為本、靈活控制與隱私安全
以人為本
Android 11 致力於凸顯人的要素,且善於溝通。我們重塑了您在手機上進行溝通的方式,也讓作業系統能識別出那些對您來說更重要的人,讓您能更快速地和他們聯絡。對於開發者來說,Android 11 可以幫助您在應用中實現更深入的會話和更個性化的互動體驗。
- 會話通知 會顯示在通知欄頂部的專門區域,其設計更凸顯聯絡物件,且提供了會話特定的操作,例如以 Bubbles 的形式開啟聊天、在主螢幕中建立會話快捷方式,以及設定提醒。
- Bubbles 可以讓使用者在手機上進行多工切換時依然保持對話可見並且可互動。訊息和聊天應用可以通過基於通知的 Bubbles API,在 Android 11 上提供這種全新體驗。
- 鍵盤提示整合功能 可以讓自動填寫應用以及 IME (輸入法編輯器) 在 IME 建議欄中安全地向使用者提供基於上下文的實體和字串,使得輸入更加便利。
△ Bubbles 和以人為本的會話
靈活控制
Android 11 讓使用者們得以快速訪問所有的智慧裝置,並集中控制它們。開發者們則可以通過全新的 API 來幫助使用者控制智慧裝置和管理媒體播放:
- 裝置控制 ( Device Controls ) 讓使用者得以更快、更輕鬆地訪問和控制他們連線的裝置。只需長按電源按鈕就可以調出裝置控制選單,一站式完成裝置控制。應用也可以通過新的 API 出現在這個控制選單中。詳細資訊請訪問 官方文件。
- 媒體控制 ( Media Controls ) 讓使用者得以更快捷地切換音訊和視訊內容的播放裝置——不論是耳機、麥克風還是電視。詳細資訊請訪問官方文件。
△ 裝置控制和媒體控制
隱私安全
在 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 可以讓您的隨行移動體驗更加流暢,讓您隨時與周邊環境、朋友、家人互動並滿足工作的需要
新的螢幕型別 - 裝置廠商們也在持續進行創新,將新的螢幕形態投入市場,包括挖孔屏和瀑布屏。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 2、3、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 上看到大家的應用!