news 2026/8/27 12:18:18

插件化:大厂实战项目解说(含腾讯Shadow项目解析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
插件化:大厂实战项目解说(含腾讯Shadow项目解析)

一、发展历史

  • 2012年:AndroidDynamicLoader 给予 Fragment 实现了插件化框架,可以动态加载插件中的 Fragment 实现页面的切换。
  • 2013年:阿里技术沙龙上,伯奎做了 Atlas 插件化框架的分享,说明那时候阿里已经在做插件化的运用和开发了。
  • 2014年:任玉刚开源了 dynamic-load-apk,通过代理分发的方式实现了动态化
  • 2015年:张勇 发布了 DroidPlugin,使用 hook 系统方式实现插件化。
  • 2017年:阿里推出 Atlas
  • 2019年:腾讯推出了 Shadow,号称是零反射,并且框架自身也可实现动态化,看了代码以后发现,其实本质上还是使用了代理分发生命周期实现四大组件动态化,然后抽象接口来实现框架的动态化。后面有机会可以对其做一下分析。

从2012至今,可以说插件化技术基本成型了,主要是代理和 hook 系统两种方式。

二、常用名词

在插件化中有一些专有名词,如果是第一次接触可能不太了解,这里解释一下。

  • 宿主:负责加载插件的 apk,一般来说就是已经安装的应用本身。
  • StubActivity:宿主中的占位 Activity,注册在宿主 Manifest 文件中,负责加载插件 Activity。
  • PluginActivity:插件 Activity,在插件 apk 中,没有注册在 Manifest 文件中,需要 StubActivity 来加载。

插件化是一门很有意思的学问,网上已经有很多“入门知识”和“实现原理”之类的文章,但是关于插件化的实战却没有一个系统、全面的分享,下面我要分享的是最近小编有幸在腾讯高工手里扒到这份《插件化实战学习手册》,这位大佬主导开发过多个采用插件化架构的APP项目。手册中收录了各互联网大厂热门的插件化项目实战,从新手到架构师,这份学习手册足以。

第一章、插件化技术的前世今生
  • 插件化提要
  • 插件化发展历史
第二章 插件化原理
  • 类加载
  • 双亲委托机制
  • 资源加载
  • 四大组件支持
  • Proxy Activity代理
  • hook方式

第三章 Android插件化初探
  • 从零开始实现一个插件化框架
  • Activity的启动流程
  • 寻找Hook点
  • 撸码阶段
  • 代理对象
  • 偷天换日,替换原来的Intent
  • ActivityThread
  • 将代理的intent替换回来

第四章 架构演化(大厂篇)

  • 360插件开发之DroidPlugin
    插件开发之360 DroidPlugin源码分析
    插件开发之360 DroidPlugin源码分析之Hook机制
    Hook机制的包结构关系
    Hook机制类图关系
    Hook机制的时序图关系
    Manifest权限申请
    基类Hook做了什么?

  • 滴滴VirtualApk实战
    配置
    应用
    原理
    总结
    问题

  • 基于VirtualAPK Android重构之插件化
    Plug-in Hello World
    插件化框架的选择
    插件化原理
    引入插件化之痛

  • 爱奇艺插件化原理分析之 Neptune框架
    插件化基础知识点
    类加载
    插件化中资源使用限制
    Apk打包流程
    四大组件的插件化
    插件Activity任务栈
    处理插件中的广播
    处理插件中的Service

  • 腾讯插件化框架 Shadow项目解析
    sample示例代码AndroidManifest.xml分析
    Activity 实现
    替换插件 Activity 的父类
    Service 实现
    BroadcastReceiver 实现
    ContentProvider 实现
    框架自身动态化

以上就是腾讯内部强势推出的“插件化实战学习手册”,有需要的朋友直接点击文末CSDN官方认证微信卡片免费领取。↓↓↓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 12:16:34

炒股十几年的我,不知道算不算老股民了,但我可以告诉你们的是:我现在可以靠“它”养家糊口自由,下面说十几条我炒股多年的经验总结!

炒股十几年的我,不知道算不算老股民了,但我可以告诉你们的是:我现在可以靠“它”养家糊口自由,下面说十几条我炒股多年的经验总结,即是教训也是经验,信则灵,不信则不灵。没有什么对错之说&#…

作者头像 李华
网站建设 2026/8/27 12:16:11

2022年要面试的注意啦,Android面试题全网最全汇总

过年放假一结束,我相信将会是面试求职的高峰时期,如果此时手里有份高质量的面试宝典,那么你将得心应手面对考官各种问题。 这份Android面试题全网最全汇总是我整理的各大厂最新的面试题,答案部分会是一篇文章或者几篇文章&#xf…

作者头像 李华
网站建设 2026/8/27 12:15:22

蓝桥杯印章题解析:动态规划求解赠券收集概率问题

1. 项目概述:从一道蓝桥杯真题看动态规划的概率建模最近在整理蓝桥杯的算法训练题,翻到了ALGO-1007 “印章”这道题。说实话,第一次看到题目描述时,我愣了一下,因为它看起来更像是一道数学概率题,而不是传统…

作者头像 李华
网站建设 2026/8/27 12:13:37

什么?你还不会用Kotlin?一起跟着官方文档学习Kotlin协程吧

为什么学Kotlin? Java用的挺好,为什么要学Kotlin?这是我之前的想法,但是越往后,这个想法慢慢的变淡。为什么?往下看: 薪资以前找工作以Java为主,Kotlin优先(Kotlin属于加…

作者头像 李华
网站建设 2026/8/27 12:10:08

中国机器人突围:从核心零部件国产替代到AI大模型与ROS 2实践

做机器人项目的朋友,大概都有过类似的选型时刻:需要一台能在产线上稳定运行六七年、精度还能保持得住的中负载工业机器人,结果核心零部件清单翻下来,减速器、伺服电机、控制器芯片、高精度编码器,大多数都要看进口品牌…

作者头像 李华
网站建设 2026/8/27 12:09:15

K-均值聚类算法:从原理到实战的完整指南

1. 从“物以类聚”到数据洞察:K-均值聚类的核心价值在数据分析的日常工作中,我们常常会遇到这样的场景:手头有一堆客户数据,有年龄、消费金额、活跃天数等十几个维度,老板让你“看看我们的客户大概能分成几类人”。或者…

作者头像 李华