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. CEGUI0.8.4例子

    #define GLUT_DISABLE_ATEXIT_HACK#pragma comment(lib,"glew32.lib")#include<stdlib.h># ...

  2. 使用C#反射中的MakeGenericType函数,来为泛型方法和泛型类指定(泛型的)类型

    C#反射中的MakeGenericType函数可以用来指定泛型方法和泛型类的具体类型,方法如下面代码所示这里就不多讲了,详情看下面代码一切就清楚了: using System; using Syste ...

  3. 浮动【电梯】或【回到顶部】小插件:iElevator.js

    iElevator.js 是一个jquery小插件,使用简单,兼容IE6,支持UMD和3种配置方式,比锚点更灵活. Default Options _defaults = { floors: null ...

  4. 使用tmpfs作为缓存加速缓存的文件目录

    使用tmpfs作为缓存加速缓存的文件目录 [root@web02 ~]# mount -t tmpfs tmpfs /dev/shm -o size=256m[root@web02 ~]# mount ...

  5. Linux:-杀进程的技巧

    <---kill进程的技巧---> 1.杀掉某个关键字的进程 pgrep -f 2.批量杀掉某个关键字的进程 pkill - "name" 3.批量杀掉多个关键字的进程

  6. python查找空格和中文

    前言 图片或者文件夹下,命名不规范,有中文或者有空格.这个脚本批处理查找,并输出到 txt中方便修改,也可以扩展为 直接脚本删除空格等.目前只用在Windows上,mac没有测试,不知道能不能行,有需 ...

  7. stack栈

    栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶 ...

  8. SpringMVC框架下的拦截器

    在eclipse的javaEE环境下:导包.... web.xml文件中的配置: <?xml version="1.0" encoding="UTF-8" ...

  9. ML-分类与逻辑回归

    布尔分类(binary classification)问题: 训练集:$S=\{(x^{(i)}, y^{(i)})\}$ 输入:特征向量$x$ 期望输出:$y\in\{0, 1\}$ 这里使用的假设 ...

  10. repeater留言板[转]

    做了一个网站,其中的在线留言板块是用Repeater来显示留言的,这样可以用少的代码还实现多的功能,但是不知道怎么分页,要是留言过多就会使页面变的很长,能过查看众多网友的经验,知道用PagedData ...