求教安卓 6.0 的两个疑问:绿色守护的浅睡模式、TF 卡的融合模式

2016-07-22 08:09:42 +08:00
 lfk0000
最近刚刷 6.0.1 ,有两个疑问不明,想请教一下

1 :绿色守护的浅睡和嗜睡好用么?
1.1 :和之前的高效模式( xposed )相比如何?
浅睡就是安卓 6.0 的打盹吧,嗜睡似乎也可以用其他的软件来实现立即打盹,总感觉绿色守护干这种活儿大材小用了。。。
明明用其他软件就能实现的。。。
1.2 :还是说 6.0 没必要用绿色守护,直接阻止启动+强制 doze 就能搞定?


2 : TF 卡的融合模式有什么优缺点?
2.1 :融合成内部储存了,是把整个 tf 卡挂载到哪个目录么?
还是他自己把 tf 卡分了个区,分别挂载到\data ,\mmt 等等不同的地方去的?
2.2 :如果把 tf 卡再出来插 windows 电脑上,是什么格式的分区?可以对其读写、备份么?
2.3 :如果不融合,安卓 6.0 对外部储存的访问权限比 5.0 限制更为严格么?
可以通过修改 /system/etc/permissions/platform.xml 来破解么?
15813 次点击
所在节点    Android
34 条回复
leots
2016-07-22 08:21:21 +08:00
回答你第一组问题:
1.1 浅度休眠和嗜睡模式都可能导致被 doze 的应用无法联网:
我只开启了浅度休眠,有的时候支付宝被休眠后,再打开会发现提示无网络连接。
1.2 xposed 可以 GCM 唤醒(捐赠),还可以有唤醒对齐等功能。
1.3 直接用阻止运行也可以,我用的是阻止运行+绿色守护。

Nexus 6P 用户
jonechenug
2016-07-22 08:36:49 +08:00
会把你的 TF 卡格式化成 ext ,还有权限严格了,默认只读不写,甚至有时候不给读的权限,相关的软件无法操作 TF 卡的文件
lfk0000
2016-07-22 08:37:07 +08:00
谢谢 @leots
1.1 那不支持 GCM 的 IIM (主要是 QQ 、微信),以及一切需要自建后台来维持推送功能的软件,是不是都会被 doze 住,无法推送?
1.2 捐赠了的,不过看 GCM 唤醒是说“允许 GCM 推送消息唤醒 [已休眠] 的应用”,而浅度休眠里面说的是“一旦开启,浅度休眠将在绿色守护中全面取代传统休眠机制”。。。这么说着似乎是开了浅度休眠, xposed 插件的那些针对传统休眠机制的功能全体歇菜的意思。。。。
1.3 好的,我也把阻止运行搞起 :P
yangyaofei
2016-07-22 08:58:14 +08:00
第二个确实有一个 link2sd 的东西,是分一个 ext 分区挂载到 /data 然后想放入 sd 卡的移动文件后做软连接到相应目录,在 win 上非 ext 分区可以看到个操作, ext 分区貌似就只能安装相应的软件了。第三个不知道,用过 link2sd , sd 卡读写速度是硬伤………
honeycomb
2016-07-22 09:04:25 +08:00
浅睡模式就是强制应用进入 app standby 状态(等于在开发者设置为 set inavtive ),它是针对应用的,而不是 doze 的全局都影响。

融合储存相当于 Windows 10 Mobile 的导入储存卡,会对卡进行全盘加密
leots
2016-07-22 09:09:27 +08:00
@lfk0000
1.1 Google play 版本的微信有 GCM 推送,其他的不支持 GCM 的 app 将会被 doze
1.2 针对传统休眠机制的插件?抱歉,除了绿色守护,我没用过其他的关于 doze 的 app 。
honeycomb
2016-07-22 09:10:12 +08:00
@lfk0000 doze/app standby 的进入离开条件在 Android developers 网站有说,前者更具体的状态转换也有人解析。

Android 7 的 doze 比 Android 6 的更复杂, Android 6 检测到运动时, doze 会失效,在 Android 7 ,则有两个 doze 状态,运动时的 doze 限制的内容较少,类似于 app standby 。
qjhqxnne
2016-07-22 09:20:43 +08:00
昨天开始也在研究这个问题。
原一加 1 魔趣用户,现一加 3 氧 OS 用户。
魔趣 60.1 开始自带了宙斯盾可以实现类似绿色守护和阻止运行的功能,所以好久没用绿色守护了。换到一加 3 后,由于第三方 rom 尚未支持快充,只好暂时用氧 OS 搭配绿色守护(捐赠+Xposed )。阻止运行在被收购后的所作所为无法信赖,弃用。
需要压制的只有微信支付宝和个别银行应用,下面仅以微信为例。
前提:所有 APP 均为 Play 最新稳定版, MyAndroidToolsPro 对微信唤醒器仅开启 GCM 和消息接收提醒两个。这样不影响消息的即时接收提醒。
宙斯盾五大模块全部对微信开启后,切换到后台后微信不会接收任何消息,直到打开到前台。切换到微信界面的瞬间有时会出现无法联网的提示,说明的确进入了 doze 模式。
绿色守护启用全部 Xposed 功能:
仅开启浅睡模式,在使用快捷方式休眠并关屏后,很快就会接收到新消息。
仅开启嗜睡模式,快捷方式后,一般不会再收到新消息,这时手动打开微信会出现启动界面,基本可以认为类似于传统休眠彻底杀掉了后台。
对我来说,微信不需要保持消息畅通,偶尔看下即可,所以暂时会使用嗜睡模式,等魔趣支持快充后就刷过去。毕竟魔趣很多小功能找不到第三方 APP 来取代,比方说未知来源应用仅该次放行,还有针对各应用的隐私防护功能。
honeycomb
2016-07-22 09:34:20 +08:00
@qjhqxnne 嗜睡只是 doze ,本身不会杀进程。而是微信把自己分了好几个进程,其中有一个和界面有关的很容易被杀(或者是微信自己关的)

