每日最新頭條.有趣資訊

Android 11 迎來首個開發者預覽版,這些新功能必知

作者丨Android Developers Blog

譯者丨核子可樂

策劃丨萬佳

2 月 19 日,Android 開發者官方部落格宣布:正式發布 Android 11 首款開發者預覽版。

據悉,Android 11 將帶來一系列新功能,包括對可折疊顯示屏的支持、5G 增強功能、來電篩選 API、新的媒體與攝影頭功能以及機器學習等等。這些還只是新版本的一部分內容。

Dave Burke 寫道,“在 Android 11 中,我們將繼續為用戶帶來更多創新技術,並保持對隱私性和安全性的高度關注。我們不僅增加了多項用於管理敏感數據和文件訪問的新功能、同時還強化了某些關鍵區域,從而保持作業系統的良好彈性和安全性。”

重大新功能一覽

一、5G 體驗

5G 技術能為全球用戶帶來更高網速、更低延遲。

在 5G 技術的幫助下,大家可以把以往只能通過 WiFi 實現的應用體驗擴展至移動用戶,比如 4K 流媒體視頻、雲遊戲等,也能據此構建專為 5G 網絡環境設計的新體驗。

在 Android 11 中,我們正在增強並更新現有的連接 API,以確保大家能享受 5G 帶來的性能改進。

1. 動態計量 API

利用此 API,大家可以檢查當前網絡連接的性能水準;如果尚有充足余量,則能選擇更高的素材分辨率或質量,從而強化應用的使用體驗。

我們擴展了該 API 的兼容範圍,讓其支持蜂窩網絡。這樣,開發者就能在用戶接入 5G 網絡時識別出對應的運營商,保證應用始終根據當前網絡條件帶來最好的使用感受。

2. 帶寬估算 API

我們還更新了適用於 5G 環境的帶寬估算 API,用以快速檢查下行 / 上行帶寬,用戶不再需要輪詢網絡或者自行估算。

如果你的調製解調器不支持這項功能,我們將根據當前連接情況進行默認估算。

5G 技術不僅能將傳統固網帶出家門,還將幫助用戶與周邊環境(好友、家人乃至企業)無縫互動,增強“移動”體驗。

二、新的螢幕類型

設備製造商正不斷將令人興奮的全新移動設備外形與螢幕設計推向市場。

我們也著手在新的 Android 平台中增加對這些全新特性的支持,同時提供對應 API,以優化應用顯示效果。

針孔與瀑布屏

應用程序可以利用現有顯示屏布局,充分管理針孔屏與瀑布屏等顯示方案。

如果需要,開發者能讓自己的應用程序鋪滿包括邊框在內的整個瀑布屏,並通過嵌入圖管理邊框附近的互動操作。

三、人與對話

對大多數用戶來說,與朋友和同事們的溝通是手機上最重要的應用方式。

在 Android 11 中,我們引入了能幫助開發者創建更深層對話體驗的變更,其中不少都將在此次開發者預覽版(DP1)中得到體現:

1. 通知欄中的專用對話部分

用戶可以在自己喜愛的應用程序中立即找到與特定對象的對話。

2. 懸窗(Bubbles)

懸窗是一種在手機上執行多任務處理時,繼續保持對話可見性與可訪問性的方法。

消息與聊天應用在使用 Bubbles API 時,會向用戶申請權限,並通過 Android 11 中的設置完成授權。

3. 將圖像插入通知回復中

如果你的應用支持圖像複製 / 粘貼,那麽在新版本中,你可以允許用戶將素材直接插入至通知回復中,從而實現更豐富的通信效果與應用功能設計。

作為此次預覽版的重要組成部分,你將在 Chrome 中找到圖片複製支持選項,並通過 Gboard 剪貼板查看圖片粘貼支持功能。

實時雙向通訊應用應當使用共享 / 會話快捷方式 API,借此保證 Android 系統在整個對話過程中顯示 People 目標以及 Bubbles API,從而允許用戶在使用其他應用功能的同時繼續保持當前對話。

四、神經網絡 API 1.3

神經網絡 API(NNAPI)專為 Android 設備上運行的機器學習類計算密集型操作而設計。

在 Android 11 中,我們正在擴展可供開發者使用的操作與控件。在新版本內,我們添加了新的操作與執行控件,借以優化以下常見用例:

服務質量 API,用於支持模型執行的優先級與超時情況。

記憶體域 API,用於減少連續模型執行帶來的記憶體複製與轉換操作。

擴展量化支持,我們添加了 signed integer asymmetric quantization ,它能在縮小模型體積的同時加快推理速度。

感興趣的朋友可以查看 NDK 示例代碼,其中包含與上述新 API 相關的應用示例。

在今後的預覽更新中,我們將發布更多相關信息。我們正在與硬體供應商以及各大主流機器學習框架(例如 TensorFlow)團隊開展合作,希望優化並實現對 NNAPI 1.3 的支持。

