6. Android 校招复习篇五・其他
目录
SharePreference
简介
- 定义:一种数据存储方式
- 本质:以键值对的形式存储在 xml 中
- 特点:轻量级
- 应用场景:轻量级存储(如 应用中的配置、参数属性 等)
- 默认存储位置:
/data/data/<PackageName>/shared_prefs
实现原理
常见面试题
SharePreference 支持多进程吗?不支持要如何实现?讲讲实现原理?(2020网易校招笔试原题)
Android 常用架构模式
MVP
优缺点及优化
MVVM
优缺点及优化
其他
常见面试题
Android双开原理(卓动2020秋招笔试真题)
应用多开技术总结
多开技术方案 | 应用实例 |
---|---|
修改APK | 克隆大师 |
修改FrameWork(Android多用户机制) | 小米应用分身、360奇酷手机等 |
通过虚拟化技术实现(Hook) | 360分身大师、LBE平行空间、太极、VirtualApp等 |
以插件机制运行 | DroidPlugin |
- 修改APK 反编译APK,修改APK 包名、签名,将APK伪装成另外一个不同的APK,但对于一些有加密的APK,可能没办法实现。
- 修改FrameWork 对于有系统修改权限的厂商,可以修改 Framework 来实现双开的目的。
- 通过虚拟化技术实现(Hook) 虚拟 FrameWork 层、虚拟文件系统、模拟 Android 对组件的管理、虚拟应用进程管理等一整套虚拟技术,将APK复制一份到虚拟空间中运行。
- 以插件机制运行 可以在无需安装、修改的情况下运行APK文件,利用反射替换,动态代理,hook了系统的大部分与system—server进程通讯的函数,以此作为“欺上瞒下”的目的,欺骗系统“以为”只有一个apk在运行,瞒过插件让其“认为”自己已经安装。
系统级技术
多开技术方案 | 发行版App |
---|---|
Android多用户功能 | OEM系统自带的“应用分身”、“应用双开”和“Island/练妖壶”等各种 Android for work产品 |
chroot | 暂无发现App |
多用户功能: 多用户模式主要用到
UserManager
相关类,切换不同的用户,在不同用户下运行App,实现多开。但这种简单粗暴的方法会将
Android
的服务都运行多一份,如果只应用于应用多开,资源实在浪费。如 MX4-Pro 中的访客用户模式,缺点在于成本较高,需要一个支持多账户的手机才可以,而国内ROM一般都把这个功能从表面上“阉割”了。此外,双开时还需要频繁切换系统账户,且不能同时收消息,极为不便。更加遗憾的是除分身外,基本没有其他功能。
在 Android 5.0 在基于多用户功能添加了 Android for work 功能,可以在同一个桌面启动器下使用受限用户启动 APP,不再需要切换界面。同时将权限开发给了非系统应用。
chroot: 需要 root 权限,在本地挂载精简版系统镜像,然后远程进去。目前没有App实现,可能ARM服务器云手机中用到。