Android 9 Pie 現已面向全球正式發佈!

做者:Dave Burke, 工程部副總裁html

經歷一年多的開發和數月以來早期用戶的反覆測試,最新 Android 平臺 —— Android 9 Pie 終於正式面向全球發佈!

Android 9 利用人工智能技術,讓您的手機更加智能、簡潔與人性化。請經過本文了解 Android 9 的全部新特性,同時也但願各位開發者可以藉助 Android 9,全面提高應用性能,打造出色體驗,讓您的應用與用戶走得更近!android

在 Android 9 的開發過程當中,十分感謝你們的積極反饋 ,咱們收到了超過 1000 條報錯與特性請求 。共有超過 140,000 名開發者經過 Android Beta 項目試用了以前發佈的開發者預覽版,此外,更有 7 家頂尖合做設備廠商相繼推出了支持 Android P Beta 版的旗艦機型,幫助咱們獲取全球早期 Beta 用戶的反饋。編程

從今天起,咱們將在 Android 開源項目 (AOSP) 中發佈 Android 9 源碼,同時開始向 Pixel 用戶推送系統更新通知,其它更多 Android 設備預計會在接下來的幾個月內陸續收到通知。api

咱們會繼續努力將 Android 打形成一流的開放平臺,助力全球開發者取得商業成功。指望各位可以利用 Android 9 這個新平臺並藉助 Google Play 中新增的功能,開發出優質的應用和遊戲,經過最有效和安全的方式,爲全球用戶帶去精彩體驗!安全

Android 9 終版新功能

以機器學習爲核心,打造更爲智能的手機服務器

Android 9 賦予手機強大的學習能力:系統可以根據用戶在使用過程當中展露的習慣與偏好,進行自我學習與適應 —— 從強勁續航到人性化應用推薦,Android 9 都能想您所想,保障持久流暢的用戶體驗。網絡

動態電量管理app

咱們與 DeepMind 合做推出了動態電量管理特性,利用機器學習技術對系統資源進行有限分配,更專一於用戶最經常使用的應用。若是您已經針對低耗電模式應用待機模式以及後臺限制對您的應用進行過相關優化,那麼它就應該已經可以和動態電量管理特性完美配合。若是您暫時還未開始優化工做,請閱讀電量管理官方文檔,獲取具體操做指南。框架

Slices

Slices 可以有效幫助用戶節省操做時間,不須要經過全屏體驗就可以使用應用的部分功能。藉助配套的 UI 模板,Slices 可以將應用內容以高動態、富交互的形式插入到多個使用場景中,好比 Google Search 和 Assistant。請進一步瞭解如何在應用中構建 Slices機器學習

App Actions

App Actions 是一種全新的應用推薦方式。開發者能夠利用這個功能,讓更多人看到本身的應用並極大提升用戶參與度。藉助機器學習技術,App Actions 能對應用的語義意圖和使用場景進行分析,並根據分析結果在適當的時機向用戶推薦您的應用。

咱們將在接下來幾周內公佈具體操做細節,幫助開發者瞭解如何在應用內處理一個或多個用戶意圖。一旦應用啓用該推薦功能後,系統就會根據用戶請求,在衆多 Google 和 Android 交互入口推薦您的應用。

文本識別與 Smart Linkify

在 Android 9 中,咱們對識別文本的機器學習模型進行了擴展,使其能夠藉助 TextClassifier API 識別出相似日期或航班號這樣的信息。此外, Smart Linkify 容許開發者經過 Linkify API 使用文本識別模塊完成多項操做,好比對用戶可採起的操做提出建議。Smart Linkify 讓系統在文本識別精確度與速度上都有明顯的提高。

神經網絡 API 1.1

Android 9.0 對神經網絡 API 進行了擴展與改進,進一步優化 Android 對機器學習硬件加速的支持。神經網絡 API 1.1 共增長了對 9 個新算子的支持,它們分別是 Pad、BatchToSpaceND、SpaceToBatchND、Transpose、Strided Slice、Mean、Div、Sub 和 Squeeze。TensorFlow Lite 就是一個已經用上此 API 的典型機器學習框架。

人機交互,就是這麼容易