五、隱私性與安全性

隱私

隱私一直是 Android 系統中的核心,每年我們都在嘗試多種方法,來保護用戶安全並提高系統的透明度與可控性。

其中不少變更受到用戶的積極響應——例如在 Android 10 中,我們添加了“While app is in use”權限選項,幫助用戶更精細地控制應用位置並限制後台位置訪問。

到目前為止,約有半數用戶會選擇啟用“While app is in use”選項。

在 Android 11 中,我們通過新的權限選項、範圍存儲更新等機制繼續關注用戶隱私保護。

一次性權限

對於最敏感的數據類型——除位置外,還包括設備的麥克風與攝影頭啟用——用戶現在可以通過一次性授權方式將其臨時開啟。

這項權限意味著應用程序能暫時訪問數據,但在用戶退出應用後,授權即告結束。再次使用時,應用程序必須重新請求權限才能再次獲取這部分數據。

Android 11 中的一次性權限對話框。

範圍存儲

我們將繼續努力,更好地保護外部存儲介質上的應用程序與用戶數據,同時不斷為開發者提供更加輕鬆可行的遷移選項。

此次預覽版中包含多項增強功能,例如在存儲介質選擇中添加原始文件路徑訪問、DocumentsUI 更新,以及 MediaStore 中的批處理編輯操作等等。

除以上變更外,用戶還提到希望在 Android 的早期發布版本中獲得更多保護,並希望強化應用程序的數據使用透明度。因此,我們正著手更新 Google Play 政策,希望確保應用程序只在必要時才會提出位置數據權限申請。

安全性

我們專注於提高各個 Android 版本的安全性標準——包括在更多設備類型上發布月度安全更新,以及為最新平台構建更多保護功能等。

在 Android 11 中,我們將 Android 的縱深防禦策略擴展到移動平台上的更多區域之內,同時為應用添加了新的安全選項及配套 API。

生物特徵識別

我們擴展了系統對於生物特徵識別的支持能力,以滿足各類設備的實際需求。

BiometricPrompt 現在支持三種不同細化度的身份驗證類型——具體分為強、弱以及設備憑證。我們還將 BIometricPrompt 流與應用程序的“活動”生命周期剝離開來。

換句話說,所有使用生物特徵識別的應用都將轉向 BiometricPrompt API。還有一個好消息,此 API 將入駐 AndroidX,因此早期版本的 Android 系統也將兼容這項新功能。

平台強化

我們在各項關鍵安全組件(包括 BoundSan、IntSan、CFI 以及 Shadow-Call Stack)中擴展了基於編譯器的清理器使用範圍。

同時,我們還為隻支持 Android 11 或更高版本的應用程序啟用堆指針標記,旨在協助捕捉應用中產生的記憶體問題。

這些經過強化的改進有望在代碼層面暴露出更多可重複 / 可再現的應用程序崩潰情況,進而降低應用程序的測試難度。

我們已經利用 HWAsan 查找並修複了系統中的大量記憶體錯誤,現在我們正式提供支持 HWAsan 的系統鏡像,相信能夠幫助更多朋友在應用程序中識別出此類問題。

存儲與共享數據保護

應用程序現在可以通過 BlobstoreManager 與其他應用程序輕鬆安全地實現 data blob 共享。

Blob 存儲特別適合約一用戶在多款應用之間共享同一組機器學習模型這類用例。

身份憑證

Android 11 在系統平台上添加了對安全存儲與可驗證身份憑證(例如符合 ISO 18013-5 的汽車駕駛許可證)的檢索支持。

六、更新與兼容性

Google Play 系統更新

從 Android 10 開始,我們一直擴大對 Google Play 系統更新(項目主線)的投入力度,希望提升整個生態系統的安全性、隱私性與一致性。

由於與設備製造商之間的緊密合作,我們已經在這方面取得重大進展,並通過基礎設施擴展將 Google Play 更安全、更快速地推向更廣泛的設備類型。

在 Android 11 中,我們添加 12 項新的可更新模塊,意味著目前 Google Play 的總模塊數已經達到 22 個。

更新重點包括一個用於在 Android 設備上對用戶及開發者指向關鍵隱私控件的訪問權限進行標準化管理的模塊;一個用於在存儲層面保護隱私的介質提供方模塊;以及一個負責優化性能並保證跨 API 一致性的 NNAPI(神經網絡 API)模塊。

應用兼容性

在發布新平台版本前,我們還會優先考慮應用程序的兼容性,借此保證更新後的運行速度與流暢性。

在 Android 11 中,我們添加新的進程、開發者工具以及發布里程碑,希望盡可能減少平台更新對應用性能造成的影響。

盡可能降低行為變更造成的影響:

雖然我們對 Android 做出的各項變更能提升系統實用性、安全性與性能水準,但也有部分變更可能影響開發者的應用體驗。

