當前位置:
首頁 > 最新 > Android P 開發者預覽版首發!

Android P 開發者預覽版首發!

在上周的世界移動通信大會 (Mobile World Congress) 上,我們看到由開發者、設備廠商以及晶元合作夥伴組成的 Android 生態系統不斷為全球用戶創造美妙體驗。

今天,我們要向各位介紹下一個版本的操作系統 —— Android P 的首個開發者預覽版。該版本早期僅面向開發者發布,每一位開發者都是我們最信任的測評人。及時獲取您的反饋意見對我們至關重要,我們會根據您的反饋優化平台來更好地滿足您的開發需求。希望您可以儘早著手試用 Android P 預覽版的新功能和新 API,並把您的想法和建議通過留言的方式及時告訴我們。

預覽版的首發只是第一步 —— 我們在五月的 Google I/O 大會上將會有更多的分享,敬請關注!

值得在您的應用中嘗試的新功能

這裡簡要介紹一下這個開發者預覽版中幾項有趣的新功能,同時我們希望大家嘗試後提供反饋。

使用 WiFi RTT 進行室內定位

精確室內定位一直是應用開發者面臨的一個長期挑戰,但它為定位服務提供了新的機會。Android P 為 IEEE 802.11mc WiFi 協議添加了平台支持 (也稱為 WiFi 往返時間,RTT),這可以讓您在應用中使用室內定位。

擁有硬體支持的 Android P 設備可以讓您的應用使用 RTT API 測量與附近 WiFi 接入點 (AP) 的距離,設備不需要連接到 AP 便可以使用 RTT。為了保持隱私,只有手機能夠確定距離,AP 無法做到這一點。

通過測量從設備到三個或更多 AP 的距離,您可以以 1 到 2 米的精度確定設備位置。這種精確度允許您創建更多新的體驗:室內導航、基於位置的細粒度服務,例如,模糊語音控制 ( "打開這裡的燈" ) ;基於位置的資訊服務 ( "這些優惠是針對這個產品的嗎?" )。

凹口屏幕的支持

現在應用可以充分利用最新的全面屏設備來展示內容。我們在 Android 平台加入了對凹口屏幕的支持,並提供 API 供您使用,從而管理內容展示方式。

本功能可以在應用中無縫工作,系統會管理狀態欄的高度從而將您的內容與裁切區域分開。如果您擁有重要的沉浸式內容,則還可以使用新的 API 查看裁切形狀並創建全屏布局。您可以調用 getDisplayCutout() 來判斷本地設備是否具有凹口屏幕,然後再確定裁切區域的位置和形狀。平台添加了一個新的窗口布局屬性 layoutInDisplayCutoutMode 讓您告訴系統如何以及何時將您的內容相對於裁剪區域進行布局。

我們加入開發者選項來模擬任意設備上的裁切畫面,從而簡化凹口屏幕支持在您應用上的構建以及測試流程。我們建議您針對畫面裁切功能進行應用測試以確保內容顯示無誤。

內含沉浸式內容的應用可以使用帶裁切區域的全屏顯示功能。

消息通知的改進

在 Android P 中,我們特別重視改進通知的可視性和功能性。全新的 MessagingStyle 通知突出強調了來信人以及您可採用的回復方式。您可以顯示對話,附加照片和表情,甚至使用智能回復。具體細節請查看文末相關鏈接。

在 MessagingStyle 通知中,您可以顯示對話和智能回復 (左圖),甚至添加圖片和表情 (右圖)。

多攝像頭 API

現在,在運行 Android P 的設備上您可以通過兩個或更多實體攝像頭同時訪問視頻流。所以您可以在具有雙前置或雙後置攝像頭的設備上,實現單攝像頭無法實現的創新功能:如無縫變焦、散景和立體視覺。該 API 還允許您調用可以在兩台或更多台攝像頭之間自動切換的邏輯或混合攝像頭視頻流。支持多攝像頭的 Android P 設備將在未來一年面市,我們期待您的令人振奮的新創意。