「讓智能手機更加智能」 是咱們向前邁進的重要一步。可是,如何把握好用戶與科技的關係 —— 讓科技以人爲先,這一點也一樣關鍵。在 Android 9 中,咱們大幅度改進了用戶界面,讓它更簡潔,也更易於操做;對於開發者而言,這些變動可以讓用戶更加容易搜索,使用和管理您的應用。

全新系統導航

通過一年多的努力, Android 9 迎來了全新的系統導航,讓多任務切換及關聯應用探索變得更加簡單。您只須要向上滑動屏幕就能夠全屏預覽最近使用過的應用,輕觸預覽頁後即可以切換至所選應用。

凹口屏支持

Android 9 中加入了凹口屏支持,讓您的應用能夠充分利用最新全面屏,展示應用的獨特魅力。該功能能夠在大部分應用中無縫工做,系統會經過調整狀態欄高度將應用內容與屏幕缺口區域分開。若是您的應用含有沉浸式內容,您可調用 display cutout APIs 確認缺口形狀與位置,而後請求圍繞缺口進行全屏佈局。另外,咱們還加入了開發者選項來模擬任意設備上的凹口形狀,從而極大簡化了應用支持凹口屏幕所需的構建以及測試流程。

△ 內含沉浸式內容的應用能夠在凹口屏設備上實現全屏顯示
通知與智能回覆

Android 9 進一步改善了通知的實用性與可操做性。消息類應用能夠調用新的 MessagingStyle API 來顯示對話,附加照片和表情,或者提供智能回覆建議。再過不久,您就可使用 ML Kit 在應用中生成智能回覆。

△ 在 MessagingStyle 通知中,您能夠顯示對話和智能回覆 (左) 或添加圖片和表情 (右)

文本放大鏡

Android 9 中添加文字放大鏡工具 (Magnifier widget),以提高文本選擇方面的用戶體驗。因爲該放大器提供了能夠在文本上方拖拽的文本放大面板,因此有助於用戶精準地定位光標或文本選擇手柄。該功能能夠靈活運用在全部附加在窗口的視圖上,個性化小部件和定製文本呈現均是不錯的應用場景。並且,該放大器工具還能夠提供任何視圖或界面的放大版本,而不只僅是文本。

請閱讀《 Android P 中的新文本特性》,瞭解更多有關放大鏡以及文本特性的相關信息,如 Precomputed Text、行高以及基線文本對齊。

用戶安全與隱私

統一身份驗證對話框

生物傳感器被普遍應用於身份認證,爲了保障用戶在不一樣感應器和應用間可以得到一致的體驗, Android 9 引入了統一的身份驗證對話框,提示用戶進行操做。應用再也不須要自行設計對話框,而是經過調用 BiometricPrompt API 觸發系統對話框。除指紋識別之外 (包括屏幕下指紋識別),該 API 還支持面部識別以及虹膜識別。

若您的應用仍在使用自行設計的指紋識別對話框,咱們建議您儘快轉用 BiometricPrompt API。

高可信度用戶確認

Android 9 新增了高可信度用戶確認 (Android Protected Confirmation) ,該功能經過可信執行環境 (TEE) 確保提示文本被真實用戶確認。只有在用戶成功確認以後,TEE 纔會簽發該文本,讓應用進行後續驗證步驟。

增強密鑰安全保護

咱們還加入了一個新的 KeyStore 類 —— StrongBox,並提供相應的 API 來支持那些提供了防入侵硬件措施的設備,好比獨立的 CPU,內存以及安全存儲。您能夠在 KeyGenParameterSpec 裏進行設置,決定是否把密鑰交給 StrongBox 安全芯片來保存。

DNS over TLS

Android 9 內置對 DNS over TLS 的支持:若網絡 DNS 服務器提供支持,設備會自動將 DNS 查詢升級爲 TLS 查詢。用戶能夠經過更改 「網絡和互聯網」 設置下的隱私 DNS (Private DNS) 模式來管理 DNS over TLS 行爲。自行運行 DNS 查詢的應用能夠經過調用新的 LinkProperties.isPrivateDnsActive() API 來獲取 DNS 模式相關信息。請閱讀《Android P 開發者預覽版支持 DNS over TLS》,獲取進一步信息。

默認使用 HTTPS

