导读
北京时间2018年3月8日,谷歌Android P开发者预览版在万众瞩目中发布,华为专家为广大开发者及各大加固厂商解读P版本中那些不容错过的新特性。华为终端开放实验室也将围绕P版本开展一系列的测试、交流活动,欢迎关注!
Android P 应用适配新特性
1、Private API
Android P 禁止应用通过反射调用系统hide标注的类、方法和属性,加入黑名单的私有接口被反射调用会返回null或者出现异常。
从目前的情况来看黑名单是空的,所有的私有接口都放在浅灰名单和深灰名单中,该特性对应用的影响取决于黑名单中的API List,需要进一步跟踪黑名单API List的变化。
2、挖孔屏适配
应用可以充分利用最新的挖孔屏设备来展示内容。Android P 加入了对挖孔屏幕的支持,并提供相关 API接口。
本功能会管理状态栏的高度从而将内容与裁切区域分开。如果有重要的沉浸式内容,还可以使用新的 API 查看裁切形状并创建全屏布局。开发者可以调用 getDisplayCutout() 来判断本地设备是否具挖孔屏,然后再确定裁切区域的位置和形状。另外,Android P添加了一个新的窗口布局属性 layoutInDisplayCutoutMode 让开发者告诉系统如何以及何时将内容相对于裁剪区域进行布局。
Android P 版本加入开发者选项来模拟任意设备上的裁切画面,简化挖孔屏支持在应用上的构建以及测试流程。开发者可针对画面裁切功能进行应用测试以确保内容显示无误。
3、FLP/WiFi/GeoFence
应用使用Google Play Services的FLP和Geofence接口在后台定位将受到管控,位置数据上报频率将降低到每半小时一次,与Android O 版本的控制策略一致,主要对海外使用Goolge的FLP和Geofence接口的导航类和运动健康类应用有影响。
4、多摄像头 API
Android P 提供可以通过两个或更多实体摄像头同时访问视频流的能力。开发者可以在具有双前置或双后置摄像头的设备上,实现单摄像头无法实现的创新功能:如无缝变焦、散景和立体视觉。该 API 还允许调用可以在两台或更多台摄像头之间自动切换的逻辑或混合摄像头视频流。
同时,摄像头的其他改进还包括:利用新的会话参数来有效减少初始捕捉时的延迟,表面共享技术让摄像头客户端无须重启视频流便可处理各种使用情况。此外,P版本还添加了基于显示器的闪光灯支持以及 API 和 OIS 时间戳的访问权限,以实现应用层面的图像稳定和特效。
5、Improving Calling Experience
Android P 版本对该特性进行了扩展,支持不同APP的电话并发;Telecom可以跟踪所有应用的active call,但只有一个应用具有呼叫焦点,并支持在所有的通话中自由切换;此外应用可以将OTT Call通话记录写在系统通话记录中。
6、Call Handover Support
在Android P 版本使用过程中,用户在使用系统通话时,可以切换到其他支持该特性的应用通话,此特性可以增强系统和应用的通话体验。
7、HEIF图片格式支持
Android P 添加了对 HEIF 图像编码的支持,这种格式被广泛使用,改善了照片压缩效果,并减少了所需的存储空间和网络流量。如果开发者应用与该数据格式兼容,可用于分享或者显示,可以尝试利用 HEIF 为图像储存的格式。此外,开发者也可使用新支持库 alpha 版本中的 HeifWriter,从字 YUV 节缓冲区、表面以及位图中写入 HEIF 静态图像。
8、Action&Slice关键特性
Android P 增加了Action与Slice两个关键特性。
Action即服务直达,可以让用户更快捷地使用应用提供的一些服务。
Slice类似于卡片,能够实现加强版的桌面wiget(富语义的呈现模板、各种输入方式)。
应用开发者可依据实际需求开发独特的Action和Slice,系统可以收集应用的Action和Slice。在推荐、搜索、语音助手以及负一屏等场景使用时,可以让用户更快捷地使用应用开发者提供的一些服务及卡片。
9、通知样式和通知快速回复
Android P 将在通知中增加消息快速回复(Remoteinput:setChoices)功能,该功能的出现将提升即时通讯类应用的消息通知体验。
10、Crypto provider删除
从Android P开始,Crypto JCA provider功能将被去掉,调用SecureRandom.getInstance(“SHA1PRNG”, “Crypto”) 将会报NoSuchProviderException错误。
未进行适配的应用将出现crash以及功能无法正常使用的情况。
11、前台服务权限新增
Android P 增加了应用调用前台服务权限的限制,如果应用想使用前台服务需要申请FOREGROUND_SERVICE权限,该权限属于普通权限,如果不申请该权限就直接启动前台服务会出现SecurityException提示。
该特性仅对已经适配到 Android P 系统的应用有影响。
12、通过Build.serial获取方法删除
当应用程序需要验证手机序列号时,该应用必须申请READ_PHONE_STATE权限,Android P 让用户来控制是否允许应用访问平台Build.serial识别码,应用可通过Android P 新增的Build.getSerial() 接口来获取手机序列号。
该特性仅对已经适配到 Android P 系统的应用有影响。
13、共享WebView数据目录取消
Android P 不再支持应用程序跨进程共享单个WebView数据目录的功能,这也就意味着如果应用有多个使用WebView,CookieManager或android.webkit包中的其他API进程时,当出现第二个进程调用WebView方法时,该应用将出现崩溃。
未进行适配的应用将出现崩溃的情况。
14、LocalOnlyHotspot
Android P 新增应用API以实现本地协同的多个设备进行内容共享。应用程序可使用该API建立本地SoftAP(不可以共享internet上网),该功能可实现多个应用程序共享同一个LOHS。
通过共享同一个LOHS,多个设备之间不仅可以实现协同播放,还可以进行游戏的局域对战,增强了多个设备之间同个应用程序的互动性。
详细内容请查看以下链接
Android P 开发者预览版:
https://developer.android.google.cn/preview/index.html
Android Developers 官方文档:
https://developer.android.google.cn
华为终端开放实验室围绕P版本兼容性的开放服务
1、华为终端开放实验室P版本兼容性测试即将上线
为促进各大手机应用和加固企业对Android P版本的兼容适配,华为deveco平台将于3月中旬开放P版本的兼容性评测功能。为各大应用与P版本的适配工作进行免费测试和提供改进意见。
2、“华为终端开放实验室社区”上线
如果您有任何技术上的问题请进入华为终端开放实验室论坛板块参与讨论
链接:http://club.huawei.com/forum-3353-1.html
3、安卓P版本兼容性主题活动
华为-谷歌 P Lab对外适配交流会初定4月中旬在北京举行。后续将围绕Android P版本举行一系列相关的线上线下活动和沙龙,敬请期待~