攝像頭的其他改進還包括:利用新的會話參數來有效減少初始捕捉時的延遲,表面共享技術讓攝像頭客戶端無須重啟視頻流便可處理各種使用情況。此外,我們還添加了基於顯示器的閃光燈支持以及 API 和 OIS 時間戳的訪問許可權,以實現應用層面的圖像穩定和特效。

用於點陣圖和 drawable 的 ImageDecoder

Android P 引入了一種更簡單的方法來將圖像解碼為點陣圖或 drawable,即用 ImageDecoder 替代了 BitmapFactory。ImageDecoder 允許您從位元組緩衝區、文件或 URI 創建點陣圖或 drawable。它比 BitmapFactory 多出了幾個優勢,包括對精確縮放的支持,單步解碼至硬體存儲器,對解碼後處理的支持,以及對動畫圖像的解碼。

通過調用 setResize() 時指定目標尺寸,您可以解碼並縮放到一個確切的大小。您還可以調用 getSampledSize() 以特定採樣率獲取圖像尺寸,然後縮放到這些尺寸。如果您想要對圖像進行後期處理 (例如應用圓角蒙版或更複雜的效果) ,您可以給 ImageDecoder 傳遞任何 android.graphics.PostProcessor。您也可以使用 ImageDecoder.decodeDrawable() 直接創建 drawable。如果編碼圖像是動畫 GIF 或 WebP,則返回的 drawable 是新加入的 AnimatedImageDrawable 的一個實例。

HDR VP9 視頻、HEIF 以及媒體 APIs

Android P 增加了對 HDR VP9 Profile 2 的內置支持。現在,您可以在支持 HDR 的設備上,把啟用 HDR 功能的視頻內容從 YouTube、Play Movies 等資源站點上分享給您的用戶。我們還添加了對 HEIF 圖像編碼的支持,這種格式被廣泛使用,改善了照片壓縮效果,並減少了所需的存儲空間和網路流量。一旦確定您的應用與該數據格式兼容,可用於分享或者顯示,不妨嘗試利用 HEIF 為圖像儲存的格式。此外,您還可以通過 ImageDecoder 和 Bitmap Factory 將 jpeg 文件轉化為 heic 文件,從 jpeg 文件中獲取點陣圖。您亦可使用新支持庫 alpha 版本中的 HeifWriter,從字 YUV 節緩衝區、表面以及點陣圖中寫入 HEIF 靜態圖像。

同時,我們也正在加強和重構媒體 API,以使它們更易於開發和整合,請留意今年晚些時候更具體的發布內容。

JobScheduler 中的數據費用敏感度

JobScheduler 是 Android 的核心服務,幫助您在Doze、App Standby 和 Background Limits 狀態更改時,更好地管理定時任務及工作。在 Android P 中,JobScheduler 可以更好地為用戶處理與網路相關的任務,並與運營商單獨提供的網路狀態信號相協調。

任務現在可以聲明其估計的數據大小、信號預取以及指定詳細的網路要求 —— 運營商可以報告網路狀況是擁塞還是不計量,然後,JobScheduler 會根據網路狀態管理工作。例如,當網路擁塞時,JobScheduler 可能推遲大型網路請求。而在網路可以不計量使用時,則可以運行多種預載入作業 (例如,預讀標題) 來改進用戶體驗。

添加任務時,嘗試使用 setEstimatedNetworkBytes()、setIsPrefetch() 和 setRequiredNetwork() 來幫助 JobScheduler 妥善處理工作。執行作業時,請務必使用 JobParameters.getNetwork() 返回的 Network 對象,否則您將隱式地使用設備的默認網路,該網路可能不符合您的要求,從而導致意外的數據使用。

神經網路 API 1.1

我們在 Android 8.1 中引入了神經網路 API ,以加速 Android 上設備內置的機器學習。在 Android P 中,我們對這個 API 進行了擴展和改進,增加了對 9 個新操作的支持,它們分別是 Pad、BatchToSpaceND、SpaceToBatchND、Transpose、Strided Slice、Mean、Div、Sub 和 Squeeze。如果您擁有 Pixel 2 設備,則 DP1 版本現在包含一個帶加速的 Qualcomm Hexagon HVX 驅動程序,可用於量化模型。