在構建 Android 11 時,我們在這方面投入大量精力,認真觀察系統變更對應用程序運行產生的影響,並盡可能將新功能設定為“可選”項目——只有在應用中將 targetSdkVersion 設置為“R”,開發者才會真正使用到這些新特性。

這將把變更對應用程序行為的影響降至最低。我們希望為開發者們賦予更多控制權,保證有更多應用程序能在 Android 11 上實現開箱即用。

降低測試與調試難度

為幫助大家輕鬆測試應用兼容性,我們為多項重大變更提供可切換選項,因此大家能通過開發者選項或者 adb 強製啟用 / 禁用這些變更。

如此一來,你無需變更 targetSdkVersion 或者重新編譯應用,即可實現對應用程序的基本測試。

開發者選項中的應用兼容性切換功能。

灰名單更新

我們更新了受限非 SDK 接口,同時也歡迎大家就是否需要使用等效公共 API 向我們提交反饋意見。

動態資源加載器

作為非 SDK 接口的替代性舉措之一,開發者們要求我們提供公共 API,借此在運行時內動態加載資源與資產。如大家所願,我們在 Android 11 中添加了 Resource Loader 框架,同時也感謝各位提供反饋的開發者朋友!

新的平台穩定性里程碑

開發者們提醒我們,由於缺少明確的最終變更日期,在以往 Android 版本上實現應用程序的早期兼容性一直非常困難。

因此,在 Android 11 中,我們添加了新的“平台穩定性”里程碑。該里程碑有望在今年 6 月初實現,其中不僅包含最終 SDK/NDK API,同時也將提供可能影響應用程序運行效果的最終內部 API 與系統行為設計。

七、細節改進與質量提升

改進來電篩選服務

來電篩選應用現在可以更全面地服務於用戶。應用程序能將來電的 STIR/SAKEN 驗證狀態作為細節信息的一部分,同時對系統提供的來電篩選顯示界面進行自定義,允許用戶將來電標記為垃圾信息或者添加到聯繫人等等。

Wi-Fi 提示 API 增強

我們擴展了 Wi-Fi 提示 API,確保連接管理應用具有更強大的網絡自主管理能力。

例如,該應用可以關閉網絡建議、管理 Passpoint 網絡、接收關於已連接網絡的更多質量信息,並通過其他管理變更強製斷開當前連接。

Passpoint 增強

Android 現在會強製執行並通知 Passpoint 配置文件的到期日期,支持在配置文件中應用 Common Name 規範,並允許 Passpoint R1 配置文件使用具有自簽名的專用 CA。

連接應用現在可利用 Wi-Fi 提示 API 管理 Passpoint 網絡。

HEIF 可繪製動畫對象

ImageDecoder API 現在允許開發者解碼並渲染存儲在 HEIF 文件中的圖像序列動畫,從而在使用高質量素材的同時,最大程度降低對網絡數據及 apk 大小的影響。

與 GIF 動圖相比,HEIF 圖像序列能大幅削減文件體積。開發者可以使用 HEIF 源調用 encodeDrawable,輕鬆在自己的應用程序內顯示 HEIF 圖像序列。如果源中包含圖像序列,則返回 AnimatedImageDrawable。

原生圖像解碼器

新的 NDK API 使應用程序能通過原生代碼解碼與編碼圖像(JEPF、PNG、WebP 等)實現圖形生成或後期處理。

由於無需捆綁外部庫,你的 apk 文件將得到有效瘦身。這款原生解碼器還將充分利用 Android 系統中的平台安全更新。

拍攝靜音機制

利用新的 API,應用將在會話處於活動狀態時,自動關閉由鈴聲、警報或者通知帶來的聲音 / 振動提醒。

Bokeh modes

應用可以利用元數據標簽在受支持的設備上實現 Bokeh 拍攝模式。其中靜態圖像模式將帶來更高的拍攝質量,而連續拍攝模式也可保證捕捉內容與傳感器輸出(例如視頻捕捉)嚴格保持同步。

MediaCodec 中的低延遲視頻解碼

低延遲視頻功能對於實時視頻流應用以及 Stadia 雲遊戲等服務至關重要。

支持低延遲播放的視頻編 / 解碼器在解碼開始後,會盡快返回視頻流的第一幀。應用程序能利用新的 API 檢查並配置特定編 / 解碼器中的低延遲播放功能。

HDMI 低延遲模式

應用可利用新的 API 在外部顯示器及電視設備上檢查並申請開啟自動低延遲模式(也稱遊戲顯示模式)。在此模式下,顯示器或電視會禁用圖像後處理功能,以最大程度降低延遲水準。

關於新版本的更多相關信息,請參閱 Android 11 開發者網站。其中包含版本新增功能、行為變更細節、設置與遷移指南、發布說明以及反饋渠道等一系列重要內容。

點個在看少個 bug

獲得更多的PTT最新消息
按讚加入粉絲團