美文网首页Android开发Android开发经验谈Android技术知识
凭你的技术“你能做个淘宝、微信吗?”

凭你的技术“你能做个淘宝、微信吗?”

作者: jett老师 | 来源:发表于2020-05-21 21:45 被阅读0次

    前言

    前两天技术交流群里一个小伙伴突然问:

    不知道你们有没有遇到过,我每次过年,亲戚都会问,你现在干啥呢?我就说自己是做app、做手机应用的,就你手机上这一个个小方块。(你说你是开发他们也不懂…)

    亲戚们每次都会发出灵魂拷问:“那你能不能做个淘宝、微信啊?

    每一个Android开发者,都希望可以搭建一个优秀的 Android 开发框架。它不仅需要满足不断增长的业务需求,还要保证框架自身的整洁与扩展性,这非常困难而且过程会很痛苦,但我们必须这么做,因为健壮的 Android 开发框架是一款优秀APP的基础。

    每个App由于项目特点和需求的不同,都会出现一套基于开发者所设计的架构模式,分层、组件化、模块化,每一种设计都是基于项目所在场景的,很难适合所有项目场景。

    几种主流架构设计对比:

    MVC

    MVC 简单来说就是将整个应用分为模型(Model)、视图(View)和 控制器(Controller)三个部分;

    Android 本身的设计还是符合 MVC 架构的,但是经常会出现一些意想不到的问题,如内存泄漏等,这就导致了 MVC 的变种 MVP 的出现。优点:

    结构清晰,职责划分清晰;降低耦合;有利于组件重用;

    缺点:

    Activity/Fragment中代码较多;代码结构比较复杂;

    MVP

    MVP 架构模式是 MVC 的一个变种,最大区别就是 View 层可以发起事件。

    Presenter 层的出现帮助我们减轻了 Activity 的压力,结构上也较为清晰,但是 View 层将存在较多与 Presenter 沟通的代码,MVVM 架构就在这时候被提出来了。

    优点:

    结构清晰,职责划分清晰;模块间充分解耦;有利于组件的重用;

    缺点:

    会引入大量的接口,导致项目文件数量激增;增大代码结构复杂性;

    MVVM

    MVVM 架构模式可以说是Google “钦定”的 Android 开发未来的第一架构。

    从Model-View-ViewModel 这个名字来看,它由三个部分组成,其中视图模型(ViewModel)其实就是 PM 模式中的展示模型。除了我们非常熟悉的 Model、View 和 ViewModel 这三个部分,在 MVVM 的实现中,还引入了隐式的一个 Binder 层,我们要完整的采用 MVVM 必须熟练的掌握 DataBinding 等基础组件。

    优点:

    结构清晰,职责划分清晰;模块间充分解耦;

    在 MVP 的基础上,MVVM 把 View 和 ViewModel 也进行了解耦;

    缺点:

    Debug 困难,由于 View 和 ViewModel 解耦,导致 Debug 时难以一眼看出 View 的事件传递;代码复杂性增大;

    在开始编程前,我们不应该低估一个应用程序的复杂性。

    随着业务的不断发展,App 业务规模扩大,随之而来的是团队规模扩大,那就涉及到多人协作问题,每个移动端软件开发人员势必要熟悉如此之多代码,如果不按照一定的模块组件机制去划分,将很难进行多人协作开发。

    各种问题也会接踵而至,混乱的数据存储、获取,灵活性不够高的代码,会成为我们项目中、后期最大的阻碍,任由其自由发展的后果就是,导致项目狼藉一片,我们将很难加入新的功能,只能对它进行重构甚至推翻重做。

    搭建应用架构的方式多种多样,没有万能、一劳永逸的架构,它应该是不断迭代更新,适应业务的。

    为了让大家搭建一个健壮的 Android 开发框架,深度理解模块化、层次化、控件化、组件化,将Jetpack和Mvvm应用到工作中,在我开发这么多年的时间里我一直有搜集资料,就在今天!我整理了3个月零14天的资料!吐血!!总算一份世纪最系统的Android架构资料,新鲜出炉。

    需要的朋友私信我【学习】,我非常愿意分享给大家,希望大家多多支持我的文章咯!

    或者点击下面链接即可直接领取

    Android学习PDF+架构视频+面试文档+源码笔记


    从零开始手把手搭建App框架


    Mvvm项目Gradle优化和本地仓库搭建

    1、APP架构应该怎样搭建?

    2、MVx有哪些?区别是什么?

    3、Android工程Gradle的使用规范和本地仓库搭建;

    4、模块化、层次化工程搭建;

    基于Jetpack的Mvvm高级架构逐步实现

    1、初中级工程师是怎样实现架构?

    2、架构师怎样实现控件化,怎样定义自定义的基类?

    3、Mvvm Model的功能是什么?缓存有哪些级别,怎样提取Model的基类?

    4、Mvvm ViewModel怎样和Jetpack结合,OOM问题在MVVM中怎样避免?

    App组件化和启动性能优化

    1、Fragment和Activity的错误处理页面有完美方案吗?他们的基类又该怎样实现呢?

    2、App的白屏问题怎么解决?

    3、App启动速度性能优化;

    尾声

    题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

    我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。

    • 性能优化学习导图
    • 330页PDF Android学习核心笔记(内含8大板块)
    • Android学习的系统对应视频
    • Android进阶的系统对应学习资料

    请点赞!因为你们的鼓励是我写作的最大动力!

    不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

    相关文章

      网友评论

        本文标题:凭你的技术“你能做个淘宝、微信吗?”

        本文链接:https://www.haomeiwen.com/subject/tllxahtx.html