自動填充的改進

在 Android P 中,我們繼續根據用戶和開發者的反饋改進自動填充框架。除了主要的 Bug 修正之外,此版本還包含新的 API,允許密碼管理程序 (Password Manager) 改進 Autofill 用戶體驗,例如更好的數據集過濾,輸入清理和兼容模式。尤其值得一提的是,兼容性模式對用戶體驗作出了很大的改善,因為在還沒有完全自動填充支持的應用程序中它允許密碼管理員採用基於輔助功能的方法,並且不會對性能或安全性造成影響。 所有新功能的詳細信息請查看文末相關鏈接。

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

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

不斷加強 Android 的基礎

在 Android P 中,我們將一如既往地致力於把 Android 打造成為最佳的開發平台。

應用安全

在 Android P 中,我們正在轉向更一致的用戶界面 (UI),以便跨應用和設備進行指紋驗證。Android 現在提供了一個標準系統對話框,以提示用戶觸摸指紋感測器,並且在文案和位置管理方面會根據不同的設備做相應的匹配。同時,應用可以使用新的 FingerprintDialog API 觸發系統指紋對話框。我們建議您儘快切換到這個新的系統對話框。

我們一直致力於將所有網路流量從明文 (未加密的 HTTP) 轉向 TLS,我們還將更改網路安全性配置 (Network Security Configuration) 的默認值,以阻止所有明文流量。如果您正在使用網路安全性配置,請通過 TLS 建立連接,除非您明確選擇在特定域名使用明文傳輸。

用戶隱私

為了更好地保證隱私,Android P 限制所有處於空閑狀態的應用對話筒、攝像頭和所有 SensorManager 感測器的訪問。當一個應用的 UID 空閑時,麥克風將會報告系統 「無音頻信號」,感測器將會停止報告事件。應用使用的攝像頭也會斷開連接,如果應用嘗試使用它們,則會生成錯誤。在大多數情況下,這些限制不會為現有應用帶來新的問題,但我們仍然建議您從應用中移除此類感測器請求。

從長遠來看,我們正在努力為每個網路中對應的 MAC 地址隨機化提供支持。 在有支持的 Android P 設備上,您可以通過新的開發者選項啟用此功能的實驗版,以進行測試。

Android P 還讓用戶控制是否允許訪問平台 build.serial 識別碼 (它被放在 READ_PHONE_STATE 許可權里) 。自 Android 8.0 以來,直接訪問此識別碼的功能已被棄用。想要訪問 build.serial 識別碼的話,您可以使用 Build.getSerial() 方法。

ART 性能提升

我們將繼續致力於通過 ART 運行時改善應用性能和效率提升。我們擴展了 ART 對執行配置文件的使用,以優化應用並減少已編譯應用代碼的內存佔用量。ART 現可使用配置文件信息在設備上重寫 DEX 文件,在多個人氣的應用中內存佔用減少高達 11%。我們期望這樣藉此減少系統 DEX 內存使用量並加快應用啟動時間。

Kotlin 優化

Kotlin 以經成為一流的 Android 開發語言。 如果您還未嘗試,還在等什麼呢?我們還在 Kotlin 性能方面進行長期投入,同時繼續加大對 Kotlin 的支持,包括優化 Kotlin 代碼性能。在 Android P 中,您會看到這項工作的第一個成果:我們已經改進了一些編譯器優化,尤其是那些針對循環的編譯器優化,以實現更好的性能。我們還將繼續與 JetBrains 合作,優化 Kotlin 生成的代碼。只需保持更新 Android Studio 上的 Kotlin 插件,您就能獲得所有最新的 Kotlin 性能更新。

電耗優化

在 Android P 中我們繼續優化 Doze、App 待命模式以及後台限制,進一步改善電池壽命。請務必以這些模式為應用進行測試並分享反饋。

針對現代 Android

Android P 由我們的長期戰略所塑造,以實現 Android 平台基礎和運行在其上的應用的現代化。正如我們最近宣布的那樣 ,Google Play 將要求所有應用在 2018 年 11 月之前針對 Android Oreo (targetSdkVersion 26 或更高版本) 進行更新,並支持將在 2019 年提供 64 位支持。

