Android N做了哪些改变

一、    性能改善

  1. Doze超级省电模式

手机在关屏同时没有充电的情况,在一段时间后会进入打盹状态,第一阶段会停掉同步、作业、网络等访问,第二阶段会停掉app的位置服务、wifi scanner、GPS、wake lock、AlarmManager 等服务。

会影响app的保活,尤其对那些需要接受消息类的app,引导用户开启白名单,Google 推荐使用GCM。

  1. 后台优化

广播:

静态注册CONNECTIVITY_ACTION 广播将失效,只有动态注册才行。Android 5.0上可以使用JobScheduler在指定的网络条件运行你的任务,还可以通过ConnectivityManager registerNetworkCallback()来监听网络状态。

ACTION_NEW_PICTURE,ACTION_NEW_VIDEO广播已经去除,当然应用可以通过ContentResolver来监听。Android N上面可以JobScheduler来监听

二、    NDK 试用改变

限制只能试用平台公共api,否则你的应用会crash,最好只使用NDK中包含的api,否则系统被定制了可能会找不到你要链接的so,其次使用第三方so的时候也要注意对方有木有试用非法的so.

如图:

三、    Screen Zoom

用户最低可以改变到屏幕宽度为320dp,所以app最好能适配sw320dp,当你的 compile target < android N 时,当用户改变屏幕显示大小时,会杀掉后台进程(你的app会被干掉哦)

四、    Language and Locale

支持多用户多语言环境,提供新的API: LocaleList.GetDefault(),可以获取所有用户的语言环境。

同时app多语言查找策略改变,当你的app中不在当前语言环境的resources时,会找最接近的语言代替,而不是直接使用默认语言代替。如:你的app的Resources中只包含 es,和zh_cn,当用户的环境是zh_tw时,会用zh_cn代替。并且还支持自定义语言目录。

五、    Multi-Window Support

Android N机器上默认就支持Multi-Window,同一个屏幕可以运行多个app窗口。有两种模式,split-screen mode和picture-in-picture mode。app开启和关闭这两个模式很方便,在AndroidManifest.xml配置一下即可。

android:resizeableActivity=["true" | "false"]

android:supportsPictureInPicture=["true" | "false"]

这种模式在平板电脑上面很合适。

六、Notifications

Android N提供一些新的关于Notifications的API。

RemoteInput.Builder:使得用户可以在通知栏直接回复,这个很适合社交类app和短信app,以及可以应用到用户反馈中。

NotificationCompat.Builder.setGroup():可以使同一个app通知放在同一个分组。

NotificationManager:能让你知道你目前发了多少条通知,怎样通知进行分组。

七、Data Saver

当用户开启流量节省后,会禁止app在后台使用收费网络流量数据。甚至在前台使用流量时也会发出警告。

ConnectivityManager.isActiveNetworkMetered(),

ConnectivityManager.isActiveNetworkMetered(),

查询是否开启流量节省模式,自己是否在用户白名单中(对自己例外)

ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED

监听用户开启流量节省模式

八、Network Security Configuration

能让app定制网络安全设置:

  1. Debug-only overrides自定义信用的CA)。
  2. Debug-only overrides自定义能调试你app信用的CA)
  3. Cleartext traffic opt-out(防止网络请求明文交互)
  4. Certificate pinning自定义只信用包含特定公钥CA)

这个特性,对于支付类软件、金融类和购物类等是福音啊,防止劫持,防止重定向。

这些配置不需要你改代码,只需要加上配置文件即可。

九、运行时模式

AOT、解释、JIT混合运行时模式

十、其他

部分支持ICU4J(能很好支持国际化本地化数据展示)。

支持java 8语言特性(lambda表达式可以使用啦) -- android 自己的编译器jack&jill支持java 8

总之:Android N为用户增加了电量管理、流量管理、内存管理、存储管理、通知管理等,提供更加可靠的安全能力,满足用户个性化需求,提高了app用户体验,改善手机使用性能,方便了app开发者。

参考链接:

https://developer.android.com/intl/zh-cn/preview/j8-jack.html

http://developer.android.com/intl/zh-cn/preview/samples.html

https://developer.android.com/intl/zh-cn/training/monitoring-device-state/doze-standby.html

http://www.pcpop.com/doc/2/2571/2571412.shtml

