做者 / Dave Burke,工程副總裁html
從手機和筆記本電腦,再到平板電腦、電視甚至汽車,Android 應用天天都在各類設備上支持着數十億人的工做、娛樂、交流和創造。當愈來愈多的人開始依賴您所構建的體驗,人們的指望也跟着水漲船高。咱們堅信,Android 開發者們的反饋有助於咱們爲您的應用和全部用戶構建一個更好的平臺。咱們已經發布了 Android 12 (下一代 Android 系統) 的第一個開發者預覽版,供您測試和提交反饋。android
對於每個版本,咱們都致力於使操做系統更智能、更易用、更強勁,而且始終以隱私和安全爲核心。在 Android 12 中,咱們還將爲您提供新的工具,幫助您爲用戶打造更出色的體驗。首先是兼容媒體轉碼,即使您的應用尚不支持,這個功能也能夠幫助應用使用最新的視頻格式。此外,圖像和視頻等富媒體內容如今能夠更輕鬆地複製/粘貼到您的應用裏。咱們還將添加隱私保護並優化性能,使您的應用保持及時響應。api
首個預覽版只是 Android 12 的開始,隨着發佈的進行,咱們會有更多的內容分享給開發者。請繼續閱讀本文,瞭解 Android 12 的最新變化,並訪問 Android 12 開發者網站,獲取有關 下載並安裝到 Pixel 設備 和 發佈時間表 的詳細信息。與往常同樣,儘早得到您的反饋並將其歸入最終產品對咱們來講很是重要,所以請務 必告訴咱們您的想法!瀏覽器
除了咱們在 Android 12 中所作的工做以外,咱們還發布了另外一個重要工具的最新進展,那就是能夠幫助您更輕鬆地建立出色用戶體驗的 Jetpack Compose,這是咱們用於構建原生界面的新一代工具包。歡迎您在評論區留言,告訴咱們對 Jetpack Compose 最關切的問題。緩存
隱私是咱們一切工做的核心,在 Android 12 中,咱們繼續專一於爲用戶提供更多的透明度和控制權,同時保證設備和數據安全。在新版本中咱們作出了不少改動,包括對可用於跟蹤的標識符增長了新的限制,爲應用組件增長了更安全的默認值,等等。這些變動可能會對應用產生影響,所以,咱們建議您儘快開始測試。同時,請繼續留意將在後續預覽版中提供的更多隱私和安全功能。安全
WebView 中的現代 SameSite cookie 行爲 - WebView 順應 Chrome 和其餘瀏覽器的 變化,加入了新的 SameSite cookie 行爲,提供額外的安全性和隱私性,讓用戶對 cookie 跨站點的使用方式擁有更多的透明度和控制權。請訪問 官方文檔 瞭解詳細信息。cookie
限制使用 Netlink MAC - 咱們將繼續幫助開發者遷移到 保護隱私的可重置標識符。爲了在屢次版本發佈中簡化設備級別 Netlink MAC 的遷移,咱們在 Android 11 中將這個功能限制在了 API 級別 30。而在 Android 12 中,不管 targetSDK 級別是多少,咱們將對全部應用施加這一限制。請訪問 官方文檔 瞭解詳細信息。網絡
更安全地導出組件 - 爲了防止應用意外導出 activity、服務和接收器,咱們更改了 android:exported 屬性的默認處理方式,使其更加明確。藉助這項變動,聲明一個或多個 intent 過濾器的組件如今必須顯式聲明一個 android:exported 屬性。您應檢查清單文件中的組件,避免與此變動相關的安裝錯誤。請訪問 官方文檔 瞭解詳細信息。app
更安全地處理 Intent - 爲了使 PendingIntents 的處理更加安全,Android 12 要求應用爲每一個 PendingIntent 顯式聲明一個可變性標誌,即 FLAG_MUTABLE 或新的 FLAG_IMMUTABLE。請訪問 官方文檔 瞭解詳細信息。ide
更多的 隱私與安全變動.
更好的用戶體驗工具
在 Android 12 中,咱們在完善體驗和改進性能的關鍵領域持續投入資源。如下是目前的部分進展。
兼容媒體轉碼 (compatible media transcoding) - 隨着 HEVC 硬件編碼器在移動設備上的普及,相機應用也多以 HEVC 格式進行拍攝。與舊的編解碼器相比,HEVC 在質量和壓縮方面都具備明顯提高。大多數應用都應支持 HEVC,但對於沒法支持 HEVC 的應用,咱們引入了兼容媒體轉碼。
藉助此功能,不支持 HEVC 的應用可讓平臺自動將文件轉碼爲普遍兼容的 AVC 格式。轉碼過程須要必定時間,具體取決於視頻的內容和設備的硬件屬性。例如,30fps 的一分鐘 1080p 視頻在 Pixel 4 上轉碼須要 9 秒左右。您能夠經過聲明應用不支持的媒體格式來選擇使用轉碼服務。咱們強烈建議開發者使應用支持 HEVC,若是沒法支持,再啓用兼容媒體轉碼。該功能將在全部使用 HEVC 格式進行視頻拍攝的設備上啓用。咱們但願聽到您對此功能的反饋。請訪問 官方文檔 瞭解詳細信息。
AVIF 圖像支持 - Android 12 引入了對 AV1 圖像文件格式) (AVIF) 的平臺支持,提供更高的圖像質量和更高效的壓縮。AVIF 是一種使用 AV1 編碼的圖像和圖像序列的容器格式。與其餘現代圖像格式同樣,AVIF 利用了視頻壓縮的幀內編碼內容。相較於舊的圖像格式 (如 JPEG),在相同的文件大小下,AVIF 能夠極大地提升圖像質量。
△ 上圖: AVIF (18.2kB);下圖: JPEG (20.7kB)
圖源:《 AVIF 已經到來》中的 圖像對比,做者 Jake Archibald
前臺服務優化 - 前臺服務是應用管理某些面向用戶任務的重要方式,但過分使用會影響性能,甚至致使應用被系統終止。爲了確保用戶得到更好的體驗,對於以新平臺爲目標的應用,咱們將阻止從後臺啓動前臺服務。爲了幫助你們更輕鬆地擺脫這種作法,咱們在 JobScheduler 中引入了一個新的 加急做業 (expedited job)),該做業具備較高的進程優先級、網絡訪問權限,而且當即運行,不受省電模式 (Battery Saver) 或低電耗模式 (Doze) 等電耗約束的影響。爲了實現向下兼容,咱們還將加急做業集成到了最新版本的 Jetpack WorkManager 庫 中。另外,爲了減輕對用戶的干擾,咱們如今將部分前臺服務通知的顯示延遲了最多 10 秒。這使短暫的任務有機會在通知顯示以前完成。請訪問 官方文檔 瞭解詳細信息。
富內容插入 (rich content insertion) - 用戶喜歡看圖像、視頻和其餘富有表現力的內容,但在應用中插入和移動這些內容並不老是那麼容易。爲了讓您的應用可以快速接收富內容,咱們引入了一個新的統一 API,讓您可以接受任何來源的內容: 剪貼板、鍵盤或拖放。您能夠將新接口 OnReceiveContentListener 附加到界面組件上,並在經過任何機制插入內容時得到回調。此回調將成爲代碼處理全部內容插入的惟一位置,從純文本和樣式文本到標記、圖像、視頻、音頻文件等。爲了實現向下兼容,咱們已將統一的 API 加入了 AndroidX。請訪問 官方文檔 瞭解詳細信息。
音頻耦合觸感效果 (audio-coupled haptic effect) - 在 Android 12 中,應用能夠經過手機的振動單元提供音頻耦合觸感反饋。振動強度和頻率來自於音頻會話,讓您能夠建立更沉浸的遊戲和音頻體驗。例如,視頻通話應用可使用自定義鈴聲,經過觸感反饋識別來電者,您還能夠在賽車遊戲中模擬崎嶇地貌。請訪問 官方文檔 瞭解詳細信息。
多聲道音頻 - Android 12 爲包含空間信息的音頻帶來了多項加強。添加了對 MPEG-H 透傳 (passthrough) 和分載 (offload) 模式的播放支持,音頻混音器、重採樣器和效果通過優化,支持多達 24 個通道 (過去最大僅支持 8 個)。
手勢導航的沉浸模式 API 改進 - 咱們簡化了沉浸模式,使手勢導航在多種場景下,如觀看視頻、閱讀書籍或玩遊戲時,更簡單、更連貫。在遊戲相關的全屏體驗中,咱們仍然會 保護應用不受意外手勢的影響,但在全部其餘全屏或沉浸式體驗中 (如視頻播放器、閱讀、圖冊),對於針對新平臺的應用,咱們將改變默認設置,容許用戶經過單次滑動來進行導航。請訪問 官方文檔 瞭解詳細信息。
通知界面更新 - 咱們對通知設計進行改版,使其更現代、更易用、更實用。在首個預覽版中,您能夠發現從抽屜式導航欄和控件到模板自己都有所變化。咱們還優化了整個系統的轉場和動畫,使其更加流暢。做爲更新的一部分,對於針對 Android 12 的應用,咱們會使用自定義內容、圖標以及展開提示來對通知進行美化,從而使其觀感與其餘通知一致。請訪問 官方文檔 瞭解詳細信息。
更快、更靈敏的通知 - 用戶點按通知時,指望的是當即跳轉到應用,越快越好。爲了知足這一指望,開發者需確保點擊通知應直接觸發 Activity 啓動,而不是使用 "蹦牀" (經過廣播接收器或服務) 啓動 Activity。通知蹦牀會形成明顯的延遲,影響用戶體驗。爲了保持通知的響應速度,Android 12 將阻止通知蹦牀啓動目標 Activity,咱們也要求開發者再也不使用這種實踐模式。此項變動僅適用於針對新平臺的應用,但對於全部應用,咱們都會顯示消息框,使您和用戶能夠看到蹦牀。請訪問 官方文檔 瞭解詳細信息。
改進的 Binder IPC 調用 - 在提高性能方面,咱們關注如何下降系統可變性。通過對延遲和工做負載分佈的深刻觀察,咱們作出優化,減小了末端的中位數體驗 (或 99% 的用例)。在此期間,咱們有針對性地改進了系統綁定調用,增長了輕量級緩存策略,並專一於消除鎖爭用以改善延遲分佈。這樣一來,Binder 調用總體性能提高約 2 倍,特定調用的性能提高顯著,如 refContentProvider() 提高了 47 倍、releaseWakeLock() 提高了 15 倍、JobScheduler.schedule() 提高了 7.9 倍。
發佈新的平臺版本時,咱們優先考慮應用的兼容性,讓系統更新的體驗更快、更順暢。在 Android 12 中,大多數面向應用的變動都是可選的,以便您有更多時間調整適應。咱們還更新了工具和流程,幫助您更快作好準備。咱們還爲 Google Play 系統更新添加了新功能,在 Android 12 設備上爲您的應用提供更好的運行環境。
經過 Google Play 進行更多的 Android 更新 - 咱們將繼續擴大對 Google Play 系統更新 (Project Mainline) 的投入,爲各設備上的應用營造更一致、更安全的環境。Android 12 新增了 Android Runtime (ART) 模塊,支持向 Android 12 設備的核心運行時和庫推送更新。咱們能夠提升運行時的性能和正確性,更有效地管理內存,並使 Kotlin 操做更爲迅速 —— 這些都再也不須要完整的系統更新。咱們還擴展了現有模塊的功能,例如,咱們在一個可更新模塊中提供了兼容媒體轉碼功能。
針對平板電腦、可摺疊設備和電視的優化 - 隨着愈來愈多的人開始在可摺疊設備、平板電腦和電視等大屏幕設備上使用應用,如今是確保您的應用或遊戲爲這些設備作好準備的大好時機。您能夠從 針對平板電腦進行優化 和 爲可摺疊設備構建應用 開始着手。同時,針對家庭中最大的屏幕,首個適用於 Android TV 的 Android 12 預覽版也已推出。您不只能夠經過此預覽版將最新的 Android 功能帶到電視,還能夠在全新的 Google TV 環境測試您的應用。請前往 Android TV 開發者網站 瞭解更多信息並使用 ADT-3 開發者工具包 上手開發。
非 SDK 接口列表更新 - 咱們增長了受限制的 非 SDK 接口,和往常同樣,咱們期待着您的反饋,也歡迎您 提出公開 API 的需求。
更輕鬆地針對變動進行測試和調試 - 爲了讓您更輕鬆地測試會影響應用的可選變動,咱們已經將許多變動設置爲可開關。您能夠在開發者選項或 adb 中經過這些開關逐一強制啓用或停用這些變動。請訪問 官方文檔 瞭解詳細信息。
△ 開發者選項中的應用兼容性切換開關
平臺穩定性里程碑 - 和去年同樣,咱們會提早告知咱們的平臺穩定性里程碑,讓您有更多的時間規劃應用兼容性工做。在此里程碑,咱們不只會鎖定最終版的 SDK/NDK API,還會鎖定最終內部 API 和麪嚮應用的系統行爲。咱們預計將在 2021 年 8 月抵達平臺穩定性里程碑。這樣在正式發佈前,您將有幾周的時間進行最終測試。發佈時間表詳見: https://developer.android.google.cn/about/versions/12/overview
不論您想體驗 Android 12 的功能、測試應用仍是 提交反饋,均可以從此次的開發者預覽版開始。只需將設備系統映像 下載並刷入 Pixel 3 / 3 XL、Pixel 3a / 3a XL、Pixel 4 / 4 XL、Pixel 4a / 4a 5G 或 Pixel 5 設備,便可當即開始使用。若是您沒有 Pixel 設備,能夠將 64 位系統映像刷入 Android Studio 中的 Android Emulator 使用。
設置 完畢後,您能夠:
咱們將在整個 Android 12 發佈週期內按期更新預覽版系統映像和 SDK。此次發佈的初始預覽版僅供開發者使用,不面向平常或消費者使用,所以咱們僅提供手動下載。您能夠將系統映像刷入 Pixel 設備,或在運行 Android 11 的設備上加載 (sideload) OTA 映像,在後一狀況下您甚至不須要解鎖引導加載程序 (bootloader) 或擦除數據。而不管使用哪一種方式,在手動安裝預覽版本後,您都將可以經過無線方式自動獲取將來全部後續預覽版和 Beta 版更新。請訪問 官方文檔 瞭解詳細信息。
當咱們接近最終產品時,咱們也將邀請消費者試用,屆時將開放 Android Beta 註冊。敬請關注後續信息,但目前 Android 12 還沒有提供 Beta 版本。
瞭解本次發佈的完整信息,請訪問 Android 12 開發者網站。