标签:
Android手机和iphone相比较起来,运行以及耗电都没有iphone体验更好。主要是Android的多任务机制问题。最直观的就是很多Android手机出厂就会带上清理垃圾,清理内存的软件。会有一键清理释放内存功能。但是在iphone上你是看不到的。
为什么会这样呢?
1、 大数据量的传输。2、 不停的在网络间切换。3、 解析大量的文本数据。
用户不操作设备一段时间
屏幕关闭
设备未连接电源充电
Doze 模式下应用程序有什么变化?:
以下来 自GCM 官方解释:
一个 GCM 实现包括谷歌连接服务器,在你的环境中通过 HTTP 或 XMPP 协议的连接服务器进行交互的应用程序服务器和客户端应用程序。
生命周期流程:
注册启用 GCM: 客户端应用程序注册为接收消息。
发送和接收下行消息:
发送一个消息, 该应用程序服务器发送信息到客户端应用程序:
1. 该应用程序服务器发送消息给 GCM 连接服务器;
2. 当设备处于脱机状态,该 GCM 连接服务器入队并存储消息;
3. 当设备联机时, GCM 连接服务器将邮件发送到该设备;
4. 在设备上,所述客户端应用程序根据该特定平台实现接收该消息。
接收消息,客户端应用程序收到一条消息从 GCM 连接服务器。
发送和接收上游的消息: 如果您使用的是此功能只提供 XMPP 连接服务器 。
发送一个消息, 客户端应用程序将消息发送到应用服务器:
1. 在设备上,客户端应用程序将消息发送到 XMPP 连接 server;
2. 如果该服务器已断开连接,该 XMPP 服务器连接入队并存储信息;
3. 当应用程序服务器重新连接后, XMPP 连接服务器将邮件发送到应用程序服务器。
接收消息, 一个应用服务器从 XMPP 连接服务器接收邮件,然后执行以下操作:
1 、解析消息头,以验证客户端应用程序发送的信息;
2 、发送“确认”的 XMPP 连接服务器以确认收到该消息;
3 、任选解析该消息有效载荷,由客户端应用程序所定义的。
除了 GCM , Android6.0 及更高版本还提供了 Doze 模式白名单列表,通过设置应用程序进入白名单列表可逃脱 Doze 模式的各种限制。用户也可手动设置应用程序进入白名单列表里面,路径为:设置 > 电池 > 电池优化白名单
1 . App 程序可发送 action 为ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 的 intent 引导用户进入设置界面将应用程序设置进白名单列表里。
2. 应用程序还可以使用 AREQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限来触发一个系统对话来让用户添加到白名单里,而无需进入设置界面去设置。
不过估计天朝会想办法通过so绕过doze
当然,官方也提供用户把你的 App 移除电池优化白名单的选项。这个白名单也会被Android M 的另一个新特性 App Standby 使用,所以用户只能简单的进行控制,也就是说设备并不会完全相信这个白名单。
当用户不触摸使用应用程序一段时间时,该应用程序处于 App Standby 状态,系统将把该 App 标志为空闲状态。除非触发以下任意条件,应用程序将退出 App Standby状态:
1. 用户主动启动该 App;
2. 该 App 当前有一个前台进程(或包含一个活动的前台服务,或被另一个 activity或前台 service 使用);
3 . App 生成一个用户所能在锁屏或通知托盘看到的 Notification, 而当用户设备插入电源时,系统将会释放 App 的待机状态,允许他们自由的连接网络及其执行未完成的工作和同步。如果设备空闲很长一段时间,系统将允许空闲 App 一天一次访问网络。
Doze 和 App Standby 的区别:
Doze 模式需要屏幕关闭(通常晚上睡觉或长时间屏幕关闭才会进入),而 App Standby 不需要屏幕关闭, App 进入后台一段时间也会受到连接网络等限制。
标签:
原文地址:http://blog.csdn.net/chenyannan0617/article/details/51323715