前言:插件化技术发展到现在其实已经很成熟了,但是相应的问题,如果没有真正地去实践过,根本不了解其中有多少问题,会牵涉到多少技术细节,多少被外人膜拜的外表光鲜的技术大牛都被『插件化』这三个字折磨地死去活来,这对于 Android 整个生态的损害也让人无法忽视。

一.Android插件化的细节:

1.在 Android 里有一个比较好的一点是,作为 library 的时候,aar 里的引用依赖,在宿主 Application 里也有同样的引用依赖,并不会打包两份到宿主 Application 里;

2.模块之间的跳转,除了使用别名的方式,我能想到的还有另外一种方式,同样是通过 gradle 脚本,将跳转用到的类打成一个 jar ,作为一个 API 服务提供给其他模块作为编译期依赖(provided)引入;

3.各个 library 在 debug 的时候作为 apk ,要独立打包运行测试,这时就需要有一个启动 Activity ,而 library 是不需要的,我的想法是放置两个 AndroidManifest.xml ,使用 sourceSets 分别在 debug 和 release 的时候加载不同的 AndroidManifest.xml。

二.开源插件化框架(框架详解及优缺点对比图如下:):

目前成熟的开源框架分别有 

  1. 360插件开发之DroidPlugin ,360开源全面插件化框架RePlugin 

a.DroidPlugin是360手机助手在Android系统上实现了一种新的插件机制。它可以在无需安装、 修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定好 处。

b.RePlugin 是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的 RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的 方 案。

2.滴滴VirtualApk

a.VirtualAPK是滴滴在2017年6月开源的一款插件化框架,支持Android四大组件,以及几乎所有的Android特性,通过Gradle来构建插件,集成与构建十分便捷,目前已经应用在 滴滴出行App上,兼容市面上几乎所有的Android设备。

3.爱奇艺插件化原理分析之 Neptune框架

a.Neptune是爱奇艺移动端研发的一套灵活,稳定,轻量级的插件化解决方案。经过不断的研 发,迭代和线上验证,目前已经完全适配了Android P,能够在数亿的设备上动态加载和运行插件APK,为爱奇艺众多的垂直业务团队提供了稳定的服务。

4.腾讯插件化框架 Shadow
    a.Shadow是一个腾讯自主研发的Android插件框架,经过线上亿级用户量检验。Shadow不仅开 源分享了插件技术的关键代码,还完整的分享了上线部署所需要的所有设计。更是具有复用独 立安装App的源码、零反射无Hack实现插件技术、全动态插件框架、宿主增量极小、Kotlin支持等特点。

特性 RePlugin VirtualAPK Qigsaw Shadow
开源方 奇虎360 滴滴 爱奇艺 腾讯
支持四大组件
支持新增四大组件 ×
支持原生资源动态化
Flutter代码动态化
Flutter代码资源动态化 × × × ×
Hook方式
Android系统兼容 2.3-9.0 4.03-9.0 4.0+ 4.0-12
厂商系统兼容性
多插件支持 ×
框架自身动态化 × × ×
接入难度

Android主流插件化相关推荐

  1. android中的插件开发框架,设计并开发一个 Android 的插件化框架

    结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...

  2. 酷狗 Android App 插件化实施过程

    什么是插件化框架     插件化框架可以在主程序不重新安装的情况下,针对单个业务模块进行加载达到模块更新的目的,整个加载更新过程,对用户来说也是无感知的.     正式因为这样,新需求比起传统更新方式 ...

  3. Android之插件化开发

    个人认为: 2017年手淘Atlas插件化项目的开源标志着插件化的落幕, 2018年Android 9.0上私有API的限制几乎称得上是要退出历史主流. 如今的插件化技术朝两个方向发展: 其一,插件化 ...

  4. android 禁止插件化,Android 插件化实现方式(Hook)

    一.首先我们要找到Hook的点 1. 分析 我们先大概看下activity的启动流程(图片来自Android 插件化开发指南) image 当我们调用startActivity的时候,AMS对我们要启 ...

  5. 【android】插件化技术原理详解

      作为移动端的黑科技,插件化技术一直受大厂的青睐.插件化技术有减少宿主Apk体积,可以独立更新,模块化开发等优点,让宿主APP极具扩展性.那么,现在就来聊聊其中的技术实现,国际惯例,先上效果图 这篇 ...

  6. 携程Android App插件化和动态加载实践

    转载自:http://www.infoq.com/cn/articles/ctrip-android-dynamic-loading?email=947091870@qq.com 编者按:本文为携程无 ...

  7. android contentprovider 插件化之一

    ------本文转载自 Android插件化原理解析--contentprovider的插件化      这一系列的文章实在是写的好! 1, 概述 目前为止我们已经完成了Android四大组件中 Ac ...

  8. android aapt插件化,Android APK文件(三、AAPT2工具使用)

    AAPT2(Android 资源打包工具)是一个构建工具,Android Studio 和 Android Gradle 插件使用它来编译和打包应用的资源.AAPT2 会解析资源.为资源编制索引,并将 ...

  9. 【Android 插件化】Hook 插件化框架 ( hook 插件化原理 | 插件包管理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  10. Android插件化技术调研

    一.技术背景 Android的插件化技术,目前已经比较成熟,微信.淘宝.携程.360手机助手中都应用到了插件化.插件化技术的特点是无需单独安装apk,即可运行,即插即用,无需升级宿主应用,减少app的 ...

最新文章

  1. java 线程可见性,Java多线程之内存可见性
  2. MyBatis 分页插件 PageHelper
  3. intellij idea_IntelliJ IDEA内部设计
  4. JS之onsubmit事件与组织事件外延
  5. 前端-chromeF12 谷歌开发者工具详解 Network篇
  6. LRU原理和Redis实现
  7. oracle optimizer_index_cost_adj,OPTIMIZER_INDEX_COST_ADJ与成本计算
  8. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本
  9. JavaParser使用指南
  10. hash表的一些基本知识
  11. 手心输入法 -无广告不骚扰
  12. 15b万用表怎么测电容_手工改造丨把15B万用表隐藏的功能利用起来~
  13. java.lang.IllegalArgumentException: Address 127.0.0.1:5672:5672 seems to contain an unquoted IPv6
  14. Neo4j 爬坑笔记for3.2.6
  15. 范式(Paradigm)是什么?
  16. 不知道如何录音转文字?分享两个实用方法
  17. 【内核笔记】博文2021回顾-2022规划
  18. 使用AppiumDesktop控制手机
  19. Java网络编程学习
  20. Word转pdf一个方法就可以完成~手机电脑都可以免费使用~办公必备

热门文章

  1. 在编译命令行中添加 /D_SCL_SECURE_NO_DEPRECATE
  2. 光学系统建模之Light Tools安装关键点、教程指引
  3. 为什么要写书?出版图书有哪些好处?
  4. Attention-guided Context Feature Pyramid Network for Object Detection
  5. arn : 无法加载文件 C:\Users\zky\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.
  6. 22. 关于定时任务指定的时间间隔内没有完成任务的处理
  7. hhkb mac设置_HHKB MAC 配置指南 操作指南 快捷键
  8. 用matlab解超越方程,MATLAB实例之对线性,非线性,超越方程的求解
  9. 基于CAN总线的汽车诊断协议--Windows上位机设计
  10. 生成的SMILES以及对应的图像的评价指标【1】