Andorid P 新特性及对应APP适配的关注点
在大部分用户们还在苦苦等待吃上Android奥利奥什么口味时,谷歌已经在春季公布了Android P的开发者预览版,已经支持Pixel、Pixel XL、Pixel2、Pixel2 XL设备的手动刷机包和模拟器。Android
P 引入一系列有关Android 系统的变更。不论应用针对的是哪个Android 版本,其中大部分变更会影响所有应用;不过部分变更仅影响针对Android P 开发的应用。这里摘取了7个与测试同学关系比较大的更新与改进。
首当其冲,就是对异型刘海屏的官方优化!
Android P支持最新的全面屏和刘海屏(不要再说丑啦,现在手机外观需要突破)。谷歌新增了 DisplayCutout类,来管理已确定的非功能区域。并新增了全新的窗口布局属性layoutInDisplayCutoutMode 来为刘海区域的内容进行布局。
毫无疑问这时目前在机型兼容性测试时急需划重点的更新,目前这个在开发者模式下有三种类型的刘海屏样式可供选择。
目前华为、OPPO、小米已经推出了几款刘海屏机型,覆盖高中端用户,应用在不同尺寸规格下的刘海屏支持和测试,是现在未来提高用户满意度方面的重要测试点,大家可以在Androidstudio中下载Android P Preview的模拟器来测试自己的app在不同刘海尺寸下的显示情况。
Wi-Fi RTT的支持
Android P 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi
Round-Trip-Time (RTT))的平台支持,并提供了RTT
API来辅助测量与支持RTT协议的wifi接入点的距离。这项功能可以应用于室内定位、导航、物联网交互,大幅提高了室内定位的精度,逛街购物又有了新的利器。
通知又见通知
Notification一直是谷歌近年来的更新重点,Android P增加了短信图像和急速回复功能。从8.0的通知分组、通知渠道,到现在9.0放出的通知更新,一步步的优化让我们逐步摆脱恼人的广告和无数堆砌的推送,这一点Android已经走在了iPhone前面。
屏幕旋转优化
还在为看视频、聊微信时,各种无意义的横竖屏切换而烦恼么。Android P为了避免这个囧境新增了一个模式,在导航栏处新增了一个旋转按钮,必要时用户可以手动触发屏幕旋转。
这个升级是对应用尤其是视频类应用适配及测试的一个挑战,原来的竖屏模式已经升级为旋转锁定模式,在关闭自动旋转时启用。此时APP不能单纯的锁定为竖向显示,在测试时需要注意下面几点
1. 注意机型使用实体导航键的适配情况,是否支持谷歌的最新特性
2.注意应用对应界面是否显示表明要在横向或纵向显示,如果开发设置了screenOrientation属性,则可忽略该新特性,行为与Android O一致
3.该模式涉及一个旋转建议的的概念,即上图导航栏给用户提示的旋转首选项,手机在顺时针90度时,显示旋转建议,点击后即可变为逆时针90度横向显示。谷歌官方给出一个表格总结了常见的旋转行为
在目前的使用过程中,个人感受这个功能用户理解稍显复杂,可能在后续的预览版中会有优化。
隐私隐私!!对后台应用再砍一刀!限制后台应用访问用的输入和传感器数据。
APP运行在后台后应用不得访问麦克风或摄像头,传感器不会接收到事件,如果要在后台使用这些数据,需要声明前台服务告知用户应用在后台运行。
在所测APP拥有后台导航功能、计步等使用传感器的功能时,测试人员应及时关注该场景。
应用兼容性变更
Android P针对一些非SDK函数和字段的使用进行了显示,无论是直接访问还是通过反射、JNI调用,都无法访问。目前在P的开发者预览版中谷歌还未完全实行该限制,APP在调用受限的SDK时会在log中打印提示例如:
测试同学在验证应用在新版本兼容性时可以使用一些自动化过滤手段来达到测试目的。
安全特性升级
划重点!在Android P中应用无法让多个进程共用一个webview数据目录,类数据目录一般存储 Cookie、HTTP 缓存以及其他与网络浏览有关的持久性和临时性存储。谷歌给出了多进程应用使用WebView的适配方案,测试同学在测试浏览器、视频、资讯类应用时需要多多关注该目录的适配情况。
按照谷歌发布的计划概览,到AOSP和OEM厂商发布最终的Android P,会经历5个开发者预览版本,预计到秋季第一个的9.0正式版就会发布。10月11月又会是异常抢先发布新机的竞争时期,一加、华为、三星、小米肯定会第一时间跟进最新的版本,到时的兼容性适配的测试任务和工作会相当繁重。作为测试人员,提前做好功课是必不可少的,有备无患,比开发走在技术细节的前面能更好的适应快速的版本迭代。希望本文能给测试小伙伴们提供些帮助。
顺便大家可以在留言猜想下Android P正式版命名。Marshmallow、Nougat、Oreo已经吃起,下一代会叫什么呢?
参考资料
https://developer.android.com/preview/index.html#compatibility