大家好,欢迎来到IT知识分享网。
前言
前前后后经历过大项目、小项目,跨平台,小程序,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就在隔壁啊,好沟通。哈哈。
小总结
通过上面的闲扯,我们基本已经有了架构的雏形了吧
- MVVM + 原生 + Kotlin
或 - MVVM + 原生、Flutter + Kotlin、Dart
等等..
自己组合吧,我目前选择第二种,相信很多人的项目都已经是这样了。那么接下来我们就要实现这样的架构,架子有了,就该塞东西了,这样就显得饱满一些。
总结
从Android的架构演进,不难看出未来的世界肯定是大前端的,所谓的大前端也许是大佬们一个概念,但从这几年好多大统一的技术出现,感觉未来不远,也许就是明天,在这奉劝各位读者,提升自己就在现在,T型人才未来才是互联网的中流砥柱。
如果看到这里的读者,想在技术上有精进的话,推荐一些近年来我搜集的一些比较好的Android技术方面的文章,和一些2020最新的一些面试资料,由衷希望更多人能加入,一起学习交流。
精选文章篇
工作5年才知道的Android新版本使用Toast的那些坑,已给你总结好
华为、三星等机型禁用通知权限后Toast不弹出
阿里大牛耗时3年用无数头发换来,开源 Android 架构新方案:MvRx
今天,我们已经做好准备,分享我们的 Android 架构:MvRx(发音为 “mavericks”)。MvRx 诞生于我们一次又一次地解决相同问题的认知beijingxia,使我们不再专注于开发产品。在 Android 端,存在无数的小工作需要工程师去做或考虑,来保证 app 的高质量。
开发5年,在资本寒冬下的 android开发者,该何去何从
在2019年10月初,公司倒闭,无奈走上找工作的道路,不想自己平时图安逸,不思进取,再次找工作才发现,android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,再找工作那几个月真是战战兢兢,被打击得信心全无.记录下我的面试经历,分享给需要的人.勉励自己要时时进步,才不会被淘汰.
大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上
那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们将一起进行深入地分析与探索。
阿里大牛私下赚钱,都在使用的一些免费API接口最佳总结建议收藏
这里是一些个人开发者接私活和自己做软件加广告的一些科普知识。可是做软件,需要服务器,需要后台,对于一些小的开发者,想赚点广告费而又不想做后台使用服务器的人来说,网上提供了一些免费的接口,可以供我们使用,提供了许多数据。在这里我分享两个不错的提供WEB服务的网站。
资料篇
有需要资料的可以私信我(进阶)领取资料哦。
最新Android学习路线图
百万年薪必刷面试题
最全Android进阶学习视频
Android进阶核心知识点
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/60300.html