android 7.0变化
一、加强版的低电耗模式
条件:1未插电源;2屏幕关闭;(N与6.0的区别就在于N在手机非静止时也可进入低电耗模式)
作用过程及方式:1充电状态;2屏幕关闭一定时间;进入一级低电限制:关闭网络,推迟CPU作业。
3在上述基础上再静止一定时间:进入全低电耗模式:扫描PowerManager.WakeLock、AlarmManger、GPS、WIFI的低电耗设置。
在此期间受到限制的应用都会在隔一段时间后的窗口期来执行其推迟的作业工作。
二、后台优化
由于耗电问题,N删除了三项隐式广播
1.CONNECTIVITY_ACTION
单次的网络切换即会导致大多数注册了该监听的应用唤醒并同时处理。
2.ACTION_NEW_PICTURE
3.ACITONG_NEW_VIDEO
单次拍照录像也会导致注册该监听的所有应用唤醒。
修改方式:
1前台应用可以使用BroadcastReciver在主线程监听CONNECTIVITY_CHANGE。无法收到CONNECTIVITY_ACTION。
2无法收到2 3两项广播,及时在N之前的版本
替代方案:
JobScheduler。
三、权限更改
1文件的所有者不能放宽其文件的读写权限。
MODE_WORLD_READABLE/MODE_WORLD_WRITEABLE将抛出SecurityException。(可用原生FILE API来修改,但google强烈反对)
2传递软件包网域外file://URI 可能无法访问。分享私有文件推荐使用FileProvider。
3将下载位置设置为公共位置的旧版本仍然能够使用COLUMN_LOCATION_FILENAME访问其其路径,但强烈反对。访问DownloadManager公开的文件应使用ContentResolver.openfileDescriptor()。
四、应用间共享文件
N禁止应用向外公开file://URI。若要达到应用间共享文件,使用FileProvider,发送content://URI,并授予临时访问权限。
五、无障碍改进
对代码没有太大影响。
六、屏幕缩放
系统可设置屏幕密度。
当设备密度发生改变时:
1. 23以下(含)后台进程讲自动终止(和系统处理OOM一样),前台进程则会收到configurationChanged(就像屏幕方向发生改变)。
2. 面向N的则会收到configurationChanged
本功能基本不需要改变就能支持,但要注意:
1. 你的应用可以在宽度sw320dp的设备充分运行。
2. 注意你与密度有关的缓存资源,建议保存这些资源的元数据来决定是否需要刷新数据
3. 尽量避免使用xp单位
七八九十 设置中的视觉设置,NDK,Android for Work,注释保留
没用到,暂不归纳。
十一、其他注意事项:
1 在N的设备上运行 面向低级别API开发的应用,密度改变时系统依旧终止后台进程,应保证可正常处理此情况,否则用户从最近使用记录中恢复应用时会导致崩溃。使用DDMS终止进程来模拟此情况进行测试。
2.N以上应用可以正常处理密度变化,可改变Setting>Display>Font size随后在最近记录中恢复应用来测试。
3.修复部分主线程网路请求没Exception的BUG
4.Debug.startMethodTracing()输出到共享储存空间的包名目录的特定目录中,不在需要WRITE_EXTERNAL_STORAGE
5.Binder储存发送大数据将引发RuntimeException
6.View未在窗口时发布Runnable任务,该任务将排队到附加到窗口后执行。
7.N上,DELETE_PACKAGES应用调用PackageInstaller.uninstall()返回 STATUS_PENDING_USER_ACTION。
android 7.0变化的更多相关文章
- Android 5.0 API
Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新功能.本文旨在介绍其中最值得关注的新 API. 如果您有已发布的应用,请务必看一看 Android 5.0 行为变更,了解您的应 ...
- Android 5.0 API新增和改进
开始开发 要构建 Android 5.0 版应用,您必须先下载 Android SDK,然后使用 SDK 管理器下载 Android 5.0 SDK 平台和系统映像. 更新您的目标 API 级别 要进 ...
- Android 6.0 运行时权限处理完全解析
一.概述 随着Android 6.0发布以及普及,我们开发者所要应对的主要就是新版本SDK带来的一些变化,首先关注的就是权限机制的变化.对于6.0的几个主要的变化,查看查看官网的这篇文章http:// ...
- android 7.0 学习笔记(一)
导读 增强的Doze模式 后台优化 Data Saver 一.增强的Doze模式 Android N对Android M引进的Doze模式进行了进一步的增强,变化体现在两个方面.一方面是降低了进入Do ...
- 有史来最大改变 Android 5.0十大新特性
有史来最大改变 Android 5.0十大新特性 2014.10.16 14:51:31 来源:腾讯数码作者:腾讯数码 ( 0 条评论 ) 距离Android系统上一次重大更新不到一年的时间,谷歌 ...
- 【译】Android 6.0 Changes (机翻加轻微人工校对)
Android 6.0 Changes In this document Runtime Permissions Doze and App Standby Apache HTTP Client Rem ...
- 谈谈Android 6.0运行时权限理解
前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做“棉花糖”(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授权的不合理,现在6. ...
- Google Android 6.0 权限完全解析
注:本文只针对Google原生Android系统有效, 小米魅族等手机有自己的权限机制, 可能不适用 一.运行时权限的变化及特点 新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是 ...
- Android 4.0 事件输入(Event Input)系统
参考:http://blog.csdn.net/myarrow/article/details/7091061 1. TouchScreen功能在Android4.0下不工作 原来在Android2. ...
随机推荐
- 在easyui的treeGrid中添加checkbox(jquery)
jsp界面,也可用在aspx.html等前台界面中: <script type="text/javascript"> function show(checkid){ v ...
- Volley之 JsonRequest 解析JSON 数据
ReqestQueue 和 JsonRequest String jsonUrl = "http://ip.taobao.com/service/getIpInfo.php?ip=63.22 ...
- 黑马程序员——OC基础 三种特性之封装
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三种特性之一封装 (一)set方法和get方法 1) set方法 1&g ...
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- 【1】springmvc4 + servlet3 零配置全注解入门项目helloword
自从servlet3.0支持注解,使得javaweb项目使用全注解成为可能. 注解化将成为javaweb的发展方向.包括spring去年推出的spring-boot也是全部使用注解. 代码:https ...
- PCA and kmeans MATLAB实现
MATLAB基础知识 l Imread: 读取图片信息: l axis:轴缩放:axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置 x.y 和 ...
- 浅谈大数据神器Spark中的RDD
1.究竟什么是RDD呢? 有人可能会回答是:Resilient Distributed Dataset.没错,的确是如此.但是我们问这个实际上是想知道RDD到底是个什么东西?以及它到底能干嘛?好的,有 ...
- 第二篇——The communication during software engineering.
I've learned a lot in my software engineering class about how a program comes out.That's also a esse ...
- LeetCode Restore IP Addresses
DFS class Solution { public: vector<string> restoreIpAddresses(string s) { return insertDot(s, ...
- String类常用方法小节
(1)String.equals() 返回值是boolean类型 equals(Object anObject) 将此字符串与指定的对象比较. (2)length() 返回值是in ...