今天,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 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
本次 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