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. C# socket通信

    最近在研究socket,今天看到很好的一篇关于socket通信的文章,故收藏了,慢慢琢磨. 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: 1.TCP/IP层次模型 当然这里 ...

  2. Silverlight动态生成控件实例

    刚学习Silverlight,做了一个动态创建控件的实例 实现结果:根据已有的控件类名称,得到控件的实例化对象 实现思路1:就是定义一个模板文件,将类名做为参数,在silverlight中使用Srea ...

  3. SQLServer 游标 (A)

    游标 游标分为客户端游标和服务器端游标.Sql通过游标可以对一个结果集进行逐行处理.对于使用服务器端游标的过程有:声明.打开.读取.关闭.释放. 1 声明游标 1.1 SQL-92标准的声明 Decl ...

  4. MFC 修改各种控件的背景颜色、字颜色和字体

    今天主要总结一下有关MFC 中静态编辑框(StaticEdit).编辑框(Edit)和按钮(Button)的背景颜色.字颜色和字体. 我的程序运行结果如下: 由上图我们知道修改的地方有:1.把Stat ...

  5. Linux_用户级_常用命令(4):cp

    Linux_用户级_常用命令之cp 开篇语:懒是人类进步的源动力 本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! Linux常用命令第二集包含命令:cp 格式 cp  [-optio ...

  6. Java数据结构之字符串模式匹配算法---Brute-Force算法

    模式匹配 在字符串匹配问题中,我们期待察看源串 " S串 " 中是否含有目标串 " 串T " (也叫模式串).其中 串S被称为主串,串T被称为子串. 1.如果在 ...

  7. Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you are Angry.Think Twice.Act Wise.

    Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you ...

  8. LabVIEW类方法浏览器-Class Method Browser

    随着LabVIEW的类编程应用增多,当打开较多的VI进行编辑时候,添加该类对应的VI方法到程序后背板上操作显得繁琐(需要在Project浏览器或类浏览器或库浏览器中找到该类的方法VI,然后再拖到程序背 ...

  9. ubuntu 设置 默认的JDK路径

    首先查询有多少种JDK已经被安装了 sudo update-alternatives --list java 其次 配置你想默认的JDK sudo update-alternatives --conf ...

  10. scoi 2008 && bzoj 1076 奖励关

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3223 思路:15?好,状压,OK. 这是转移方程 if((s[k]&j)==s[k] ...