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. java文件编程总结

    文件编程之一就是文件操作,就是新建,删除,复制,更名 新建文件用createNewFile()方法,要处理IOException异常 新建文件夹用mkdirs()方法 删除一个文件和一个空的文件夹直接 ...

  2. 3.多线程NSOperation

    1.NSOperation的基本操作 使用NSOperation的两个子类,NSInvocationOperation 和 NSBlockOperation 创建操作,然后将操作添加到队列中去执行 / ...

  3. ios学习-制作一个浏览图片的Demo

    一.项目要求:制作一个浏览图片的Demo,要求包含夜间模式,以及改变图片大小,能够显示不同的图片描述 二.开发步骤: 1.在storyboard上添加一个空白的View,然后添加”设置“按钮,添加im ...

  4. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

  5. android控件的对齐方式(转)

    <?xml version="1.0" encoding="utf-8"?> <!-- android:layout_above 将该控件的底 ...

  6. PostgreSQL的OGG -- bucardo

    bucardo是PostgreSQL数据库中实现双向同步的软件,可以实现PostgreSQL数据库的双master的方案,不过bucardo中的同步都是异步的,它是通过触发器记录变化,程序是perl写 ...

  7. 【转】Eclipse快捷键 10个最有用的快捷键

    转载地址:http://www.open-open.com/bbs/view/1320934157953 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但 ...

  8. CryptoJS DES加密

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equ ...

  9. Countries in War -POJ3114Tarjan缩点+SPFA

    Countries in War Time Limit: 1000MS Memory Limit: 65536K Description In the year 2050, after differe ...

  10. Markdown使用指南(2)—— 键盘符号说明

    符号 中文名 英文名 ! 叹号 exclamation mark/bang ? 问号 question mark , 逗号 comma . 点号 dot/period/point : 冒号 colon ...