Android多用户模式(手机分身)研究
最近使用小米手机的分身功能。里面就装了个游戏。在分系统中是可以一键切换的。所以我想能不能利用这套机制,沙箱运行耗电app如西瓜视频(因为常驻后台)从而达到省电的效果。本人redmi k30U没有感觉很经用。
这只是设想,想要知道能不能省,弄清分系统运行原理就知道啦。
下面是摘自网络:
手机分身基于安卓多用户技术,但两者设计理念不同。谷歌多用户设计理念是一台手机多人使用,就好比“公共手机”概念。
我们大多数将手机视为私人物品,不可能公共。于是我们重构一个设计逻辑。
如果套用当下很流行的“平行空间”一说,我们可以称多用户是相当于开启了两个平行空间,而MIUI 8的手机分身则并非两个平行空间,而是“一高一低”,低的是一个私密空间。在这个私密空间内,拥有的权限与初始空间不一样。用户可以放心的在里面存储任何东西,不必担心信息泄露。同时这个私密空间又类似于一个“沙箱”,在这个“沙箱”内进行任何的操作,都不会对手机初始空间造成影响。
很多人很奇怪我们的手机分身会不会占用多余的手机空间,甚至拖慢手机性能。误认为手机分身等于一个“双系统”,或者是开了一个“虚拟机”。
其实手机分身就好比一个虚拟桌面,有一部分共用的安卓内存,大约为700-800MB。在未开启初分身时,初始空间占用的运行内存大约为400-600MB,在开启了手机分身后,运行内存变化就好比一个跷跷板,初始空间所占内存下降至200MB,分身空间占用内存到400MB。
在切回初始空间后,分身空间占用内存为200MB,初始空间变为400M。两者大小发生变更,总量依旧不变。开启手机分身后的占用内存与未开启手机分身所占内存基本一致,为1.5G。
由于手机运行内存总量不变,开启多个APP肯定要占用更多的常驻内存。所以,如果在分身空间内开启过多应用,依旧会导致手机卡慢。
为了避免这种情况的发生,工程师们便限制在分身中使用应用双开,防止开启过多的常驻内存的应用(如微信、微博)。而所占的存储空间也是安装多少APP,就算多大APP的占用空间,存储空间绝不会“对半分”。
上面说了多系统内存设计,可以得到结论分身会占至少200m内存。但是它在后台的时候会不会工作呢?
时间原因,目前就写到这了。其实从上面的描述可以得知:分身app会常驻内存。但是耗电呢?个人的判断。android是有froze功能的,就是将系统序列化到磁盘。让系统进入休眠态。个人猜测是不会耗电的。