Android P正式釋出,你需要儘快做適配了
作者|覃雲
今天,Android 開發者部落格宣佈正式向全球釋出 Android 9.0,代號為 Android Pie,最新的原始碼也將在 Android 開源專案(AOSP)中釋出。正如之前預想的一樣,Android P 仍然沿用之前的甜品命名法則:
-
2009 年 4 月:Android 1.5,代號 Cupcuke
-
2009 年 9 月:Android 1.6,代號 Donut
-
2009 年 10 月:Android 2.0/2.1 ,代號Éclair
-
2010 年 5 月:Android 2.2 ,代號 Froyo
-
2010 年 12 月:Android 2.3 ,代號 Gingerbread
-
2011 年 2 月:Android 3.0,代號 Honeycomb
-
2011 年 10 月:Android 4.0,代號 Ice Cream Sandwich
-
2014 年 11 月:Android 5.0 ,代號 Lollipop
-
2015 年 10 月:Android 6.0 代號 Marshmallow
-
2016 年 8 月:Android 7.0,代號 Nougat
-
2017 年 8 月:Android 8.0,代號 Oreo
Android Pie 新特性
Android P 的新功能在今年 Google I/O 大會的時候已經公佈了,相信開發者在預覽版的時候已經嘗試,主要功能有:
-
機器學習能力,系統能通過使用者的習慣和偏好進行自適應學習,做到人性化推薦;
-
動態電池管理,可根據應用程式的最近使用頻率和頻率,幫助系統確定應用程式資源請求的優先順序,開啟省電模式後,系統會對所有應用程式設定限制;
-
文字識別能力,利用機器學習和 TextClassifier API 可識別日期這樣的資訊;
-
神經網路 API 1.1,v9.0 對神經網路 API 進行了優化和擴充套件,神經網路 1.1 將支援 Pad,BatchToSpaceND,SpaceToBatchND,Transpose,Strided Slice,Mean,Div,Sub 和 Squeeze;
-
支援凹凸屏,現在你可以呼叫 display cutout APIs 確認缺口形狀與位置,然後請求圍繞缺口進行全屏佈局了;
-
安全和隱私,Android 通過呼叫 BiometricPrompt API,支援指紋識別、面部識別和虹膜識別,系統還將所有處於空閒狀態的應用對話筒、攝像頭和 SensorManager 感測器的訪問;
-
Wi-Fi RTT 支援室內定位,Android 9 為 IEEE 802.11mc Wi-Fi 協議添加了平臺支援,以後你就能在室內定位了。
更多詳情請檢視:https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html
開發者需要儘快適配 Android P
本次 Google 釋出的新功能主要是針對 Android 使用者,但作為 Android 開發者,你需要儘快對 Android P 進行適配,因為從 Android 9.0 開始,Google 對非 SDK 的 API 的限制從 NDK 擴充套件到 Java,這意味著任何基於非官方 API 打造的第三方 App 將無法在 Android 9.0 中執行,Google 將完全禁止訪問隱藏的 API。
此前,Google 曾表示這樣做的目的是為了提高 Android 系統的穩定性,會減少了很多第三方軟體的廣告外掛和帶病毒的惡意軟體,使應用程式的介面更加簡潔,執行更加流暢與安全。
從 Android P 開始,非 SDK 方法與欄位的使用將受到限制,Android 開發者將無法對其進行訪問——無論通過直接、反射或者 JNI 等方式。如果加以嘗試,你會看到 NoSuchFieldException 或者 NoSuchMethodException 等錯誤提示。
Google 表示如果你的應用程式目前仍依賴於非 SDK 介面,則應儘快著手向 SDK 備選方案進行遷移。
如果你在 SDK API 得到對應擴充套件之前無法停止使用非 SDK 介面,請通過 Google 的 Bug 追蹤器提供相關資訊。另外,如果你擔心自己的應用可能受到影響,請注意關注介面相容性警告資訊。
最後,Google 也表示將會發布官方指南以幫助你瞭解如何從非 SDK 介面遷移至官方支援方案,敬請關注。
相關連結
Bug 追蹤器:https://developer.android.com/reference/android/os/StrictMode
Android P 對非 SDK 限制的最新通知:
https://android-developers.googleblog.com/2018/06/an-update-on-non-sdk-restrictions-in.html