爲了將全部網絡流量從明文 (未加密的HTTP) 逐步遷移至 TLS,咱們更改了網絡安全配置的默認設置,以阻止全部明文流量,強制應用經過 TLS 創建網降鏈接,除非開發者明確容許特定域名使用明文傳輸。

基於編譯器的安全緩解措施

Android 9 將進一步擴展編譯器級別的安全緩解措施,藉助運行時危險行爲監測進一步增強平臺安全建設。Android 9 經過控制流程完整性 (CFI) 技術解決了代碼重用 (code-reuse) 和任意代碼執行兩大漏洞,並擴展了 CFI 在媒體框架和其它關鍵安全組件內的使用範圍,如 NFC 與藍牙。同時,Android 9 還針對 Android 常見內核的 LLVM 編譯添加了 CFI 內核支持。

此外,Android 9 還將整數溢出檢查器 (Integer overflow sanitizer) 的使用範圍擴展到其餘庫,以緩解內存損壞與信息泄露這兩個問題。咱們調高了檢查器在如下兩類庫中的優先級:1) 存在歷史漏洞,2) 須要處理複雜且不受信任的輸入,如 libui、libnl 和 libmediaplayerservice 一類的庫都在調整範圍內。

用戶隱私

Android 9 新加入多項機制,進一步增強了對用戶隱私的保護。系統禁止全部處於空閒狀態的應用對話筒、攝像頭和全部 SensorManager 傳感器的訪問。當應用的 UID 空閒時,麥克風將會報告 「無音頻信號」,傳感器將會中止報告事件,應用使用的攝像頭也會斷開鏈接,並在應用試圖訪問時生成錯誤。在大多數狀況下,這些限制不會對現有應用形成新的問題,但建議您從應用中移除此類傳感器請求。

Android 9 還讓用戶控制是否容許訪問平臺 build.serial 識別碼 (它被 READ_PHONE_STATE 權限保護) 。自 Android 8.0 以來,直接訪問此識別碼的功能已被棄用。您能夠調用 Build.getSerial() 方法,訪問 build.serial 識別碼。

瞭解所有隱私變動

感官新體驗: 攝像和影音的全面升級

多攝像頭 API 以及其它改進

從 Android 9 開始,您能夠在支持多攝像頭 API 的設備上經過兩個或更多實體攝像頭同時訪問視頻流;在配有雙前置或雙後置攝像頭的設備上,實現單攝像頭沒法實現的創新功能:如無縫變焦、散景和立體視覺。該 API 還容許您調用能夠在兩臺或更多臺攝像頭之間自動切換的邏輯或混合攝像頭視頻流。

攝像頭的其餘改進還包括:利用新的會話參數 (Session parameters) 來有效減小初始捕捉時的延遲,表面 (Surface) 共享技術讓攝像頭客戶端無須重啓視頻流即可處理各類場景。此外,咱們還加入了相關 API,提供基於屏幕閃光燈支持及 OIS 時間戳的訪問權限。

HDR VP9 視頻以及 HEIF 圖像

Android 9 增長了對 HDR VP9 Profile 2 的內置支持。如今,您能夠在支持 HDR 的設備上,把啓用 HDR 功能的視頻內容分享給您的用戶。

另外,咱們還在添加了對 HEIF (heic) 圖像編碼的平臺支持。 HEIF 是目前比較流行的一種的壓縮格式,它改善了圖片的壓縮效果,並減小了圖片的儲存空間以及網絡流量。引入平臺支持後,開發者能更加方便地從後臺服務器傳輸並使用 HEIF 圖像。一旦肯定您的應用與該數據格式兼容,可用於分享或者顯示,不妨嘗試將 HEIF 設定爲應用內圖片的儲存格式。此外,您還能夠經過 ImageDecoder 將 jpeg 文件轉化爲 heic 文件,或經過 Bitmap Factory 從 jpeg 文件中獲取位圖。您亦可以使用 AndroidX 庫中的 HeifWriter從 YUV 字節緩衝區、Surface以及位圖中寫入 HEIF 靜態圖像。

使用動態處理加強音頻

