Android应用分身的实现和解析
1 背景
从去年下半年360奇酷手机发布后,国内的手机新品发布,都会提到应用分身、微信双开等类似概念,有一些第三方应用也以分身/双开作为亮点抢占市场,一时间分身类应用成为主流手机的一个必备功能。
在了解和比较了国内的分身类产品后,我将介绍目前市面上主流的分身类产品,及其使用场景、实现原理和存在的风险整理出来,分享给大家、也作为知识的总结积累。
2 分身类产品的使用场景
分身类产品能实现一部手机上安装多个相同应用,实现多个帐号同时登录使用。
主要使用场景包括 社交帐号双开,游戏大小号双开,无需帐号切换,从而省去频繁登录的繁琐,大大提升了特定需求用户的体验。
例如同一部手机上同时登录两个QQ、两个微信。。。
3 主流的分身类应用产品
目前市面上有如下“分身类”的产品:
有些是厂商开发,内置于手机内部,如小米、奇酷、VIVO,还有一些第三方应用单独实现了此功能,如LBE平行空间、克隆大师等,并且不需要root。这几个应用基本上都能满足上述使用场景的要求,在实现细节跟交互上有一些区别。
3.1 小米应用分身
此功能在MIUI8.0上引入,可以在一台手机上运行双微信、双QQ、双游戏,绝大多数应用均可双开。
用户可以随意添加双开应用,在桌面、任务管理器、调用应用时双开应用都能共存显示,完全当成两个不同的应用了。
3.2 360奇酷手机微信双开
早在功能机时代,酷派就有提出一机双系统的类似双开应用的功能。
去年由360和酷派合作推出的360奇酷手机,也实现了此项“黑科技”。在奇酷手机上,可以实现同时运行两个微信,采用“空间隔离”技术,两个微信是完全独立存在的,完全可以用一个微信给另一个微信发信息。
3.3 LBE 平行空间(原双开大师)
由LBE推出的第三方app,可以安装在Android4.4之后的手机上。
LBE平行空间(原双开大师)是一款黑科技产品,你可以在平行空间创建应用快捷方式,和原桌面空间的应用互不干涉。
3.4 360分身大师
一个单独的第三方app,可以安装在Android4.4之后的手机上。
此app由360官方打造的手机应用和游戏双开软件,为用户提供应用和游戏双开功能服务
3.5 克隆大师
也是一个第三方app。
克隆大师是专注于做Android平台好用的应用双开App,支持多款应用的双开。
4 使用流程
上述几款分身类应用,使用流程都大同小异,内置和第三方应用有些差异。
对于内置该功能的竞品:
对于第三方应用:
5 实现方案
通过实际使用和对比,总结目前分身类应用技术实现方案如下:
1) 修改APK
反编译APK,修改APK 包名、签名,将APK伪装成另外一个不同的APK,
但对于一些有加密的APK,可能没办法实现。
产品:克隆大师
2) 修改Framework
对于有系统修改权限的厂商,可以修改Framework来实现双开的目的
产品:小米应用分身、360奇酷手机、Nubia?
3) 通过虚拟化技术实现
虚拟Framework层、虚拟文件系统、模拟Android对组件的管理、虚拟应用进程管理 等一整套虚拟技术,将APK复制一份到虚拟空间中运行
产品:360分身大师,LBE平行空间, Graphite Software “SecureSpaces”
4) 以插件机制运行
可以在无需安装、修改的情况下运行APK文件,利用反射替换,动态代理,hook了系统的大部分与system—server进程通讯的函数,以此作为“欺上瞒下”的目的,欺骗系统“以为”只有一个apk在运行,瞒过插件让其“认为”自己已经安装。
产品:DroidPlugin
6 风险
虽然目前双开应用很流行,
1) 数据安全隐患风险:
所有的分身双开应用数据,都通过【应用分身】的过滤,数据不可避免地都要经过【应用分身】,万一【应用分身】被掌握,或使用第三方【应用分身】类应用,数据会存在安全隐患。简单粗暴的反编译修改APK的方式也会存在类似的问题。
2) Android政策风险:
【应用分身】功能实现的原理 实际上是通过监听截取进程消息,替换反射,类似黑客的手段,可能Android会禁止该类应用。后续Android版本更新后有可能会被限制无法使用。
3) 卡顿、资源占用问题:
【应用分身】无论采用系统层还是应用层的做法,都会占用系统资源,如果分身过多,可能会造成系统卡顿。可以通过限制分身数量的方式来加以避免。
4) 3rd-party应用兼容问题
² 类似Android政策风险,【应用分身】采用类似黑客手段,可能会遭到第三方应用如微信/QQ等的屏蔽
² 一些3rd party应用调用接口不标准,可能没办法被【应用分身】监听和替换,会造成分身应用和本身应用表现不同的兼容性异常。
7 结语
目前市面主流的分身类产品总结如下表:
形式 |
应用 |
实现技术 |
内置 |
小米应用分身 |
修改Framework? |
360奇酷手机微信双开 |
||
VIVO |
||
Nubia |
||
…… |
||
第三方应用 |
LBE平行空间 |
通过虚拟化技术实现 |
360分身大师 |
||
Graphite Software “Secure Spaces” |
||
克隆大师 |
修改APK |
|
…… |
分身类应用迎合了部分消费者的需求,可以看出国内手机厂商在本地化,在产品细节上越来越注重,在大的功能、大的创新目前较为难以捕捉的情况下,厂商间在ROM上将难以拉开质的差距。“微创新”将成为后续手机厂商的方向,更接地气地满足用户需求将会是各个ROM/OS/UI的微弱优势所在,这类接地气的“微创新”应用也是目前Android对iOS的优势所在,iOS在目前市场上的表现不佳也间接地印证了这一点。
END.
此次转载,仅供学习记录使用,如有侵权,告知即删;
Android应用分身的实现和解析相关推荐
- Android View 测量流程(Measure)完全解析
前言 上一篇文章,笔者主要讲述了DecorView以及ViewRootImpl相关的作用,这里回顾一下上一章所说的内容:DecorView是视图的顶级View,我们添加的布局文件是它的一个子布局,而V ...
- android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...
Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...
- android permission权限与安全机制解析(上)
目录(?)[-] uses-permission 自定义permission permission标签 permission-tree标签 permission-group标签 安全机制 组件权限 权 ...
- Android实例RSS客户端开发(2)--解析XML文件
一 介绍完RSS之后,下面开始讲解如何解析RSS文件.因为RSS是基于XML的,所以我们就直接介绍如何解析XML文件. 解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析. DOM(文件对象模 ...
- android handler2--消息队列源码解析
android handler2–消息队列源码解析 1.Looper 对于Looper主要是prepare()和loop()两个方法. 首先看prepare()方法 public static fin ...
- android studio无app项,Android studio 3.0:无法解析依赖:app @ dexOptions
Android studio 3.0:无法解析依赖:app @ dexOptions 我迁移到Android studio 3.0.因此,项目无法编译名为":animator"的模 ...
- Android 开源1:获取并解析网页信息(Jsoup)
Android 开源1:获取并解析网页信息(Jsoup) Android 开源1获取并解析网页信息Jsoup 一程序功能 二程序界面 三程序知识点与创新点 四 总结 一.程序功能 本款APP主要是通过 ...
- Android自定义Activity切换动画完全解析
Android自定义Activity切换动画完全解析 在Android开发中,Activity之间的切换是最常见的业务场景了,而且系统默认的Activity之间的切换都是带动画效果的(右进右出).但是 ...
最新文章
- 四种软件架构演进史,会一种就很牛逼了!
- Mips TLB miss异常
- 百度更新算法之后我想说
- 设计一个简单分页存储管理系统_【系统架构】如何设计一个简单灵活的收银系统?看这里!(1)...
- 使用Visual Studio进行单元测试
- [转]Entity Framework 4.1 正式版发布
- android.bg,[Android]AMS-PSS
- ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决
- 机器学习代码实战——保存和加载模型(Save and Load Model)
- Node.JS——NodeJS引用路径的小问题
- 有哪些开源html5的组态软件,FScada组态软件
- sscms 导航调用方法
- 98点人脸关键点检测算法
- Facebook广告投放数据分析
- 通过DeviceIoControl获取真实网卡地址
- Java盲文数据库_汉语盲文首个“数据库”开建
- PW系列 | palette 体验
- coc跑团san数值规则_【规则】克苏鲁coc跑团游戏术语/黑话,第三篇教学。
- 国科大首期“一生一芯”计划初见成效——本科生带着自己设计的处理器芯片毕业
- 网站三大标签是什么? 网页三大标签在优化中分别有什么作用?