组件化,插件化和热更新


什么是组件化:

  1. 为什么要有组件化?

加入一个app工程只有一个组件,随着app业务的壮大模块越来越多,代码量超10万是很正常的,这个时候我们会遇到以下问题:

  • 稍微改动一个模块的一点代码都要编译整个工程,耗时耗力
  • 公共资源、业务、模块混在一起耦合度太高
  • 不方便测试

这样的好处:
* 每个模块可以独立开发编译运行
* 开发单个模块时可以共享资源和工具类
* 可以针对单个模块测试

参考文章链接:[http://blog.csdn.net/guiying712/article/details/55213884 ]
github链接:[https://github.com/llayjun/ModuleProgramming ]


什么是插件化

  1. 为什么有插件化?

有了组件化,为什么还要用插件化呢?插件化开发总的来说有以下几点好处(不同插件框架不一样):

  • 宿主和插件分开编译
  • 并发开发
  • 动态更新插件
  • 按需下载模块
  • 方法数或变量数爆棚

主要有这几种插件化模式值得研究
1. 滴滴/VirtualAPK
2. 奇虎360/RePlugin/DroidPlugin

github链接:以DroidPlugin为例[https://github.com/llayjun/PlugProgramming ]


什么是热更新

在用户使用App的时候,不知不觉,这个Bug就被修复了。

主要有这几种热更新值得研究
1. 阿里的Sophix,暂时处于内侧阶段,后期不知道要不要收费
2. 微信的Tinker

博客链接:以Tinker为例:[http://www.jianshu.com/p/b7b7cf40f700 ]
github链接:以Tinker为例:[https://github.com/llayjun/MyTinkerDemo ]


自我理解:
①组件化:
1. 用于项目过大,每次编译时间长
2. 用于团队多个人分工开发不同的模块
②插件化:
3. 用于版本新添加功能
4. 解决方法数超过65536问题
5. 按照需要下载模块,减小项目apk的大小
③热更新:
6. 用于修复已经上线的bug等问题
7. 一般不用于新功能的版本上线

组件化,插件化和热更新相关推荐

  1. 蘑菇街Android组件与插件化

    插件化的基石 -- apk动态加载 随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到"有个功能我想周x上,行不行".行么?当然是不行啦,上新功能得 ...

  2. 阿里开源android脚手架,GitHub - HiJesse/Gaea: Android 脚手架(组件化, 插件化)

    Gaea Gaea是一个基于Atlas实现Android项目组件化和插件化的脚手架. 可以根据此脚手架快速开发一款具有插件化特性的App, 也可以提供参考和帮助现有项目实现插件化. 项目模块 模块命名 ...

  3. android热更新插件,与Android热更新方案Amigo的再次接触

    Amigo 作为一个"过气"的的热修复框架,用来学习和了解一下热修复的基本原理还是很好的.本文是本系列的第三篇. 前两篇: 与Android 热更新方案Amigo的初次接触 原作者 ...

  4. Android APP热更新中的插件化(Hook技术:反射或动态代理),Demo (2)

    修改AAPT,资源分区,用于Android插件化- https://github.com/BaoBaoJianqiang/AAPT -- Android下的挂钩(hook)和代码注入(inject) ...

  5. golang 热插拨 插件_从零开始实现一个插件化框架(一)

    欢迎关注专栏:里面定期分享Android和Flutter架构技术知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿. Flutter跨平台开发终极之选​zhua ...

  6. Android热修复及插件化原理

    1.前言 热修复一直是这几年来很热门的话题,主流方案大致有两种,一种是微信Tinker的dex文件替换,另一种是阿里的Native层的方法替换.这里重点介绍Tinker的大致原理. 2.类加载机制 介 ...

  7. (4.6.29.3)插件化之代码加载:启动Activity等四大组件之hook方式

    文章目录 一.代理模式和Hook原理 1.1 Hook 原理 1.2 代理模式 二.Binder Hook 2.1 分析:系统服务的获取过程 2.2 寻找Hook点 2.3 hook Binder示例 ...

  8. Android组件化与插件化的差别在哪里,该怎么选型?

    面试官: 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型? 心理分析:面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化,在过去经验有没有运用过这些技术到项目中,这道题属于一个连环 ...

  9. Android组件化和插件化开发

    项目发展到一定程度,就必须进行模块的拆分.模块化是一种指导理念,其核心思想就是分而治之.降低耦合.而在 Android 工程实践,目前有两种途径,一个是组件化,一个是插件化. 组件化开发 说起组件化少 ...

  10. Android组件化和插件化开发,android开发工程师月薪

    开发调试时不需要对整个项目进行编译,每个模块可独立编译,提高了编译速度. 多人合作时可以只关注自己的业务模块,把某一业务当成单一项目来开发,可以提升开发,测试效率. 可以灵活的对业务模块进行组装和拆分 ...

最新文章

  1. 【转载】在Linux CentOS中安装VSCode用于C++学习,亲测可用
  2. C#中类的属性(Property)
  3. 检测主机是否在线小脚本
  4. boost::fusion::pair用法的测试程序
  5. 我的新书《PWA入门与实践》上市了
  6. java数组的二进制查找_Java程序在长数组上实现二进制搜索
  7. java语法基础总结,顺利拿到offer
  8. LINUX环境变量environ
  9. phpstudy mysql 1067_MySQL_MySQL的1067错误解决,1 安装MYSQL后更改了ROOT的密码 - phpStudy...
  10. SPDK/PMDK/VTune Amplifier 2019中国峰会顺利落幕
  11. “任务管理器已被管理员禁用”如何解除?
  12. @Cacheable注解属性介绍
  13. 网页分享到贴吧,微博
  14. 计算机二级是win7,计算机二级等考宝典
  15. 360浏览器,qq浏览器等登录页输入账号密码,在页面内再次遇见有密码框的地方会自动填充的解决办法。
  16. 人脸活体/活性检测方法综述
  17. 【FFmpeg】rtmp推流
  18. 最小二乘法实验c语言实现,最小二乘法拟合C语言实现
  19. moment 当前周一到周日_记一次用momentjs获取一年内所有周的起始时间遇到的bug
  20. MATLAB mex文件

热门文章

  1. Android环境下的GDB调试
  2. VS2012配置FreeImage
  3. 数据库程序设计复习资料
  4. stm32串口传输数据第一个数据被吞_STM32串口发送第一个字符丢失解决之道
  5. 为什么我得到javafx.fxml.LoadException甚至fxml文件的路径都是正确的
  6. shell 查看空行与删除空行
  7. hadoop 新API与旧API对比
  8. PyTorch入门(三)损失函数与反向传播
  9. ICRA2021会议-----SLAM方向汇总
  10. php 调用永中云,永中优云:是时候给大家介绍真正的云端Office了