在做出這些改變的同時,Android P 將在安裝針對 Android 4.2 之前的平台 (targetSdkVersion 小於17) 的應用時通過對話框向用戶發出警告,未來平台將會繼續提高版本下限。我們鼓勵每一個 Android 開發者現在就著手計劃遷移至 API 26,並儘快開始遷移工作。我們期待著您的應用能夠充分利用現代 Android,並為用戶帶來更好的體驗。

通過公開 API 增強應用兼容性

用戶和開發者面臨的一個關鍵問題是應用兼容性 —— 確保應用從一開始就支持新平台,並讓用戶遠離崩潰風險,以及開發者不再需要針對兼容性問題做緊急更新。從 SDK 到 NDK 都使用 Android 公開 API 的應用擁有較好的兼容性,而使用私有 Android 介面和庫的應用則兼容性較差。

因此,隨著 Android P 的到來,我們開始逐步限制對特定非 SDK 介面的訪問許可權,並要求開發者 (包括 Google 內部的應用團隊) 使用公開 API 里的替代介面。如果您沒有公開的替代介面可用,請在文章下方留言 "【無公開 API 替代介面】+ 問題描述 ",我們希望確保開發者盡量流暢地走完這個過程,所以我們會根據您的反饋,確保新版本發布時隻影響那些可以輕鬆被開發者遷移到公共替代介面的 API。

簡單幾步開始使用

首先, 使您的應用兼容,讓您的用戶無縫過渡到 Android P。只需下載設備系統映像或模擬器系統映像,安裝您當前的應用並測試。您的應用應該能夠流暢運行,並妥善處理應用行為變動。在做出必要更新後,我們建議您立即發布到 Google Play,不必更改應用的平台版本。

請記住,您不須要擁有受支持的 Pixel 設備即可針對 Android P 進行測試或開發。對於大多數情況,我們強烈建議在 Android 模擬器上設置 Android 虛擬設備作為測試環境。如果您最近沒有嘗試過模擬器,請務必試試。您會發現它速度非常快,可以在 6 秒內啟動,使用方便,甚至可以模擬下一代屏幕。例如,長屏幕和帶攝像頭裁切區域的異型全面屏。

接下來, 將您應用的目標平台更改為 "P",並使用完整的 Android P 體驗運行。將應用的 targetSdkVersion 設置為 "P" 和 compileSdkVersion 設置為 "android-P",構建並測試。請務必閱讀針對 P 的應用行為變更,以查找您想要測試並可能需要調整的地方。

準備就緒後,深入 Android P 並了解在您的應用中可使用的諸多新功能和 API 。為了更方便地探索新的 API,請查看 API 差異報告以及 Android P API 參考。有關預覽版的時間線和支持資源的詳細信息,請查看文末 "Android P 開發者預覽版" 鏈接。

要開始圍繞 Android P 進行開發工作,請將 P Developer Preview SDK 和工具下載到 Android Studio 3.1 或使用最新的 Android Studio 3.2 Canary 版本。此外,我們還會發布 28.0.0 支持庫的 alpha 版本供您試用。

接下來會有什麼?

本次推出的 Android P 開發者預覽版包含一個帶有系統映像的更新 SDK,用於在官方 Android 模擬器、Pixel、Pixel XL、Pixel 2 和 Pixel 2 XL 設備上進行測試。

我們計劃在整個預覽階段中定期更新預覽系統映像和 SDK。此初始版本僅供開發者使用,不適用於日常或終端用戶,因此僅限手動下載和安裝 (請查看文末 "Android P 開發者預覽版" 鏈接)。

隨著我們逐步接近推出最終產品,也將會邀請消費者前來嘗試,屆時我們將通過 Android Beta 開放註冊。請繼續關注我們發布的細節,但請注意,Android Beta 目前不適用於 Android P。

您的反饋意見對我們來說非常重要,所以熱切歡迎您留言聯繫我們,分享您的想法、建議或問題。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 引力空間站 的精彩文章:

谷歌正式推出ARCore 1.0版

TAG:引力空間站 |