LBE平行空间的技术实现


利益相关:本人是LBE员工,Parallel Space平行空间的名字就是我起的:)


前面有同学对LBE平行空间的原理做了一些推测和分析,有些正确,有些不完整,我再做些补充


LBE平行空间和市面上的其他应用双开app有本质区别,其他方案是通过改包名、改Framework等非常粗糙的方式达到目的,而LBE平行空间的底层是一个完整的虚拟化引擎:MultiDroid


更准确的说,MultiDroid并不是硬件虚拟化或OS虚拟化 (譬如VMware, Xen, KVM),它也不是应用层虚拟化(譬如XenApp, Wine),MultiDroid更类似容器(Container),譬如Docker


MultiDroid的关键技术有:


1. Framework层的虚拟实现


在Android环境中,每个应用在运行时都需要和Android framework打交道。Android系统的System-Server进程提供了大部分的系统API。 应用程序通过Binder IPC调用系统API。LBE之前在安全大师产品中,也就是通过对System-Server的hook来实现主动防御和权限管理,但MultiDroid在设计之初的一个最重要的目标就是不需要root权限,从而不能通过hook的方式来实现虚拟化。为此,我们需要自行实现一套完整的System-Server API,这就是MultiDroid的核心,工作量非常大,更麻烦的是,我们的设计目标是支持所有Android 4.0以上版本,而每个版本的Framework实现又千差万别……


2. 文件系统虚拟化


程序在运行的时候,会加载文件系统上的程序指令和程序数据。要建立虚拟的应用程序运行环境,需要模拟一个独立的文件系统,在这个独立的文件系统中,再针对不同的虚拟应用的主目录进行区分和权限控制

3. Android系统组件管理


一个Android应用基本上是由Android四大组件(Activity, Service, Broadcast Receiver,Content Provider)构成。在Android环境中,System-Server和应用通过进程间通信交互,Android系统负责了四大组件的管理,包括创建,激活,销毁等。MultiDroid引擎实现了一套Android组件管理系统,用来模拟系统对Android组件的管理。每个运行在虚拟环境中的应用,会把自己的组件注册给MultiDroid引擎,由MultiDroid引擎负责各个组件的生命周期维护


4. 应用进程管理


Android本身在应用和进程之间做了隔离,应用几乎不需要感知进程的存在,只需要关注应用自身的四大组件。但是应用本身还是需要在Dalvik进程中运行。虚拟环境中的进程仍然是一个Dalvik进程, MultiDroid引擎负责了虚拟应用进程的创建,进程ID的分配,进程的销毁等


MultiDroid的未来发展:


目前的MultiDroid引擎已经相当完善,可以很好的运行市面上的绝大部分App,而且在耗电和内存使用上都做了非常多的优化,但这只是起步,我们期望下一版的MultiDroid引擎将会从某种程度上改变Android本身的生态环境和使用体验,譬如支持整个虚拟环境的快照和恢复,发烧友就不用为了尝试各种新鲜玩法而反复刷机了,当然,还有虚拟环境内应用数据的云备份,类似iCloud,虽然有Android厂商也支持类似功能,但跨厂商的设备同步目前还没有;再譬如代码动态优化,虽然目前的MultiDroid引擎并没有性能问题,但我们希望可以借鉴ART的做法,通过在虚拟环境中的代码预优化和动态转换,来提升应用加载速度;同时,我们已经找到了一个办法把具有某些特征的dex字节码片段在虚拟环境中转为native指令来运行,性能的提升非常夸张。总之,MultiDroid打开了一个盒子,里面有无穷可能。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
平行空间 Parallel Space 可以同时克隆并运行同一个应用程序的多个帐户,并将自定义主题应用于克隆的应用程序!作为 Android 上排名第一的工具之一,Parallel Space 通过克隆帮助超过 4000 万用户同时在一台设备上登录多个帐户!它还通过使用隐身安装功能使设备在设备上不可见,从而保护用户隐私。此外,用户可以使用主题在Parallel Space 中自定义克隆的应用程序,以创建自己的时尚启动器。到目前为止,Parallel Space 支持 24 种语言。立即获取并行空间,在一台设备上管理多个帐户,保护隐私并创建自定义空间平行空间 Parallel Space Pro 特别版平行空间 Parallel Space Pro 特别版 ★在一台设备上同时登录社交网络应用程序或游戏应用程序的多个帐户 •轻松平衡用户的生活和工作。 •双重用户的在线游戏体验,享受更多乐趣。 •并行空间中的第二个帐户几乎支持所有应用程序。两个帐户的数据不会相互干扰。 ★保护用户隐私,通过隐身安装使设备隐藏在设备上 •通过仅将应用程序保留在秘密空间中,隐藏用户的秘密应用程序,而无需担心窥探。 •使用安全锁保护用户隐私。 ★通过应用主题创建自定义空间 •主题存储已集成到 Parallel Space 中,并且已准备好自定义主题列表供用户应用于 Parallel Space 中的克隆应用程序。 •通过创建自定义空间来帮助表达用户的独特身份,他们可以使用漂亮的主题在 Parallel Space 中设置社交网络应用程序的样式。 ★只需轻轻一按即可在账户之间快速切换 •同时运行两个帐户,并通过一次快速切换,以有效管理不同的帐户。 ★强调: •功能强大,稳定且易于使用。 •独特:Parallel Space 基于 MultiDroid,这是 Android 上的第一个应用程序虚拟化引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值