Android MVP 架构必要知识:第二部分

本文讲的是Android MVP 架构必要知识:第二部分,


这是本系列文章的第二部分。在第一部分,我们提出了 MVP 的概念,并做出了一个安卓应用架构的蓝图。如果你还没有阅读第一部分,那么大部分接下来的文章将对你没有多大意义。所以,在你继续读下去之前,浏览一遍第一部分。

这是指向第一部分的链接:

Android MVP 架构必要知识:第一部分

基于在第一部分中提出的蓝图,我们将开发一个成熟的安卓应用,通过它实现 MVP 架构。

MVP 项目的 GitHub repo 地址:

MindorksOpenSource/android-mvp-architecture

本项目旨在提供一种正确的安卓应用架构方式。它包括了大多数安卓应用的全部代码模块。

这个项目刚开始看起来会很复杂,但是随着你花时间去探索,你看它也会变得更清晰明了。这个项目是用 Dagger2, Rxjava, FastAndroidNetworking 和 PlaceHolderView 实现的。

把这个项目当作一个学习案例。研究它的每一行代码。如果这里面有任何 bug 或者你能想出一个更好的逻辑实现,创建一个 pull request。我们在逐步写测试。欢迎你为测试做贡献,并通过 pull request 的方式提交。

开发出的应用的截屏如下:

这个应用有一个登录页面和一个主页面。登录页面实现了 Google,Facebook 和服务器登录。Google 和 Facebook 登录是通过哑 API 实现的。登录是基于获取 access token 的,接下来的调用都被这个 token 所保护。主屏幕创建了和 MVP 相关问题的答题卡。这个 repo 包含了任何应用的大多数组件所需的基本框架。

让我们看一眼项目的结构:

整个应用被打包为五个部分:

  1. data: 它包含所有访问和操控数据的组件。
  2. di: 使用 Dagger2 提供依赖的类。
  3. ui: View 类和它们对应的 Presenter。
  4. service: 应用需要的服务。
  5. utils: 工具类。

类的设计方法是这样的:它们应该能够被继承,并能最大化代码复用。

项目结构图:

简单的想法包含复杂的概念。

有很多非常有趣的部分。但如果我尝试同时解释所有的部分,信息量就太大了。所以,我认为最好的做法是解释核心的理念。这样,读者就可以通过浏览项目 repo 来理解这些代码。我建议你至少花一周时间研究这个项目。按照时间从后到前的顺序研究这些主要的类。

  1. 研究 build.gradle 并寻找它使用的所有依赖。
  2. 探索 data 包以及 helper 类的实现。
  3. ui base 包创建了Activity, Fragment, SubView 和 Presenter 的基类。所有其他相关的组件都应该从这些类派生。
  4. di 包是应用中负责提供依赖的类。要理解依赖注入,请浏览我发表的由两部分组成的文章,Dagger2 part 1 和 Dagger2 part 2
  5. 资源:Styles, fonts, drawable。






原文发布时间为:2017年2月16日


本文来自合作伙伴掘金,了解相关信息可以关注掘金网站。

时间: 2024-08-29 05:32:06

Android MVP 架构必要知识:第二部分的相关文章

浅谈Android官方MVP架构解读_Android

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

Android开发中的MVP架构

最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点: 为什么越来越多的人开始关注架构? 首先,MVP是什么? 哪种架构才是最好的,MVC,MVVM还是MVP? MVP的利与弊 Show me the code!!!代码展示 不幸的,这篇文章将不包括: 详细生动的代码示例 如何编写测试代码 最后,我将告诉你如何更进一步学习这些专题.

Android应用架构之MVP实现

回顾上一篇文章<Android应用架构概述>,我们知道,Android App 本质上抽象成两个层次:视图和数据.为了App在发展过程中快速的适应变化,方便维护和快速迭代,我们要将数据和视图解耦,而在解藕方面我们的前辈们在漫长的软件开发经验中为我们提供了两套流行的指导框架:MVC和MVP,其中MVP近年来在Android应用开发上逐渐流行.接着上一篇的内容,本章我将结合具体例子说清MVP解藕的实现.所以本章的思路是:以登录为业务场景,分析对比"非MVP"和MVP的实现方式.

详解Android中的MVP架构分解和实现

1.概述 传统的Android开发架构一般是MVC模式, Model:业务逻辑和实体模型 View:对应于布局文件 Controllor:对应于Activity 单独从逻辑看起来非常好,与我们做Web开发时,开发模式类似,但在实际开发中,View对应于布局文件,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,Activity既像View又像Controller(MVVP架构中包括数据绑定),导致Activity中职责太重,耦合度大.修改和维护起来非常麻烦. 2.MV

浅谈Android官方MVP架构解读

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

一种Android客户端架构设计分享

前言:技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构.而架构也不是一成不变的,随着业务的发展,也许当初设计的架构已不足以支撑目前的业务,那么就需要改变之前的架构.接下来将分享下我们Android客户端的架构设计,在App的某个业务发展阶段或许有一些参考意义. 分层化与模块化 分层化与模块化应该是任何软件开发的共识. 分层化 在Android应用开发中通常可以分为如下几层:  SDK层:主要

完整的Android MVP开发之旅_Android

开发背景 最近是在做一个与健身相关的APP,里面有训练器模块基本功能是按照特点动作的演示和描述来引导用户完成训练.在第一个版本时由于没接触过些类项目与功能花了几周的时间大概1500行代码才完成这个功能, 当时虽然我已经尽量让代码表现的清晰,但是可以想像到当一个Activity中包含这么多代码是什么感觉.自己维护起来都难受. 先谈设计 有了前一次设计经验此次开发使用MVP.模块化.面向接口等概念,将整个训练器分为控制器.数据模型.音频.视图.可训练对象五个模块分别用以下接口表示: ITrainer

android-有哪些关于Android系统架构,底层实现方面的技术书推荐?

问题描述 有哪些关于Android系统架构,底层实现方面的技术书推荐? 有哪些关于Android系统架构,底层实现方面的技术书推荐? 解决方案 Learning Android (中文版)第二版 解决方案二: 推荐你看老罗的博客和书博客:老罗的Android之旅 解决方案三: 如果是想了解android frameworks开发,你可以看看<Sundy--Android嵌入式底层开发课程共享版> 解决方案四: 我也有这个需求啊..来看看大家的分享~同求推荐

《Android 网络开发与应用实战详解》——2.3节Android系统架构

2.3 Android系统架构 Android 网络开发与应用实战详解 在本节内容中,将进一步分解Android应用程序,详细剖析Android应用程序的核心构成部分,为读者学习本书后面知识打下基础. 2.3.1 Android体系结构介绍 Android作为一个移动设备的平台,其软件层次结构包括操作系统(OS).中间件(MiddleWare)和应用程序(Application).根据Android的软件框图,其软件层次结构自下而上分为以下4层. (1)操作系统层(OS). (2)各种库(Lib