为什么android 6.0 Doze模式安卓6.0怎么开启doze,QQ还能收消息

Xperia&Z5系列升至Android&6.0.1:STAMINA模式回归
OEM厂商部署原生Android系统所没有的功能是非常常见的,毕竟他们都希望为用户提供原生Android所无法提供的体验。然而,伴随着Android系统的不断完善和功能引入,导致OEM厂商所做出的努力显得有点多余,这也是为何索尼在Android
6.0 Marshmallow更新中为全新的Doze功能而取消STAMINA(持久力)模式的主要原因。不过在移除之后遭到了很多Xperia用户的强烈反对,因此在Xperia
Z5家族的更新中这项功能得到重新回归。
无论电池容量有多么的少,索尼总是喜欢称自家的智能手机续航时间可以超过2天。如果在设备上激活STAMINA模式确实能够达到索尼口中的要求,在该模式下会强制关闭不必要的应用程序和硬件使用从而确保设备最低电量运行。这项功能深受Xperia用户喜欢,并且带领其他友商推出了省电功能,最为典型的例子就是三星的超级省电模式。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/article//bfbc2adbbb428e8.jpg" TITLE="Xperia-Z5-STAMINA-update_2-315x560.jpg" ORIGINAL="/article//bfbc2adbbb428e8.jpg" STYLE="display: margin: 0 max-width: 630"
ALT="Xperia&Z5系列升至Android&6.0.1:STAMINA模式回归" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/article//cb0c26.jpg" TITLE="Xperia-Z5-STAMINA-update_1-315x560.jpg" ORIGINAL="/article//cb0c26.jpg" STYLE="display: margin: 0 max-width: 630"
ALT="Xperia&Z5系列升至Android&6.0.1:STAMINA模式回归" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/article/f5a095a0e3c2c5.jpg" TITLE="Xperia-Z5-STAMINA-update_3-315x560.jpg" ORIGINAL="/article/f5a095a0e3c2c5.jpg" STYLE="display: margin: 0 max-width: 630"
ALT="Xperia&Z5系列升至Android&6.0.1:STAMINA模式回归" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/article/7aea4d7cb089c.png" TITLE="Xperia-Z5-STAMINA-update_4-315x560.png" ORIGINAL="/article/7aea4d7cb089c.png" STYLE="display: margin: 0 max-width: 630"
ALT="Xperia&Z5系列升至Android&6.0.1:STAMINA模式回归" />
而在升级Android 6.0
Marshmallow之后,Xperia设备中的STAMINA模式被Android系统中的原生省电功能--Doze(打盹)功能所取代。而在面向Xperia
Z5的最新Android 6.0.1更新中为Xperia
Z5系列重新带来了STAMINA模式,能够和Doze功能兼容使用。目前只有Xperia Z5, Xperia Z5
Dual和Xperia Z5 Compact确认获得古剑更新,而Xperia Z5 Premium则会随后上线。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。1294人阅读
Android 6.0新特性(1)
Android在6.0推出了 Doze 和 App standby模式,这个其实是大家早就关注的问题,Google推出只是早晚的问题,
原因如下:
1.手机电池越来越大,电量越来越多,但是手机电池越来越不经用,
2.Android的手机应用过多过杂,根本没有办法管理,应用的功能乱用,严重消耗了不必要的电量
3.IOS其实一直是这个机制的,虽然实现略有区别,但是IOS的效果还是很好的。
基于以上原因,Google重要在 &6.0版本根据自己的情况推出了两种模式来省电了,可见Android 6.0在电量方面肯定会有较大提升的,尤其是在待机的时候。
再来介绍一下这两个是什么,
首先Doze 和 App standby虽然Google是放在一起提出来的,但是这是两个不同的东西
Doze:是针对系统而言的,可以理解为一种模式。当手机在某种条件下会进入该模式,并且会触发一些特性,并且在某种条件下退出该模式。
首先介绍一下何种条件会触发(&&)基本上所有都程序员都是到&&的意思吧,就是说下面的条件必须豆瓣出,才会触发进入该模式
o用户不操作设备一段时间
o设备未连接电源充电
再来看一下触发哪些特性:
o系统试图通过限制应用程序访问网络和CPU密集型服务节省电池
o防止应用程序访问网络,推延应用程序的工作,同步,和标准的警报
o系统定期提供一个短暂的时间让应用程序完成延迟的工作活动,在这个时间片里,系统将提供维持性窗口应用程序访问网络,运行在等待的同步,工作,和报警等活动。
这里字比较多,解释一下关键的字,所谓 CPU密集型服务,就是指播放音乐啊,录音啊这些服务,但是比较奇怪的是,我测试音乐播放器的时候,并没有受到影响。稍后会给大家介绍如何测试我们的应用。
再就是第三条的什么意思,这就上个图来瞅瞅
看到了吧,这个橙色的部分就是系统提供的让各个应用执行特定任务的时间,随着手机进入Doze模式的时间加上,间隔时间会越来越长。
到这里你可能觉得我讲的也太&#31548;统了,这你三个到底是什么啊,那好,下面我就来具体一下,看看应用的哪些行为会收到限制
o网络连接会被禁止
oWake Lock会被屏蔽
oAlarmManager定时任务延迟到下一个maintenancewindow进行处理,除非使用AlarmManager提供的方法:setAndAllowWhileIdle()或者setExactAndAllowWhileIdle()
o系统将不扫描热点WIFI
o同步工作将被禁止
o不允许JobScheduler进行任务调度
这回清晰啦吧,
下面介绍何种条件会退出(||)||的含义不需要我多说啦吧,不懂的我也就建议你不要在程序界混了
o用户唤醒移动装置,打开屏幕
o设备连接电源
到这里Doze模式就介绍完了,下面介绍一下App standby模式
App Standby:这个概念则是针对于应用的,当App进入AppStandby状态后,也会受到网络等状态的限制
老套路,继续介绍进入条件和退出条件吧,至于其他的和Doze 模式的某些条件是相同的,
当用户不触摸使用应用程序一段时间时,该应用程序处于AppStandby状态,系统将把该App标志为空闲状态
用户主动启动该App该App当前有一个前台进程(或包含一个活动的前台服务,或被另一个activity或前台service使用)
App生成一个用户所能在锁屏或通知托盘看到的Notification而当用户设备插入电源时,系统将会释放App的待机状态,允许他们自由的连接网络及其执行未完成的工作和同步。如果设备空闲很长一段时间,系统将允许空闲App一天一次访问网络。
最后在总结一下Doze模式与App Standby模式的区别
Doze模式需要屏幕关闭(通常晚上睡觉或长时间屏幕关闭才会进入)App Standby不需要屏幕关闭,App进入后台一段时间也会受到连接网络等限制。
说了这么多,最终还是为了使用,因为这个实现是系统来做的,我们在开发应用时,了解如何让我们 的应用正常工作就好啦,
那么我们应用可以i 做什么呢?
1.实时通信可以采用GCM,
2.除了GCM,Android6.0及更高版本还提供了Doze模式白名单列表,通过设置应用程序进入白名单列表可逃脱Doze模式的network和partial wake locks。
至于第一个这个肯定会收到影响的,但是这个解决方案,对于大陆来说,还是没有什么鸟用的,那么我们重点看一下第二种吧,
第二种有两种方法:
第一个是App程序可发送action为ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS的intent引导用户进入设置界面将应用程序设置进白名单列表里。
第二个就是使用AREQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限来触发一个系统对话来让用户添加到白名单里,而无需进入设置界面去设置。
首先来介绍第一种(终于可以上代码了,文字真心不是我的强项啊):
Intent ignore = new Intent();
ignore.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
this.startActivity(ignore);
就这么简单,看看启动的页面吧
在这个页面中目前显示的是为优化的应用,就是在白名单中的应用,我们可以选择所有应用,然后点进去,将我们应用设置成不优化就加入白名单了
第二种方法就简单的多啦
首先在AndroidManifest中加入以下权限
&android:uses-permission android:name=&android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS& /&然后在需要加入白名单的地方加入如下代码:
Intent ignore = new Intent();
ignore.setData(Uri.parse(&package:&+this.getPackageName()));
ignore.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
this.startActivity(ignore);然后就会弹出
然后点击是就会把我嗯自己的应用加入白名单了。这种方式很简单吧,
最后介绍一下如何测试我们的应用在Doze模式和App Standby模式时能否正常工作吧。
Android 6.0的设备安装应用运行应用,保持活跃关闭屏幕adb shell dumpsys battery unplug$ adb shell dumpsys deviceidle step输入第二条命令直到设备状态返回Idle,此时设备进入Doze模式
$ adb shell dumpsys battery unplug$ adb shell am set-inactive &packageName&true此时应用进入App Standby模式
到这里就介绍结束了,快来看看你的应用在Doze模式下是否能正常工作吧
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11511次
排名:千里之外
原创:38篇
(3)(6)(1)(1)(1)(1)(3)(4)(10)(2)(5)(3)(2)4963人阅读
android(23)
休眠和App 待机
Android 6.0最大变化之一就是加入了新的电量管理模式:休眠模式,当设备一段时间不用的时候,当屏幕关闭的时候,系统会自动进入休眠模式。这样所有的App都将进入挂起模式,不能在接入 网络等一些操作。
当然系统也会定期的退出休眠模式,来完成App延迟的工作,在这个空窗期(我暂且就这么叫),系统会运行所有同步,工作,提醒等,并允许app接入网络。
当过了空窗期后,系统会重新进入休眠期,App也会随着挂起状态,随着时间的推移,空窗期越来越少,是为了帮助没有接入充电器的长期闲置的设备减少电池消耗。
只要用户唤醒设备,打开屏幕或者接入电源,系统会自动退出休眠模式,所有的活动都会恢复正常状态。
下面是当进入休眠期时的约束:
延迟网络请求;
系统忽略唤醒锁;
标准的闹钟提醒(包括setExat()和setWindow())会被延时到下一个空窗期;
如果一定要在休眠期唤醒闹钟,可以用setAndAllowWhileIdle() 或者 setExactAndAllowWhileIdle();
闹钟设置setAlarmClock() 则继续保持常态,在唤醒这个闹钟前系统推出休眠期一段时间;
禁用wifi scan;
不允许同步;
禁用JobScheduler ;
休眠容易影响 AlarmManager alarms and timers manage,因为当系统进入休眠状态,闹钟在android5.1(API level 22)或者更低不会唤醒 ;
为了帮助管理alarms,android 6.0(API level 23) 介绍了两个方法: setAndAllowWhileIdle()和setExactAndAllowWhileIdle(). 这样即使你再休眠期的时候 闹钟也会被唤醒;
PS: 即使这两种方法,每个App每15分钟唤醒次数也不能超过一次;
有了休眠,自然会影响我们的后台服务,比如 推送,google 建议是用GMC( Google Cloud Messaging)。
app Standby 允许系统决定一个app是否是空闲,当用户不怎么用的时候;系统是通过用户一段时间内是否够触摸这个app来决定的,以下的几点是不在考虑范围的:
1、用户退出了App;
2、app有一个前台进程;
3、App生成一个用户能够在锁屏或通知栏上看到的通知;
当用户接入电源的时候,系统会释放待机状态,自动接入网络,完成延迟工作。如果设备闲置很长一段时间,系统会大约一天允许连接一次网络。
google建议使用GMC,可以省电。GMC的优先级要高于休眠模式和待机模式的,所以当处于休眠模式和待机模式的时候 是不会影响推送的。可以通过这个唤醒你的App,短时间内接通网络,然后继续回到休眠模式。并且不会影响其他app的待机模式。用GMC的高优先级消息。
PS:当然,为了更好地兼容,google也提供了一个白名单,可以设置某些应用不会进入休眠和待机状态。这些应用依然可以正常访问网络。不过也不是什么都可以做,一些同步或其他工作还是不行的。
调用这个方法,即可查看是否加入白名单:isIgnoringBatteryOptimizations()
可以通过一些参数:
ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
主动请求系统加入到白名单中。
PS : 详情文档:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:57131次
排名:千里之外
原创:19篇
评论:16条
(1)(2)(1)(1)(4)(4)(4)(1)(3)(1)(5)The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.}

我要回帖

更多关于 安卓6.0doze哪里开启 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信