目录

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
  1. 修改APK 反编译APK,修改APK 包名、签名,将APK伪装成另外一个不同的APK,但对于一些有加密的APK,可能没办法实现。
  2. 修改FrameWork 对于有系统修改权限的厂商,可以修改 Framework 来实现双开的目的。
  3. 通过虚拟化技术实现(Hook) 虚拟 FrameWork 层、虚拟文件系统、模拟 Android 对组件的管理、虚拟应用进程管理等一整套虚拟技术,将APK复制一份到虚拟空间中运行。
  4. 以插件机制运行 可以在无需安装、修改的情况下运行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服务器云手机中用到。

用户级技术