腾讯优测干货分享鹅厂专家详解Android N适配要点

Posted 腾讯Bugly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了腾讯优测干货分享鹅厂专家详解Android N适配要点相关的知识,希望对你有一定的参考价值。

Google即将发布的android7.0的预览版Android_N为我们增加了许多新的特性,其中包括多窗口的支持、通知栏支持直接回复、网络数据节省开关、以及新的DOZE模式等;下面我们就来谈一谈关于这些新功能的适配问题和需要注意的地方。


1.Doze(打盹模式)更加强大


该模式是在Android6.0中引入的,当用户设备未插电源、处于静止状态屏幕关闭时,该模式会推迟CPU和网络活动,从而增加电池寿命。


在Android_N中对这种模式进行了加强,当设备处于充电状态且屏幕已关闭一定时间后,设备会进入打盹模式并应用第一部分限制:关闭应用网络访问、推迟作业和同步。如果进入打盹模式后设备处于静止状态达到一定时间,系统则会对 PowerManager.WakeLock、AlarmManager 闹铃、GPS 和 Wi-Fi 扫描应用余下的打盹限制。无论是应用部分还是全部打盹限制,系统都会唤醒设备以提供简短的维护时间窗口,在此窗口期间,应用程序可以访问网络并执行任何被推迟的作业/同步。


这种情况倒也好办,要么就是让用户将自己的的应用加入白名单,


或则在代码中使用Intent的方式跳转到设置页面,让用户去设置;


Google推荐我们使用Schedule的方式来管理我们的任务,我们可以设置让这些任务在特定的时候才去执行,比如将任务设置运行在充电或则无限制的时候运行,如下就是加入一个网络无限制的任务:

 



Google在API 23中为我们加入了一个新的Action,我们可以通过调用这个Action跳转到指定页面指导用户设置白名单:

 




 

在Doze模式中还有一种Standby的模式,这个模式相对更严格,如果对于及时通信的软件在未加入白名单的情况下,处于该模式不能收到及时的提示,必须从该模式恢复才能收到,因此需要特别注意,我们可以从google的官方文档当中查到进入该模式的ADB指令:

    



将第二条指令中的true改为false即可恢复,这个便于开发和测试。


2.禁止一些广播的行为


在之前的Android系统中,我们开启一个监听事件的广播后,程序在事件触发的时候就会触发我们的广播,而且不值一个程序会收到通知,所以在Android_N中对CONNECTIVITY_ACTION、ACTION_NEW_PICTURE和ACTION_NEW_VIDEO三个广播进行了处理。


a) 面向 Android N 开发的应用不会收到 CONNECTIVITY_ACTION 广播,但是对于一个前台程序则不会受到限制例如:CONNECTIVITY_CHANGE。

b) 应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向 Android N 的应用。


未来的 Android 版本还可能会弃用其他隐式广播以及未绑定的后台服务。有鉴于此,您应避免依赖在清单文件中声明的接收器来侦听隐式广播或删除此依赖关系,以及避免或删除对后台服务的依赖关系。

 

3.权限机制的限制


 Android N 做了一些权限更改,包括用户帐户权限和向外部存储设备写入信息的新权限,这些更改可能会影响您的应用。下面概要列出了预览版中已发生更改的权限。

以上是关于腾讯优测干货分享鹅厂专家详解Android N适配要点的主要内容,如果未能解决你的问题,请参考以下文章

腾讯优测干货分享鹅厂专家详解Android N适配要点

腾讯优测优分享-Android适配中两个世界的碰撞——视觉&开发

腾讯优测优分享 | Android适配中的一些特殊情况小结

腾讯优测优分享 | Android适配中的一些特殊情况小结

腾讯优测优分享 | 适配路上,避免掉入“扫码调用相机”的坑

腾讯优测优分享 | 适配路上,避免掉入“扫码调用相机”的坑