VirtualAPK 详解和使用,真牛

2023-11-05

3.1 基本原理

  • 合并宿主和插件的ClassLoader
    需要注意的是,插件中的类不可以和宿主重复
  • 合并插件和宿主的资源
    重设插件资源的packageId,将插件资源和宿主资源合并
  • 去除插件包对宿主的引用
    构建时通过Gradle插件去除插件对宿主的代码以及资源的引用

3.2 四大组件的实现原理

  • Activity
    采用宿主manifest中占坑的方式来绕过系统校验,然后再加载真正的activity;
  • Service
    动态代理AMS,拦截service相关的请求,将其中转给Service Runtime去处理,Service Runtime会接管系统的所有操作;
  • Receiver
    将插件中静态注册的receiver重新注册一遍;
  • ContentProvider
    动态代理IContentProvider,拦截provider相关的请求,将其中转给Provider Runtime去处理,Provider Runtime会接管系统的所有操作。
    VirtualAPK的整体架构图,更详细的内容请大家阅读源码。

3.3 VirtualAPK的整体架构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VirtualAPK 详解和使用,真牛 的相关文章

随机推荐

  • 解决 Mac 中英文切换频繁出错(删除 ABC)

    Mac 常遇到想输入中文却输出英文 反之亦然 多次切换很麻烦 下面介绍两种方案来解决此问题 如果担心隐私不用搜狗 百度 又不想用自带输入法 可以选择鼠须管 方案一 禁用第三方输入法切换英文 例如搜狗输入法只输出中文 设置按键 状态切换 中英
  • java理论知识浙大_java 理论知识(-)

    关键字和保留字区别 关键字 keyword 表示一种数据类型 或者表示程序的结构等 保留字 reserved word 为java预留的关键字 以后的升级版本中可能作为关键字 支持概念 1 多态 2 继承 3 封装 4 抽象 5 类 6 对
  • deep learning: deep feedforward network (output and hidden layer)

    deep forward networks feedforward neural networks multiplayer perceptrons MLP input layer hidden layer output layer acti
  • rpm 安装时提示缺少依赖库

    在麒麟系统下安装ecryptfs utils 82 6 ky3 3 x86 64 rpm 该软件包在 麒麟光盘的 KYLIN目录下 使用如下命令 rpm ivh ecryptfs utils 82 6 ky3 3 x86 64 rpm 提示
  • 循环数组有几种方法?

    第一种 普通for循环 for i 0 i
  • H3C交换机SSH配置举例

    注 本文仅供个人学习参考 禁止用作商业用途 因他人转载产生纠纷 本人不承担任何责任 password认证配置举例 1 组网需求 如图 配置Host SSH客户端 与Switch建立本地连接 Host采用SSH协议登录到Switch上 以保证
  • Unity3d--实现太阳系仿真

    一 实验要求 写一个程序 实现一个完整的太阳系 其他星球围绕太阳的转速必须不一样 且不在一个法平面上 二 实验过程 创建如下结构 solar 里包括太阳和8大行星 并且设置好距离和大小 在网上找到相应贴图 添加到assets 将贴图拖动到对
  • Vue中的侦听器:数据变化的秘密揭示

    一 侦听器 vue中想监听数据的变化 一 侦听器watch 如何侦听到某个变量值改变呢 使用watch配置项 watch 可以侦听到data computed属性值的改变 语法 watch 被侦听的属性名 newVal oldVal 快速入
  • 2021全国职业技能大赛-网络安全赛题解析———防火墙篇iptables(超详细)

    2021全国职业技能大赛 网络安全赛题解析 防火墙篇 模块A防火墙的基本规则操作 什么是防火墙 iptables 有问题私信博主 模块A防火墙的基本规则操作 什么是防火墙 iptables IPTABLES 是与最新的 3 5 版本 Lin
  • 2021Robocom决赛---账户安全预警

    拼题 A 系统为提高用户账户的安全性 打算开发一个自动安全预警的功能 对每个账户的每次登录 系统会记录其登录的 IP 地址 每隔一段时间 系统将统计每个账户从多少不同的 IP 地址分别登录了多少次 如果某个账户的登录 IP 超过了 TIP
  • Python如何将字符串(str/json)转换字典(dict)

    一 字符串str转为字典dict 1 使用json进行转换 import json a a 1 b 1 c json loads a print c type c 输出 a 1 c 1
  • GraphQL 中文 -- 一份不标准不专业的翻译

    请移步我的 Github 查看翻译 如有翻译不恰当的地方欢迎指正
  • python 实现GUI(图形用户界面)编程

    Python支持多种图形界面的第三方库 包括 wxWidgets Qt GTK Tkinter Tkinter 模块 Tk 接口 是 Python 的标准 Tk GUI 工具包的接口 Tk 和 Tkinter 可以在大多数的 Unix 平台
  • Springboot整合Swagger2(3.0.0版本)

    天行健 君子以自强不息 地势坤 君子以厚德载物 每个人都有惰性 但不断学习是好好生活的根本 共勉 文章均为学习整理笔记 分享记录为主 如有错误请指正 共同学习进步 文章目录 Swagger2简介 开发环境 实现步骤说明 1 搭建项目 2 引
  • JxBrowser Java浏览器控件

    关键字 JxBrowser能在Windows Linux Mac OS X Intel and PPC based 平台上将Mozilla Firefox浏览器完美地整合到Java AWT Swing应用程序里 该库程序使用Gecko设计引
  • win7/win10电脑屏幕录像工具?

    目前windows系统中 windows 7系统是没有自带的录屏软件 windows 10系统也是对电脑型号有要求 所以在录屏的时候 就需要通过其他三方工具去处理 下载安装 一款优质录屏软件可以给我们的工作以及生活带来不少的便捷 QVE屏幕
  • linux 查看定时任务

    输入cd var spool cron命令 输入ls命令列出cron目录下的定时任务 vi 查看
  • 强制tensorflow使用cpu

    one start import tensorflow as tf cpu tf config list physical devices CPU tf config set visible devices cpu print tf con
  • Java 中SimpleDateFormat类的使用

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 SimpleDateFormat类的介绍 SimpleDateFormat类是一个具体的类 用于以区域设置敏感的方式格式化和解析日期 日
  • VirtualAPK 详解和使用,真牛

    3 1 基本原理 合并宿主和插件的ClassLoader 需要注意的是 插件中的类不可以和宿主重复 合并插件和宿主的资源 重设插件资源的packageId 将插件资源和宿主资源合并 去除插件包对宿主的引用 构建时通过Gradle插件去除插件