<返回更多

彻底理解Android架构,打造一个令人眼前一亮的项目架构

2021-09-17    像程序那样思考
加入收藏

架构究竟是什么?如何更好的理解架构?

我们知道一个App通常是由class组成,而这些class之间如何组合,相互之间又如何产生作用,就是影响这个APP的关键点。

细分的话我们可以将其分为类、接口、任务流。

我们在进行架构设计的时候,通常具有一定的目的性,用一句话来概括就是:架构设计的真正目的是为了解决软件系统的复杂度带来的问题,所谓高性能、高可用、高扩展。

我们将其大致可以分为:易扩展、易维护、可定制、可伸缩

  1. 易扩展:APP 必须能够在用户的 UV/PV 数量快速增加的情况下,保持软件合理的性能。只有这样在快速从 0 到 1 的需求迭代中才能后顾无忧。
  2. 易维护:软件系统的维护包括两方面,一是修复现有的 bug,二是将新的迭代需求开发到现有系统中去。一个易于维护的系统可以有效地降低人力和物力。
  3. 可定制:在同一个软件系统中可能面向的用户群体是不同的、多样的,需要满足根据用户群的不同和市场需求的不同进行定制化。比如一个 APP 中某些功能只针对特定用户开放。
  4. 可伸缩:在新技术出现的时候,一个软件系统应当允许接入新技术,从而对现有系统进行功能和性能的扩展。

现在我们在进行设计的时候,一般都会有要求高内聚、低耦合,以此来保证APP的高质量

为了方便大家理解,这边举个栗子:

低内聚,高耦合:

彻底理解Android架构,打造一个令人眼前一亮的项目架构

 

高内聚,低耦合:

彻底理解Android架构,打造一个令人眼前一亮的项目架构

 

大家觉得谁更好维护?更容易调整?出错了更容易排查?

我们在架构设计中最本质的目的就是管理复杂度,你听过的各种思想、原则、方法大多都是为了控制复杂度而设计出来的。

像依赖注入就是项目组件解耦中非常重要的一个手段,Dagger2 和 Hilt 都是在 Android 中最主要的依赖注入框架

依赖注入其实并不是一个很神秘的概念,往往在不经意间我们就使用了依赖注入。依赖注入应用了IOC控制反转的原理,简单来说就是在类的外部构造依赖项,使用构造器或者 setter 注入。

使用依赖注入可以为我们带来什么好处呢?

我们都知道Dagger是一个早期的依赖注入库,但确实不好用,需要配置很多东西。虽然它能很好帮我们解耦各个模块之间的强关联性,提高项目的健壮性。但其却以羞涩难懂、难用而闻名,吓退了很多的开发者。

Hilt是 Dagger2 的二次封装,Hilt 本质上是对 Dagger 进行场景化。是一个功能强大且用法简单的依赖注入框架,同时也可以说是近期 Jetpack 家族中最重要的一名新成员。但Hilt涉及的知识点也是相当繁多,即使它将 Dagger2 的用法进行了大幅的简化,如果你之前对于依赖注入完全没有了解,直接上手 Hilt 还是会有不少的困难。

在这里问大家几个问题,看看能不能回答上来:

 

说了这么多,那么我们如何学习Hilt,将IOC技术融入进我们的架构设计中呢?

为了帮助大家站在高级工程师的角度,深度理解IOC技术在移动端的实战应用,同时掌握移动端流行IOC框架Hilt与Dagger2的实战应用与实现原理。

在这里分享一份由大佬亲自收录整理的学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。

当然,你也可以拿去查漏补缺,提升自身的竞争力。

真心希望可以帮助到大家,Android路漫漫,共勉!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>