Android N做了啥的更多相关文章

  1. 当我们按下电源键,Android 究竟做了些什么?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云+社区专栏 相信我们对Android系统都不陌生,而Android系统博大精深,被各种各样的智能设备承载的同时,我们会否 ...

  2. 【Android】做一款类似我要当学霸里的学习监督的APP

    我要当学霸这款App有个学习监督的功能,当你启动它的时候,你将无法使用其他App,以此达到帮助人提高自觉性,起到监督学习的效果.最近和同学做了个小App,正好有这个功能,所以就来说说它是怎么实现的. ...

  3. Android手机做无线中继路由器

    为什么要拿手机做路由器?因为我现在每天要带着一个火柴盒大小的路由器(703n).它提供了一个f了q的无线网络,电脑,手机,平板等设备连接上这个无线网络之后之后就可以自由上twitter,看youtub ...

  4. 只能用Android studio做平台移植了! 在Windows10下, 开发Android。

    安装好IDE后, 会一直显示同步失败, 看看如下步骤: 需要注意的是: -> 安装NDK      自带的NDK版本有问题    自己去下一个15版本的 -> 按照系统提示一步一步安装其他 ...

  5. Android PopupWindow做的分享界面

    package com.tq.mbaexam.view; import java.util.ArrayList; import java.util.LinkedHashMap; import java ...

  6. android怎么做表格显示数据

    实现思路:最底层(父级)背景为黑色,最上层(子级)背景为白色,然后父子组件之间存在一丝间隔即可显示出类似边框的线. 本次主要利用Android中的TableRow等实现,其他类比也可以实现效果. &l ...

  7. 想做Android Wear开发?你得先搞明白这四件事

    手环和手表的腕上穿戴之争,随着Apple Watch发布和Android Wear不断完善而告一段落.尽管续航上略有缺陷,但手表以其类似手机可扩展的生态环境赢得了众多巨头的支持. Google曾透露, ...

  8. Android、iOS、和Web如何做灰度发布?

        主要参考了: https://www.zhihu.com/question/21714205     https://www.zhihu.com/question/28296375  一.概述 ...

  9. Android程序中--不能改变的事情

    有时,开发人员会对应用程序进行更改,当安装为以前版本的更新时出现令人惊讶的结果 - 快捷方式断开,小部件消失或甚至根本无法安装. 应用程序的某些部分在发布后是不可变的,您可以通过理解它们来避免意外. ...

随机推荐

  1. windows下利用virtual 安装 flask

    出处: https://segmentfault.com/a/1190000002450878 本文介绍Windows下如何从零开始搭建Python + Flask开发环境. 安装Python 2.7 ...

  2. matlab画带标记的折线图

    1.不带标记的 如: x=[1,5,3,7,4] plot(x) 2. 带标记 plot(x,'-*') '-s'  表示方格 '-p' 表示五角星 '-d' 表示菱形 '-h' 表示六角形 '-+' ...

  3. CURL命令报错:dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings解决办法

    Mac OS X 10.11.6, curl 命令报错,错误如下: dyld: lazy symbol binding failed: Symbol not found: _SSL_load_erro ...

  4. 01.线性表 ArrayList

    public class MyArrayList { //容量 ; //存放数组元素 private object[] _items; //数组大小 private int _size; //元素个数 ...

  5. 老电脑如果从windows7升级到windows10不断重启进不了系统,还是想用windows10,怎么办?

    先说一下我的配置:08年的acer aspire 5520g,很老的电脑,除了内存加到4g,其他都不变.官方只支持到windows7,并且官方说明该型号不在官方支持windows10之列. 之前win ...

  6. 还是this的问题

    var name = "The Window";    var object = {    name : "My Object",    getNameFunc ...

  7. 表单 阻止 技巧 JavaScript js

    阻止表单的提交,可以用return false 来进行阻止 长度不低于6,不高于20 if(username.length < 6 || username>20){ alert (&quo ...

  8. 【前端】原生event对象和jquery event对象的区别

    标准DOM event对象转换成 jQuery event对象 $(event) jQuery event对象转换成 标准DOM event对象 event.originalEvent

  9. Excel-漏斗图分析(差异分析)

    漏斗图适用于业务流程比较规范.周期长.环节多的流程分析,通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在.在网站分析中,通常用于转化率比较,它不仅能展示用户从进入网站到实现购买的最终转化率, ...

  10. C#利用HttpWebRequest进行post请求的示例(HTTPS)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...