处于浅睡的应用无法连网但可以获取唤醒锁,处于 doze ( 6.0 )时就真的什么都不能做了
fangdingjun
2016-07-22 09:41:15 +08:00
绿色守护的嗜睡模式会导致系统唤不醒,现象是屏幕点不亮, adb 可以用,基本上一周一次
关掉后再没出现过
lfk0000
2016-07-22 10:09:40 +08:00
@qjhqxnne 谢谢测试!
你在 “仅开启浅睡模式” 和 “仅开启嗜睡模式” 的时候,有没有对 微信 进行 绿色化操作(点加号进入 应用排查顾问,然后把微信勾选,这样休眠他
nullizer
2016-07-22 10:38:39 +08:00
我感觉浅睡模式还是压不住一些毒瘤的唤醒,省电效果不好。
lfk0000
2016-07-22 10:46:49 +08:00
@qjhqxnne @honeycomb 有点糊涂了
浅睡开了,休眠就无效了?
比如我本来设置了对支付宝休眠,但是开启了浅睡,在灭屏后支付宝的进程不会被杀?

所以浅睡是针对全局所有程序一起生效的?只要开了浅睡,之前设置的休眠那些就无效了?
那如果开了浅睡,像 QQ 那样不支持 GCM 推送的程序,“网络活动和唤醒被阻止了”的话,是不是就无法即时的收到推送了?

而单独开启嗜睡,和传统休眠可以同时作用?只是传统休眠是真杀进程,嗜睡是深度睡眠(看上去像是杀了进程一样,其实没杀)?


那么,是不是可以这么理解:
浅睡:和传统休眠的不兼容,禁止网络通讯但是可以被 GCM 唤醒,唤醒锁可以按小时计的周期对齐了唤醒,充电时保持激活,亮屏时无限制(?是么)
嗜睡:和传统休眠的兼容,禁止网络通讯,也不能被 GCM 唤醒,唤醒锁彻底失效,充电时保持激活,亮屏时无限制(?是么)

如果浅睡和嗜睡对亮屏时的后台都不作限制的话,那还是得靠传统休眠(杀进程+切断唤醒)来治理各种流氓吧?
qjhqxnne
2016-07-22 11:03:17 +08:00
@honeycomb 马丁龙猪说过,宙斯盾就是用的 doze 。那为何绿色守护的嗜睡会杀掉进程宙斯盾却不会?难道是绿色守护用 Xposed 的原因?
qjhqxnne
2016-07-22 11:07:44 +08:00
@lfk0000 绿色守护当然要把相关流氓加入到列表中。
我试了下用 MyAndroidToolsPro 禁掉微信的 GCM 广播接收器,用浅睡模式,还是能常常收到消息。说明微信消息主要依赖 NotifyReceiver 广播接收器来唤醒。
支付宝我的主要压制方法是用 MAT 把服务和广播接收器全部禁用。很久了,没发现任何功能失效。
Halry
2016-07-22 11:23:39 +08:00
浅睡只是绿色用了 doze 里面的一种方式让 app 暂停,而不是像以前一样杀掉进程.
doze 的话是关屏幕了,无运动,就仅让 gcm high priority 联网,在后台的 wakelock 全部被关闭,但是 app 是被浅睡,而不是被 kill
Halry
2016-07-22 11:33:30 +08:00
顺便说一点,并不是所有手机都支持 doze,浅睡必须有 doze 支持.
有些手机没有支持 mpu,所以就没有 doze 了,反而强行开 doze 更费电.
lfk0000
2016-07-22 11:51:38 +08:00
@Halry doze 是关屏后生效,那浅睡呢,是关屏生效还是最小化到后台就生效?
honeycomb
2016-07-22 11:56:33 +08:00
@lfk0000 绿色守护的休眠只会选一个模式,要么是杀进程的三个版本(设备管理器, root 版, xposed 版),要么是 6.0+才可使用的 app standby 。

用 app standby 的目的本就是不杀进程。

无论是系统处于 doze ,还是应用处于 app standby ,都能被高优先级 gcm/firebase message 唤醒

在 6.0 , doze 检测到运动 /亮屏,充电就会停止使用
app standby 会在充电期间暂停使用,亮屏时依然有效, app standby 保证每天有一次机会可以联网
honeycomb
2016-07-22 12:04:40 +08:00
@qjhqxnne 嗜睡(用那个 dumpsys xxx 的命令提前进入 doze+可选的阻止系统检测运动而终止 doze )和杀进程无关。

它只有使用非浅睡时的“绿色化”,才是由绿色守护执行 am force-stop + 包名的方式杀这个包相关的所有进程

微信有一个 NotifyService 是打算让系统容易杀掉的(它占得内存多,优先级没提过,也没有别的保活),微信刻意保活的是另一个内存占用很小的 CoreService ,没 NotifyService 进程的时候,开微信就会重新加载界面。

app standby 和 doze 都不会杀进程,只是微信的 NotifyService 所在的进程比较容易被杀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX