Android框架级Android架构设计模式程序员

Alibaba架构师首发,Android组件化与插件化学习笔记,

2021-02-04  本文已影响0人  Android阿南

先说组件化:

背景

组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。本文主要介绍我们的组件化方案,希望对从事Android组件化开发的同学能有所启发。

为什么要组件化

近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?我们认为组件化能够带来两个最大的好处:

1.提高组件复用性

可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成Android Module,打包AAR并上传代码仓库,那么这部分功能就能被方便地引入和使用。但是我们觉得仅仅这样是不够的,上传仓库的AAR库是否方便被复用,需要组件化的规则来约束,这样才能提高复用的便捷性。

2.降低组件间的耦合

我们需要通过组件化的规则把代码拆分成不同的模块,模块要做到高内聚、低耦合。模块间也不能直接调用,这需要组件化通信框架的支持。降低了组件间的耦合性可以带来两点直接的好处:第一,代码更便于维护;第二,降低了模块的Bug率。

怎样实现组件化

要实现组件化需要考虑的问题主要包括下面几个:

详细内容可见下面的笔记介绍,由于篇幅原因,只展示了部分内容,需要完整学习笔记的小伙伴可以点此处直达免费下载方式。

第一章 Android组件化初识

1.组件化和模块化的区别

  1. 组件化和插件化的区别

  2. 组件化开发的优势

  3. 业务逻辑层

5.从组件化实战来解决问题

  1. Android组件化基础

第二章 Android组件化初探

1.组件化演示案例

2. WanAndroid APP 组件化项目实战附demo

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

1.从智行 Android 项目看组件化架构实践

2.得到 App

组件化:代码隔离也难不倒组件的按序初始化

3.微信 App

4.蘑菇街 App

蘑菇街 App 的组件化之路·续

5 爱奇艺 App

6.美团 App

美团外卖容器化架构全景图

外卖页面容器建设

外卖容器化架构的衡量指标

7. 美团Android组件化方案及组件消息总线modular-event实战

8. 美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

9.WMRouter:美团外卖Android开源路由框架

10.美团猫眼android模块化实战-可能是最详细的模块化实战

11.携程App(篇幅过长,无法展示全部)

12.支付宝 App

......

再谈插件化:

相信大家都知道安卓应用开发的大量难题,其实最后都需要插件技术去解决。

现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。

插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。

掌握好插件技术,需要如下的安卓基础和相关知识,例如:

  1. Android应用程序安装,加载过程

  2. Android应用运行机制,生命周期调用原理

  3. Android应用资源编译打包原理

  4. Android应用读取资源原理

  5. Android系统AMS、PMS、NMS等系统服务的运作原理

  6. 增量更新

  7. HOOK等技术

本文将从基础的插件化原理到Android插件化初探再到大厂架构演化实战应用,总结出了较为全面与完整的安卓插件技术与插件化对 Android开发的重要性。

插件化原理

1.类加载

2.双亲委托机制

3.资源加载

4.四大组件支持

5 ProxyActivity代理

6 hook方式

7 其他组件

8 Android动态加载框架DL的架构与基本原理解析

9 Android 插件化框架 DynamicLoadApk 源码分析

image

Android插件化初探

1.从零开始实现一个插件化框架(1)

2.从零开始实现一个插件化框架(2)

3.从零开始实现一个插件化框架(3)

大厂架构演化

1.360插件开发之DroidPlugin

2. 滴滴VirtualApk实战

3.基于VirtualAPK Android重构之插件化

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

5. 360开源全面插件化框架RePlugin 实战

image

6. 腾讯插件化框架 Shadow项目解析

总结:

组件化后让代码结构非常清晰,分层结构以及之间的交互很明了,团队中的任何一个人都可以很轻松的绘制出代码结构图,这个在之前是没法做到的,并且每个组件的编译时间从 10 分钟降到了几十秒,工作效率有了很大地提升,最关键的还是解耦之后,每次开发需求的时候,面对的代码越来越少,不用背负那么重的代码包袱,可以说达到了“代码越写越少”的理想情况。如果你是一位Android开发者学好组件化是非常有必要的,而深入理解组件化的实战更是重中之重。

而插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,直至现在拆件化已成为Android开发必不可少的重点,可以说,插件化技术引领着Android技术的进步。

我相信一个高级程序员一定是勤奋的,可以快速地掌握大量 的新技术、新框架,不仅懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员 工作能力的一个重要标准,那么怎样才能将技术运用自如呢?唯有实践。

关于文中学习笔记都是免费分享给大家的,有需要的小伙伴可以点此处免费获取。

上一篇下一篇

猜你喜欢

热点阅读