近日,谷歌向全球正式发布 Android 9 Pie,新版Android利用人工智能技术,让您的手机更加智能、简洁与人性化。
下面简要介绍下新特性:
以机器学习为核心,打造更为智能的手机
Android 9 赋予手机强大的学习能力:系统能够根据用户在使用过程中展露的习惯与偏好,进行自我学习与适应 —— 从强劲续航到人性化应用推荐,Android 9 都能想您所想,保障持久流畅的用户体验。
全新的 Android 仪表板
Google 也将在 Android P 中放入统计功能(Dashboard),就像仪表板依样让使用者可以从这里知道 app 的使用情况,例如多常使用某款 app、使用多久时间、通常何时使用等等,也可以在此限制自己的使用时间(App Timer),例如你一天限制自己使用 30 分钟的 Facebook,当你用了 30 分钟后,Facebook 就会变灰,提醒你使用时间已到。
动态电量管理
与 DeepMind 合作推出了动态电量管理特性,利用机器学习技术对系统资源进行有限分配,更专注于用户最常用的应用。如果您已经针对低耗电模式、应用待机模式以及后台限制对您的应用进行过相关优化,那么它就应该已经能够和动态电量管理特性完美配合。如果您暂时还未开始优化工作,请阅读电量管理官方文档,获取具体操作指南。
Slices
Slices 能够有效帮助用户节省操作时间,不需要通过全屏体验就能够使用应用的部分功能。借助配套的 UI 模板,Slices 能够将应用内容以高动态、富交互的形式插入到多个使用场景中,比如 Google Search 和 Assistant。请进一步了解如何在应用中构建 Slices。
App Actions
App Actions 是一种全新的应用推荐方式。开发者可以利用这个功能,让更多人看到自己的应用并极大提高用户参与度。借助机器学习技术,App Actions 能对应用的语义意图和使用场景进行分析,并根据分析结果在适当的时机向用户推荐您的应用。
文本识别与 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 中加入了凹口屏支持,让您的应用可以充分利用最新全面屏,展现应用的独特魅力。该功能可以在大部分应用中无缝工作,系统会通过调整状态栏高度将应用内容与屏幕缺口区域分开。如果您的应用含有沉浸式内容,您可调用 display cutout APIs 确认缺口形状与位置,然后请求围绕缺口进行全屏布局。
默认使用 HTTPS
为了将所有网络流量从明文 (未加密的HTTP) 逐步迁移至 TLS,更改了网络安全配置的默认设置,以阻止所有明文流量,强制应用通过 TLS 建立网降连接,除非开发者明确允许特定域名使用明文传输。
接着说下适配问题:
non-SDK接口的使用
一般来说,SDK 接口是指在 Android 框架软件包索引中记录的接口。 对非 SDK 接口的处理是 API 抽象化的实现细节;其会随时更改,恕不另行通。
https://developer.android.google.cn/reference/packages
Android P 引入了针对非 SDK 接口的新使用限制,无论是直接使用还是通过反射或 JNI 间接使用。 无论应用是引用非 SDK 接口还是尝试使用反射或 JNI 获取其句柄,均适用这些限制。
名单分类
Light grey list: targetSDK>=P时,警告;
Dark grey list: targetSDK=p时,不允许调用;
Black list:三方应用不允许调用;
名单查看:
https://android.googlesource.com/platform/frameworks/base/+/master/config/
挖孔屏适配
谷歌P版本提供了统一的挖孔屏方案和三方适配挖孔屏方案:
对于有状态栏的页面,不会受到挖孔屏特性的影响;
全屏显示的页面,系统挖孔屏方案会对应用界面做下移避开挖孔区显示;
已经适配的P的应用的全屏页面可以通过谷歌提供的适配方案使用挖孔区,真正做到全屏显示
总的来说,就是P版本已经坐了兼容,全屏显示和状态栏显示,都会避开挖空区域显示。
但注意对于沉浸式的显示要注意,避免挖空挡住UI布局,需要做好适配。
P版本三方适配挖孔屏方案
1、 新增挖孔屏挖孔尺寸和位置接口
2、新窗口布局模式,允许应用程序请求是否在挖孔区域布局:
layoutInDisplayCutoutMode值说明:
a)LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT:默认情况下,全屏窗口不会使用到挖孔区域,非全屏窗口可正常使用挖孔区域。
b)LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS:窗口声明使用挖孔区域
c)LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER:窗口声明不使用挖孔区域