插件化:大厂实战项目解说(含腾讯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 来加载。

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第1张图片

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第2张图片

第一章、插件化技术的前世今生

  • 插件化提要
  • 插件化发展历史

第二章 插件化原理

  • 类加载
  • 双亲委托机制
  • 资源加载
  • 四大组件支持
  • Proxy Activity代理
  • hook方式

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第3张图片

第三章 Android插件化初探

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第4张图片

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

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第5张图片

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第6张图片

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第7张图片

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

插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第8张图片

  • 腾讯插件化框架 Shadow项目解析
    sample示例代码AndroidManifest.xml分析
    Activity 实现
    替换插件 Activity 的父类
    Service 实现
    BroadcastReceiver 实现
    ContentProvider 实现
    框架自身动态化
    插件化:大厂实战项目解说(含腾讯Shadow项目解析)_第9张图片

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

你可能感兴趣的:(Android,插件化,java,Android开发,插件化)