移動行業在 2019 年創新不斷,隨着 5G 時代的到來與摺疊屏技術的成熟,智能設備正在邁向將來新時代,而 Android 更是處在顛覆創新的風口浪尖。經過與生態圈夥伴們的深度合做,咱們從軟件到硬件不斷進行突破和創新,力求爲全球億萬用戶打造最新的體驗與功能。html
今天,咱們正式推出 Android Q Beta 1 版本及預覽版 SDK ,歡迎各位開發者及早期用戶嚐鮮體驗。您可在 Pixel 設備上當即參與 Beta 1 試用計劃 (聽取 Pixel 用戶的熱情呼聲以後,咱們特別添加了 Piexl 和 Pixel XL 這兩個型號),並向咱們及時反饋您的使用感覺。請耐心閱讀下文,進一步瞭解 Android Q 的獨特魅力。此外,咱們將在今年 5 月舉辦 2019 Google I/O 開發者大會,屆時會有更多精彩與您分享, 期待與您相見!android
一直以來,Android 將數據安全與用戶隱私視爲重要使命。在平臺更新迭代的過程當中,咱們添加了許多安全特性,其中包括基於文件的加密、應用對敏感信息的訪問權限、攝像頭/麥克風後臺訪問、鎖定模式、加密備份等,並推出了 Google Play Protect 機制,每日掃描超過 500 億應用,時刻監測潛在安全威脅。Android Q 進一步提高了系統的安全防禦水平,持續爲用戶保駕護航。其中,Project Strobe 計劃負責推動大部分的安全優化與加強工做。git
給予用戶更多地理位置控制github
在 Android Q 中,用戶可進一步控制應用訪問設備地理位置的時間。在以前的幾個 Android 版本中,應用只有在請求並得到用戶贊成後,才能獲取設備當前的位置信息。算法
例如,外賣應用在送餐前詢問位置信息是合理的,用戶也許願意授予,可是當用戶沒有使用此應用時,地理位置信息就不必再被獲取,並且用戶或許也不情願授予這個權限。請閱讀 Android 官方文檔,瞭解更多技術細節,讓您的應用妥善應對新的權限管理模式。咱們將在接下來的幾個 Beta 版中陸續引入更多以用戶爲中心的優化項,請拭目以待。咱們的目標是當出現變動時,儘早向開發者發佈通知,並給予最大程度的支持,盡全力幫助開發者應對這些變動。api
隱私保護升級瀏覽器
除了位置權限的變動之外,咱們在隱私防禦方面也絕不鬆懈,確保流程公開透明,完善權限管控機制,多角度保護用戶的我的信息。安全
在 Android Q 中,用戶能夠更好地管理應用對共享文件的訪問權限。用戶可經過新的運行時權限容許應用訪問照片、視頻或音頻文件。此外,應用必需經過系統文件選擇器才能訪問下載文件,也就是說,訪問權限徹底由用戶掌控。Android Q 還針對外部儲存空間引入了一些變動,請務必仔細閱讀此文檔,確保應用正確使用外部儲存空間。性能優化
另外,咱們還發現後臺應用忽然跳轉至前臺,擋住當前應用的行爲讓用戶和開發者們頗爲煩心。爲了不應用頻繁打斷用戶操做,Android Q 將禁止後臺應用啓動 Activity。若是您的應用運行在後臺,但又須要當即引發用戶關注,例如來電或鬧鈴,請使用高優先級通知,並提供一個全屏 intent。請閱讀相關文檔,瞭解更多信息。網絡
咱們將限制應用訪問不可重設的設備識別碼,如 IMEI、序列號等。請閱讀《惟一標識符最佳作法》爲應用選擇最合適的標識符。您也能夠參閱官方文檔,獲取更多細節內容。此外,Android Q 默認啓用 MAC 地址隨機化功能,當設備鏈接到不一樣的 Wi-Fi 網絡時,系統會隨機生成不一樣的 MAC 地址 ——在 Android 9 Pie 中,該特性爲附加功能,開發者可自行選擇是否啓用。
咱們之因此提前公佈這些變動,爲的是給您預留充足的時間作好準備。與此同時,咱們也在加緊工做,指望儘早爲您提供相關細節內容。建議您仔細閱讀隱私變動相關文檔,並儘早着手測試工做。
Android Q 開創了全新的用戶互動模式,並讓應用間的切換更加流暢順滑。
適配摺疊屏和新型屏幕
智能設備已迎來摺疊新時代,這不只是對用戶體驗的顛覆創新,同時也爲移動設備的使用場景開啓了無限可能。爲了幫助開發者順利適配摺疊屏及大屏設備,Android Q 引入了多項改進,好比說咱們更新了 onResume 和 onPause 的工做模式,以便爲 multi-resume 提供更好的支持,另外咱們還添加了當應用得到焦點後的通知功能。最後,爲了讓您更好的管理應用在摺疊屏及大屏上的顯示,咱們也更新了 resizeableActivity 屬性的功能。爲了讓儘快着手應用的開發和測試工做,咱們正在緊鑼密鼓地對模擬器進行升級。請留意咱們於近期公佈的相關信息。
Sharing Shortcuts
當用戶想在另外一個應用上與朋友們分享照片等內容時,他們但願整個流程是快速流暢的。爲此,Android Q 新增了一項名爲 Sharing Shortcuts 的特性,容許用戶直接跳轉至另外一個應用進行分享。開發者首先須要發佈一個分享目標,該目標隨後會在應用中啓動一個包含內容附件的特定 Activity,並經過 share UI 顯示給用戶。由於分享目標已提早發佈,因此 share UI 可在 Activity 啓動後當即加載分享內容。
設置面板
咱們已經將 Android 9 Pie 中的 Slices 技術完美整合到 Settings Panel API 中,如今您可利用該 API 直接在應用界面內顯示系統設置。
在 Android Q 中,咱們擴展了 Android 網絡鏈接堆棧的功能,並添加了一些新的網絡鏈接 API。
網絡鏈接權限、隱私及安全
此前,大部分網絡掃描 API 在獲取 COARSE 位置權限後便能被調用,可是從 Android Q 開始,咱們提升了藍牙、蜂窩網絡以及 Wi-Fi 的安全規定,要求這些 API 必須具有 FINE 權限。若是您的應用只需創建 P2P 鏈接或建議可用網絡,請查看優化後的 Wi-Fi API,它們能幫助您簡化網絡鏈接,並且不須要位置權限。
在 Wi-Fi 安全方面,Android Q 除了會爲每一個 Wi-Fi 地址隨機生成不一樣的 MAC 地址覺得,還添加了對新一代 Wi-Fi 標準協議 (WP3 和 Enhanced Open) 的支持,全方位提高家庭、工做及公共網絡環境的安全性。
優化 P2P 及網絡鏈接
在 Android Q 中,咱們對 Wi-Fi 堆棧進行了重構,這不只提高了應用在隱私及性能方面的表現,並且對許多常見用例也有必定的優化做用,如 IoT 設備管理,顯示可用網絡等,無需請求位置權限。
網絡鏈接 API 讓您能夠更輕鬆地管理 IoT 設備,並使用配置、下載和打印等 P2P 功能。應用經過將 SSID 和 BSSID 中的偏好設置指定爲 WiFiNetworkSpecifiers, 間接發起網絡鏈接請求;系統負責掃描附近的 Wi-Fi,並在 Wi-Fi 選擇器中顯示匹配結果。當用戶選擇網絡後,系統會自動設置網絡鏈接。
網絡建議 API 容許應用用戶顯示推薦的網絡選項。應用會對網絡和證書進行排名,並將該列表做爲 WifiNetworkSuggestions,以此來間接發起網絡鏈接。隨後,系統便會根據用戶的歷史偏好,從列表中挑選出最合適的選項,並創建無縫鏈接。
Wi-Fi 性能模式
您如今能夠在 Android Q 中啓用高性能、低延遲的自適應 Wi-Fi 模式,這樣一來,即便是在網絡延遲比較敏感的場景下,如實時遊戲、主動呼叫等,依舊能保障流暢的用戶體驗。
如需啓用新的性能模式,請經過 WIFI_MODE_FULL_LOW_LATENCY 或 WIFI_MODE_FULL_HIGH_PERF 調用 WifiManager.WifiLock.createWifiLock()。在這些模式下,Android 平臺將配合設備固件協同工做,實現最低能耗。
新的圖片格式: 動態深度
許多移動設備的攝像頭利用算法處理被攝對象、前景與背景三者的距離,經過前景背景虛化,模擬出有層次的淺景深效果。攝像頭首先會捕獲圖片上多個點的深度元數據,而後在圖片上應用靜態虛化效果,最後再丟棄以前收集的元數據。
從 Android Q 開始,應用可在支持設備上請求生成動態深度圖片,文件內包含與深度元素相關的 JEPG 與 XMP 元數據,並內嵌一組深度圖與置信圖。
"JPEG + 動態深度" 圖片能夠幫您在應用中實現模糊或散景效果。在將來,您甚至能夠利用這些數據生成 3D 圖片或者支持 AR 攝像用例。但願在咱們的努力下,動態深度格式能成爲惠及整個生態圈的開放格式。與此同時,咱們還在與各大設備廠商展開密切合做,進一步普及 Android Q (以及將來版本系統) 設備對該圖片格式的採用率。
新的音頻及視頻解碼器
Android Q 現已支持開源視頻解碼器 AV1,媒體供應商只需更少的帶寬就能將高質量視頻內容傳輸至 Android 設備上。咱們還添加了對 Opus 音頻格式的支持。Opus 編碼器能自動識別輸入信號是語音仍是音樂,而後據此選擇優化的編碼模式。此外,用戶也可在支持 HDR 10+ 的 Android Q 設備上,播放高動態範圍視頻。
MediaCodecInfo API 可幫助開發者更輕鬆地斷定 Android 設備的視頻渲染能力。您可調用 VideoCodecCapabilities.getSupportedPerformancePoints() 獲取現有解碼器所支持的文件大小和幀率,以確保設備可以播放最佳質量的視頻內容。
原生 MIDI API
針對使用 C++ 代碼處理音頻文件的應用,Android Q 添加了原生 MIDI API,讓應用能夠經過 NDK 與 MIDI 設備進行數據傳輸。應用可在音頻的回調函數中使用非阻塞讀取來檢索 MIDI 數據。歡迎你們查看參考示例應用及其源代碼。
基於 Vulkan 的 ANGLE 渲染引擎
咱們正在努力行動爭取爲 Vulkan 設備帶去可更新的標準化 OpenGL 引擎。Android Q 在 Vulkan 的基礎上爲 Android 設備添加了 ANGLE 支持。ANGLE 是一款專爲高性能 OpenGL 功能實現打造圖像抽象層。有了 ANGLE 以後,使用 OpenGL ES 進行開發的應用和遊戲即可直接體驗 Vulkan 帶來的強勁性能與高穩定性,並了在 Android 設備上部署統一且不受供應商限制的 ES 實現。咱們計劃在 Android Q 中引入 OpenGL ES 2.0 支持,此外,針對 ES 3.0 的支持也在密集籌劃中。
從此,咱們會繼續拓展 Android 設備上的 ES 實現,爲開發者帶去更多的 OpenGL 功能,錯誤修復和性能優化項。請閱讀相關文檔,瞭解 Android 對 ANGLE 的現有支持,具體操做以及後續發展計劃。若是您想在應用內測試 ANGLE 初期支持,請在設置中啓用開發者選項。心動不如行動,不妨當即上手試一下吧!
隨時隨地,盡享 Vulkan
Vulkan 是一款面向 3D 圖形渲染推出的革命性 API,具有低消耗、高性能、跨平臺等優點,咱們將繼續擴展 Vulkan 在 Android 平臺上的應用範圍,努力將其打形成一款支持範圍廣、一致性高的圖形 API。目前,咱們已多家設備廠商達成合做,有望在運行 Android Q 或更高版本系統的設備上加入 Vulkan 1.1,其中,64 位設備爲硬性要求,而對於 32 位設備則爲推薦配置。經過與生態圈夥伴的開放合做,咱們但願在未來爲應用和遊戲開發者們提供一套標準的高性能圖形 API。
自 2017 年推出神經網絡 API 以來,咱們持續投入大量精力,在優化現有功能的基礎上,積極探索新的應用場景。咱們在 Android Q 中新增了 60 個算子,其中包括 ARGMAX、ARGMIN、量化 LSTM,以及大量性能優化項,爲模型加速奠基了堅實的基礎,如目標檢測模型和圖像分割模型。目前,咱們正在和硬件合做夥伴以及主流機器學習框架提供商 (如 TenserFlow) 展開積極合做,共同推動神經網絡 API 1.2 優化和支持工做。
ART 性能
Android Q 爲 ART 運行時新添了多項改進。開發者無需進行任何操做,即可有效縮短應用的啓動時間,減小內存消耗。
自從 Android Nougat 開始,ART 便引入了配置文件引導型優化機制,經過識別並預編譯頻繁執行的代碼,達到縮短應用啓動時間的目的。爲了進一步加快應用的啓動速度,Google Play 如今除了 APK 文件以外,還會交付一套基於雲的配置文件。它是一套已通過匿名化處理的彙總 ATR 配置文件,容許 ART 在應用開始運行以前就預編譯一部分代碼,這有助於顯著提高優化進程的總體效率。基於雲的編譯文件適用於全部應用,並且運行 Android P 或更高版本系統的設備目前已提供相關支持。
應用安全
BiometricPrompt 是 Android 推出的統一驗證框架,它能爲生物識別提供層面的支持。Android Q 擴展了對人臉識別等被動驗證手段的支持,並加入了隱式和顯式兩個類型的身份驗證流。在顯式驗證流中,用戶必須在可執行環境 (TEE) 下明確確認執行事務操做;隱式驗證流則主要負責被動驗證這類較爲輕便的事務。此外,咱們還改進了設備證書的版本回滾,若有需求,您可從新生成證書。
Android Q 還添加了 TLS 1.3 支持。做爲 TLS 標準的一次重大更新,TLS 1.3 協議在安全性、性能和隱私方面都進行了大幅優化。根據咱們收集到的數據顯示,與 TLS 1.2 相比,1.3 版本的安全網絡鏈接速度加快了 40%。默認狀況下,全部 TLS 鏈接均啓用 TLS 1.3。更多細節,請參考官方文檔。
兼容公開 API
如何確保應用可在全部版本的 Android 系統上流暢運行咱們聚焦的另外一個問題。若是您的應用調用了非 SDK 接口,可能會致使用戶遭遇系統崩潰及開發者須要緊急發佈修復的風險。把全部應用遷移到公開 API 是咱們從 Android P 就開始的一項長期任務,而 Android Q 更是進一步加大管控力度,收緊相關限制。咱們深知從應用中移除非 SDK 接口是一項耗時費力的艱鉅挑戰,所以咱們向您提早公佈非 SDK 接口限制的最新通知,但願您能做好萬全準備,妥善應對。
在 Android Q 中,受限制的非 SDK 接口數量更多了,建議您在開發時選用相等功能的公開 SDK 接口。爲了幫助您成功過渡,並防止應用出現崩潰等問題,僅當應用的目標平臺爲 Android Q 時,這些限制纔會生效。咱們會根據收集到的開發者請求,繼續增長可替代的公開 API,若是現有的公開 API 沒法解決您的問題,請及時向咱們反饋。
還有一點很重要: 請您對應用進行非 SDK 接口使用方面的測試。推薦您使用 StrictMode 方法 detectNonSdkApiUsage() 來檢測違規調用,它會在應用經過反射或 JNI 訪問非 SDK API 時發出警告。即便 API 當前尚處於豁免狀態 (灰名單),咱們仍是建議您儘早做長遠打算,儘可能避免在應用中使用此類 API,以下降潛在的不兼容風險。請閱讀開發者指南,瞭解 Android Q 中的限制詳情。
現代化 Android
爲了確保全部應用都能及時享用 Android 在安全和性能方面的最新優化,咱們從未中止前進的腳步。從下半年開始,Google Play 將要求全部新應用及更新將 targetSdkVersion 設置爲 28 (Android 9 Pie)。除此之外,當用戶首次運行 API 低級低於 23 (Android Marshmallow) 的應用時,會受到來自 Android Q 的警告信息。請閱讀《符合 Google Play 的目標 API 級別要求》,順利開展應用的遷移工做。
從今年下半年開始,全部應用都必須知足 Google Play 64 位要求。若是您的應用使用原生 SDK 或開發庫,請務必將它們升級到符合 64 位要求的版本。請閱讀官方文檔,獲取更多技術細節和具體指導。
Android Q 新添加的重要隱私特性可能會對您的應用形成影響,所以咱們建議您當即着手測試工做。請您尤爲注意外部儲存變動、新的位置請求狀態、後臺應用啓動限制、設備識別碼限制這幾項變動。更多信息,請閱讀隱私文檔。
請從應用商店下載您的應用,並在運行 Android Q Beta 的設備或 Android 虛擬設備上測試用戶流程,確保應用運行順暢,界面美觀,並妥善處理 Anadroid Q 行爲變動。若是您發現任何問題,咱們建議您在當前應用中進行修復,無需變動目標平臺級別。請閱讀遷移指南,瞭解具體操做步驟及關鍵時間節點。
下一步,請儘快將應用的 targetSdkVersion 設置爲 'Q' ,測試應用是否可順利支持 Android Q 中的安全與隱私特性,以及其餘行爲變動。
當您準備就緒後,請進一步探索 Android Q 並瞭解可在應用中使用的諸多新特性及 API。 更多內容,請閱讀 API 變化報告,Android Q Beta API 參考文檔或開發者指南。您亦可前往 Android Q Beta 開發者官網,閱讀版本說明,或經過反饋頁面向咱們報錯。
若是您想爲 Android Q 開發應用,只需將 Android Q Beta SDK 和工具下載到 Android Studio 3.3 (或更高版本),並按照步驟配置開發環境。 若是您想享用 Android Q 行爲變動的最新修復,建議您使用 Android Studio 3.5 (或更高版本)。
獲取步驟十分簡單,您可當即加入測試版計劃,咱們將向 Pixel 設備推送 Android Q Beta 版的系統更新 (今年,三代 Pixel 設備都在支持範圍內 —— Pixel 3, Pixel 2, 甚至是初代 Pixel!)。點擊此處下載適用於 Pixel 設備的系統鏡像文件。若是您沒有 Pixel 設備,則可經過 Android Studio 中的 SDK Manger 下載最新版本的模擬器鏡像文件,並安裝至 Android 模擬器。
咱們計劃在預覽版階段按期更新預覽版系統鏡像文件和 SDK,並在未來的幾個 Beta 版中,陸續推出更多新功能,敬請期待!
您的反饋意見對咱們很是重要,因此歡迎您在下方評論區留言聯繫咱們,分享您的使用感覺、想法與建議。謝謝!
點擊這裏前往 Android 開發者官方文檔查看更多