来源: Android 虚拟多开系列一——技术调研 – Binary-Stream – 博客园
参考链接:http://weishu.me
Github源码链接:
国内Xposed框架源码链接
VirtualApp:VirtualXposed 是基于 VirtualApp 和 epic 在 非root 环境下运行 Xposed 模块的实现(支持5.0——9.0)。
exposed :exposed 致力于为 App 提供 Xposed 运行环境。
框架实际应用
一、前情提要
Android插件技术事件:
1. 2017年淘宝 Atlas 插件化项目的开源标志着插件化的落幕;
如今的插件化技术可能的发展方向:
1. 模块化/解耦被抽离,逐渐演进为稳定、务实的组件化方案;
2. 插件化的黑科技特性被进一步发掘,inline hook / method hook大行其道,走向双开,虚拟环境;
二、概念解释
Android 插件化/模块化/组件化/
Android插件化:App中各个独立的功能模块都可以打包成apk,让宿主程序把apk加载进来,再运行里面的各个Activity,Service等。
Android插件化作用: (1). 模块解耦;
(2). 动态升级(动态更新插件);
(3). 高效并行开发(编译速度更快);
(4). 按需加载,内存占用更低;
(5). 节省升级流量(不用每次更新都下载一个完整的App);
(6). 突破 Dex Max method 65535 上线 ;
Android组件化:组件化和插件化的概念相差不大。较大的区别就是:组件是指通用及复用性较高的构件,如 图片缓存 就可以看成一个组件被多个App共用。(注:对整个App来说,其归类方式也不一样。插件是针对业务级的解耦框架(如:App的皮肤样式),组件则是针对功能级的代码框架(如:图片缓存、网络操作、数据库操作))
Android组件化作用: (1). 模块解耦;
(2). 多重复用,避免重复造轮子;
(3). 降低维护成本,提高开发效率;
Android模块化:模块化与组件化一样,也是一种与平台无关的解耦手段,被广泛应用在架构层面。二者通过组合方式来使用。它们只是架构方面的一种思想,在代码的实现层面上没有多大区别。组件通常指的是底层模块,公共组件等。而模块既可表示上层的业务,也可表示组件中的某个业务功能,如图片组件中的缓存模块,下载模块。所以模块的应用范围更广。
Android模块化作用: (1). 业务模块解耦;
(2). 降低维护成本,提高开发效率;
三、实际应用
调研需求:虚拟多开工具软件开发
调研结果:双开; ✓
一键发好友; ✓
一键发群; ✓
防消息撤回; ✓
防朋友圈删除; ✓
……
未完待续……