浅谈2020年Android发展:当下最合适的架构

前言

前前后后经历过大项目、小项目,跨平台,小程序,Nodejs服务等等,目前在做的Rom开发,定制各种手机中的奇葩需求,从应用层到Framework层,再到C++层,再到驱动,最终到Linux,研究过java虚拟机,虽然没研究过ART或者老牌的Dalvik虚拟机,但原理都差不多,并不影响我对Android有一个全局的认识

今天我们的主题是架构,其实对架构的理解一定要宏观一点,大到手机操作系统架构,小到代码逻辑设计的架构,一句老话讲的好,也代表了我对架构的整体理解:没有最好的架构,只有最合适的架构

下面我们聊聊,一个好的架构是什么样子的,该怎么去判断呢。

好的架构应该有的优势

大道至简

简单直白、朴实无华、科学至真、人生至理、灵魂至美,简单是一个架构好的灵魂。这是考验一个架构师的终极指标,如何保证简单的设计,来让大部分人接受,用起来简单,又可以保证架构的稳定性,保证不被破坏,很难很难。

万变不离其宗

以不变应万变,好的架构,总能抓住不变的部分,将变的部分做好抽象,满足各类场景,在我们代码的世界里就是做好接口和抽象。

抽丝剥茧

丝得一根一根地抽,茧得一层一层地剥,对的,一个好的架构绝对是层次分明,各司其职,做人做事一样,做好自己不越界是门技术活。世间万物,都是独立的存在,可以很近,又可以很远。代码架构的设计当然离不开层次的设计。

领域驱动

架构不是满足所有领域,不是大杂烩,他是针对特定领域的最完美的总结,关注特定领域,保持初心。

Android架构演进

MVC > MVP > MVVM

我们先回顾一下google为我们做了什么,一开始我们接触Android,大家都在用MVC,甚至可以说没有架构,而且那个时候app是真的简单,但随着不断的迭代,问题越来越多,google也发现了这个问题,于是github开源了MVP架构的示例,教我们如何整合框架,如何在架构设计上保证业务的发展需求,再到现在主推的MVVM,其实不难发现一个共性,WEB端大家都知道吧,你看现在最火的React、Vue,不都是MVVM的架构吗(有人说不是,有人说是,这里不多解释,我们不应该纠结是不是,应该理解M-V 、 V-M 是数据绑定UI,无非是单向还是双向的,都属于一种理念吧,理解就行。)

原生 > React Native > Flutter

一个好的架构只是MVC到MVVM吗?我不这么认为,从一开始我们接触到原生的Android开发,到后来大火的React Native,我们16年还专门集成了React Native模块,但做了几个迭代后放弃了,我们发现为了适配Android、Ios 也花费了很多时间,倒不如用原生做的好用。目前最火的Flutter,也是Google主推的跨平台框架,而且我们现在就在C端项目中集成了,效果还不错,虽然也是有很多问题,但总体来看比React Native 要好,还有一点Google内部正在开发的另一个操作系统Fuchsia的UI layer采用的是Flutter,也就是说Flutter天然可以支持Android、IOS以及未来的Fuchsia。在大前端方向,对于跨平台开发中一直在不断迭代中寻找更好、更优的解决方案,目前来看Flutter还是更有优势

Java > Kotlin,Dart

来说说语言,你说语言属于架构吗?我也不知道,但这是我架构的时候考虑的一个方向,语言是我们组织架构最基础的单元,kotlin的普及,应该不仅仅是google认为语言不错,让我们广大开发者使用,其实这里面涉及了很多东西,我们知道最新的Android引用的是open jdk,前几年的官司打个不停,付出了不少人力财力,这肯定不是我们还要考虑的,但有一点可以肯定,kotlin语言确实是个趋势,因为他有更合理的设计,更安全的性能表现,更加简洁的代码,当然你可以用java写Android写到老,我也不认为你用kotlin写就一定比java写的好,看个人选择吧。再说说Dart,这个我就有点不理解,为啥Flutter一定要用Dart写,好像Google工程师这么回答:说Dart就在隔壁啊,好沟通。哈哈。

总结

通过上面的闲扯,我们基本已经有了架构的雏形了吧

  1. MVVM + 原生 + Kotlin
  2. MVVM + 原生、Flutter + Kotlin、Dart
    等等…
    自己组合吧,我目前选择第二种,相信很多人的项目都已经是这样了。那么接下来我们就要实现这样的架构,架子有了,就该塞东西了,这样就显得饱满一些。

结语

从Android的架构演进,不难看出未来的世界肯定是大前端的,所谓的大前端也许是大佬们一个概念,但从这几年好多大统一的技术出现,未来不远,也许就是明天,T型人才未来才是互联网的中流砥柱,不光要学好Android,也要横行发展。

在这里我也分享一份大佬自己收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识专题都配有详细的知识点,还有相对应的实战项目,可以有效的帮助大家掌握知识、理解原理。当然你也可以拿去查漏补缺,提升自身的竞争力。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,可以加Vx:15388039515(备注CSDN,需要进阶资料)

喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值