折腾了一下荣耀的三个空间功能,用 Termux + ADB 看了下底层用户和内存情况,分享一下结果。
设备是Magic8proair,MagicOS11 系统,普通 ADB 权限,没有 Root。
先说一个发现:这三个功能底层都是 Android 多用户机制。
- User 128:应用分身,带 ”CLONED_PROFILE” 标志。
- User 100:平行空间,带 ”PARALLEL_SPACE” 标志。
- User 10:隐私空间,带 ”HW_HIDDENSPACE” 标志。
隐私空间后来重建过一次,系统分配了 User 11。
四个用户同时运行,内存有多少?
ADB 实际抓到了:
mStartedUserArray: [0, 11, 100, 128]
mCurrentUserId: 0
也就是说,当前在主空间,但另外三个用户环境也都在运行。
这次 ”dumpsys meminfo” 的进程 PSS 汇总如下:
空间| 合计 PSS
主空间 User 0| 约 6976 MiB
隐私空间 User 11| 约 1739 MiB
平行空间 User 100| 约 406 MiB
应用分身 User 128| 约 143 MiB
实测下来,三个功能各有特点
应用分身: 适合少量 App 双开。测试拼多多时,可以通过 ADB 单独停止 User 128 的分身进程,不影响主空间的拼多多。
平行空间: 可以和主空间并行使用。比较好的一点是,点击空间内部的电源按钮后,ADB 确认 User 100 已停止,而且没有残留的用户进程。可惜不能像隐私空间一样,用独立的隐私指纹从锁屏直接进入。
隐私空间: 独立密码、指纹直接进入很方便。但我之前测试 User 10 时,切回主空间后它仍然是 ”RUNNING_UNLOCKED”,几十个进程还在后台。尝试 ”am stop-user” 也因用户调试限制被系统拒绝。
想提两个建议
1. 希望隐私空间也能像平行空间一样,有个保留数据、彻底关闭后台的按钮。 不用的时候就让它真正退出。
2. 希望平行空间支持独立隐私指纹直接解锁进入。 这样使用起来会方便不少。
三个功能我都觉得有用,只是后台管理方式差别
以上只是我这台手机的实测,不代表所有机型都一样。有懂 MagicOS 多用户机制的朋友或者官方工程师,欢迎交流。
附:ADB 实测数据及多空间拓扑关系图。
|