開發者能夠調用 Dynamics Processing API 對音頻進行動態處理,經過分離出特定頻率的聲音,下降過大的音量,或者加強太小的音量,來改善應用的音頻質量。好比說,即使說話者聲音小,離麥克風遠,並且外界環境十分嘈雜,您的應用依然能夠有效捕捉並他/她的聲音,並進行相應優化。該 API 提供了多聲場、多頻段的動態處理效果,包括一個預均衡器、一個多頻段壓縮器,一個後均衡器以及一個串聯的音量限制器。

用於位圖和 drawable 的 ImageDecoder

ImageDecoder API 讓開發者能夠經過一種更爲簡單的方式將圖像解碼爲位圖或 drawable。ImageDecoder 容許您從字節緩衝區、文件或 URI 建立位圖或 drawable。它相比 BitmapFactory 有如下幾個優點:支持精確縮放,支持單步解碼至硬件存儲器,支持解碼後處理,以及動畫圖像解碼。請獲取進一步信息

網絡鏈接與位置

使用 Wi-Fi RTT ,進行室內定位

Android 9 爲 IEEE 802.11mc Wi-Fi 協議添加了平臺支持 (也稱爲 Wi-Fi 往返時間,RTT),這可讓您在應用中使用室內定位功能。在提供硬件支持的 Android 9 設備上,在啓動位置服務並勾選 「容許獲取地理位置信息」 選項後,應用就可使用 RTT API 測量與附近 Wi-Fi 接入點 (AP) 的距離。設備不須要鏈接到 AP 即可以使用 RTT,並且爲了保護隱私,只有手機可以肯定距離,而 AP 不能夠。

經過測量從設備到三個或更多 AP 的距離,您能夠計算設備位置至 1 到 2 米的精度。這種精確度容許您建立更多新的體驗:室內導航、基於位置的細粒度服務,例如,模糊語音控制 ( "打開這裏的燈" ) ;以及基於位置的資訊服務 ( "這個產品有優惠活動嗎?" )。

JobScheduler 中的數據費用敏感度

JobScheduler 是 Android 的一項核心服務,它能夠幫助您針對低耗電模式應用待機模式以及後臺限制,妥善進行各類任務的調度。在 Android 9 中,JobScheduler 能夠更好地幫助用戶處理與網絡相關的任務,並與運營商單獨提供的網絡狀態信號相協調。任務如今能夠聲明預估數據量、信號預取以及指定詳細的網絡要求 —— 運營商能夠報告網絡情況是擁塞仍是不計量,而後 JobScheduler 會根據網絡狀態管理做業。例如,當網絡擁塞時,JobScheduler 可能推遲大型網絡請求;而在網絡能夠不計量使用時,則能夠運行多種預加載做業 (例如,預讀標題) 來改進用戶體驗。

用於 NFC 支付和安全交易的 Open Mobile API

Android 9 將 GlobalPlatform Open Mobile API 的實現添加至平臺中。在支持的設備上,應用可使用 OMAPI API 訪問安全元素 (SE) ,以啓用智能卡支付等安全服務。硬件抽象層 (HAL) 提供了必要的 API,用於枚舉多種可用的 Secure Elements (如 eSE, UICC 等)。

更強勁的性能表現

ART 性能提高

Android 9 藉助 ART 運行時顯著提升了應用的性能表現與運行效率。咱們擴展了 ART 對執行特徵的使用,以優化應用並減小已編譯應用代碼的內存佔用量。ART 現可以使用特徵文件信息在設備上重寫 DEX 文件,幫助多個常見應用的內存佔用減小高達 11%。咱們指望藉此減小系統 DEX 內存使用量並加快應用啓動時間。

Kotlin 優化

Kotlin 是 Android 開發的一等編程語言,若是您還何嘗試,還在等什麼呢?咱們在 Kotlin 性能方面進行了長期資源投入,同時持續加大對 Kotlin 的支持,如優化 Kotlin 代碼性能。在 Android 9 中,您會看到這項工做已初見成效 —— 咱們已經改進了一些編譯器優化,尤爲是那些針對循環的編譯器優化,以實現更好的性能。咱們還將繼續與 JetBrains 合做,優化 Kotlin 生成的代碼。只需保持更新 Android Studio 上的 Kotlin 插件,您就能得到全部最新的 Kotlin 性能更新。

今天,咱們還在 Android 9 中發佈了更新後的 API —— API 28 SDK (rev. 6),在部分最經常使用的 API 內加入可空值註解 (nullability annotation)。咱們會在近期發佈相關文章,提供更多細節信息,敬請期待。

