这里简要介绍一下这个开发者预览版中几项有趣的新功能, 同时我们希望大家尝试后提供反馈
使用 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 替代了 BitmapFactoryImageDecoder 允许您从字节缓冲区文件或 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 功能的视频内容从 YouTubePlay Movies 等资源站点上分享给您的用户我们还添加了对 HEIF 图像编码的支持, 这种格式被广泛使用, 改善了照片压缩效果, 并减少了所需的存储空间和网络流量一旦确定您的应用与该数据格式兼容, 可用于分享或者显示, 不妨尝试利用 HEIF 为图像储存的格式此外, 您还可以通过 ImageDecoder 和 Bitmap Factory 将 jpeg 文件转化为 heic 文件, 从 jpeg 文件中获取位图您亦可使用新支持库 alpha 版本中的 HeifWriter, 从字 YUV 节缓冲区表面以及位图中写入 HEIF 静态图像
同时, 我们也正在加强和重构媒体 API, 以使它们更易于开发和整合, 请留意今年晚些时候更具体的发布内容
JobScheduler 中的数据费用敏感度
JobScheduler 是 Android 的核心服务, 帮助您在 DozeApp 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 个新操作的支持, 它们分别是 PadBatchToSpaceNDSpaceToBatchNDTransposeStrided SliceMeanDivSub 和 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 等)
来源: https://juejin.im/post/5aa09bf36fb9a028d140aa29