現代化的 Android

在 Android 9 中,咱們繼續投入大量資源,進一步打造更爲現代的 Android 平臺與運行應用,進而推進咱們在安全性、性能和穩定性這三方面長遠目標的實現。

咱們在去年就已經宣佈過 Google Play 將要求全部應用在 2018 年 11 月以前針對 Android Oreo (targetSdkVersion 26 或更高) 進行更新。所以,若您的應用目標平臺版本早於 Android 4.2 (API等級17),用戶在安裝您的應用時,系統會彈出警告對話框。請閱讀遷移指南相關文檔。咱們期待着您的應用可以充分利用現代 Android 爲用戶帶來更好的體驗。

簡單幾步,便可上手

因爲 Pixel 用戶從今天起就能夠開始使用 Android 9,而其餘設備也會在接下來的幾個月陸續收到更新推送,所以儘快適配您的應用至 Android 9。您只需在 Android 9 Beta 設備或者模擬器上使用 Google Play 安裝您目前的應用並進行測試,請確保您的應用在測試過程當中運行流暢,界面美觀,並可以妥善處理 Android 9 的各項行爲變動

同時,請您留心應用調用非 SDK 接口的狀況。Android 9 限制了一些特定非 SDK 接口的訪問權限,所以您須要減小應用對這些接口的依賴。請閱讀《後續更新 | 減小使用非 SDK 接口以提高穩定性》,瞭解詳細信息。

在完成必要更新以後,咱們建議您當即將應用發佈至 Google Play,暫時無需更改應用的目標平臺版本。這能幫助您在保障用戶體驗的同時,繼續利用 Android 9 API 優化應用性能並將其逐步遷移至目標平臺。

利用 Android 9 特性和 API,進一步優化您的應用

當您準備就緒後,請盡情探索 Android 9,並利用新特性與 API 讓您的應用臻於完美。

首先,請將官方版 API 28 SDK 、最新的開發工具與映像文件下載至 Android Studio 3.1,或者使用 Android Studio 3.2 最新版本,而後將項目的 compileSdkVersion 和 targetSdkVersion 更新至 API 28。在更改完目標平臺版本以後,請確保您的應用支持全部的行爲變動。

在您準備好後,請將 APK 更新發布至 Google Play。咱們建議您使用 Google Play 中的 beta 測試功能,先獲取一小部分用戶的早期反饋,而後再逐漸進行全量發佈。

訪問 Android 9 官方網站,閱讀文檔並獲取更多相關信息。點擊收看視頻或者前往 Google I/O Android 播放列表,瞭解 Android 9 爲開發者準備的精彩新亮點。

即刻升級設備,體驗 Android 9

從今天開始,Pixel 設備將陸續獲取 Android 9 的更新推送。

其它加入 Beta 項目的設備,如 Sony、小米、HMD、Oppo、Vivo、一加和 Essential 以及全部符合要求的 Android One 設備預計會在今年秋末收到更新推送。與此同時,咱們也在和其餘合做夥伴展開合做,但願在今年推出更多新 Android 9 設備或升級現有設備以支持新系統。

此外,適用於 Pixel 設備的系統映像現可供下載

請前往 Android 開源項目資源庫中的 Android 9 板塊,獲取更多 Android 9 的相關資源。

下一步

Android 9 發佈之際,開發者預覽版也就正式結束了。咱們將在不久後關閉預覽版報錯渠道,可是請各位繼續向咱們提供反饋!若是您遇到任何有關 Android 9 的問題,請經過 AOSP 反饋功能提交新的錯誤報告

另外,咱們計劃放慢 Android Beta 項目的步調,並移除項目內全部機型。若是您想繼續在 Pixel 設備上體驗預覽版 Android 系統,請點擊此處註冊,以便繼續獲取相關項目的信息。

"再次感謝你們此前對預覽版和公測版的大力支持。每一位開發者和早期用戶都爲 Android 9 的誕生提供了必不可少的力量,幫助咱們將 Android 9 打形成爲卓越平臺,爲開發者和用戶帶來精彩體驗。謝謝!"

點擊這裏前往 「Android Developers 官方文檔」 查看更多相關信息

相關文章
相關標籤/搜索