我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Facebook移动架构:Android Flux架构详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Facebook移动架构:Android Flux架构详解

  要为Android应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。   但是,为你的应用打造一个架构是非常重要的。不管你是否喜欢,任何应用终都会有一个架构。因此你好是成为一个架构的奠基人,而不是等着它出现。   : Clean Architecture   目前的趋势是采用Uncle Bob在2012年对web应用提出的建议: Clean Architecture。   但是我发现Clean Architecture对于绝大多数安卓应用来说都有点过度设计了。   通常移动应用要比web应用的生命短。移动端技术的发展太快,以至于发行的app可能在一年后已经完全过时。   移动应用所做的事情很少。绝大多数的用例都只是数据信息流的消费。从API获取数据,显示数据给用户,很少有输入与写入。   所以它的业务逻辑并不复杂。至少不如后端一样的复杂。虽然你要处理很多平台上的问题:内存,存储,暂停,恢复,网络,定位等等,但是这些都不是业务逻辑。所有app都有这些东西。   因此,绝大多数app似乎都无法从类似于复杂的分层或者工作执行优先级队列中获益。   他们也许只是需要一种组织代码的简单方式,能高效的一起工作,更容易的发现bug。   Flux 架构介绍   Flux 架构 被Facebook使用来构建他们的客户端web应用。跟Clean Architecture一样,它不是为移动应用设计的,但是它的特性和简单可以让我们很好的在安卓项目中采用。

  要理解Flux,有两个关键的特点   数据流总是单向的一个单向的数据流 是 Flux 架构的核心,也是它简单易学的原因。如下面讨论的,在进行应用测试的时候,它提供了非常大的帮助。   应用被分成三个主要部分:   View: 应用的界面。这里创建响应用户操作的action。   Dispatcher: 中心枢纽,传递所有的action,负责把它们运达每个Store。   Store: 维护一个特定application domain的状态。它们根据当前状态响应action,执行业务逻辑,同时在完成的时候发出一个change事件。这个事件用于view更新其界面。   这三个部分都是通过Action来通信的:一个简单的基本对象,以类型来区分,包含了和操作相关的数据。   Flux Android 架构   在Android开发中使用Flux设计规范的目的是建立一个在简单性与易扩展易测试之间都比较平衡的架构。   第一步是找到Flux元素和安卓app组件之间的映射。   其中两个元素非常容易找到与实现。   View: Activity o或者Fragment   Dispatcher: 一个事件总线( event bus),在我的例子中将使用Otto,但是其它任何实现都应该是ok的。   Actions   Actions也不复杂。它们的实现和POJO一样简单,有两个主要属性:   Type: 一个String,定义了事件的类型。   Data: 一个map,装载了本次操作。   比如,一个显示用户详情的典型action如下:   Bundle data = new Bundle();   data.put("USER_ID", id);   Action action = new ViewAction("SHOW_USER", data);   Stores   这可能是Flux理论中难的部分。   如果你之前使用过Clean Architecture,你可能难以接受。因为Stores承担了原本被分成多层的责任。   Stores包含了application的状态与它的业务逻辑。它们类似于rich data models但是可以管理多个对象的状态,而不仅仅是一个对象。   Stores响应Dispatcher发出的Action,执行业务逻辑并发送change事件。   Stores的输出是这单一的事件:change。其它对Store内部状态感兴趣的组件必须监听这个事件,同时使用它获取需要的数据。   系统中不再需要任何其它组建去了解application的任何状态信息。   后,stores必须对外公开一个获取application状态的接口。这样,view元素可以查询Stores然后相应的更新UI。

  比如,在一个Pub Discovery App 中,SearchStore被用来跟踪被搜索的item,搜索结果以及搜索历史。在同一个应用中,一个ReviewedStore同样包含了浏览pub的列表以及必要的逻辑比如根据review排序。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Facebook移动架构:Android Flux架构详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Facebook移动架构:Android Flux架构详解

要为Android应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。但是,为你的应用打造一个架构是非常重要的。不管你是否喜欢,任何应用终都会有一个
2022-06-06

Android学习之Flux架构入门

Flux 架构介绍 Flux 架构 被Facebook使用来构建他们的客户端web应用。跟Clean Architecture一样,它不是为移动应用设计的,但是它的特性和简单可以让我们很好的在安卓项目中采用。Flux模式最大的特点是单向的数
2022-06-06

如何理解FACEBOOK的系统架构

本篇文章为大家展示了FACEBOOK 的系统架构,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Web 前端是由 PHP 写的。Facebook 的 HipHop 会把PHP转成 C++ 并用 g++
2023-06-05

详解Android官方架构中UseCase

这篇文章主要为大家介绍了Android 官方架构中的 UseCase 该怎么写示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-19

Android架构发展进化详解

Android系统架构从上到下分为五层:应用层、应用框架层、系统运行库层、硬件抽象层、Linux内核层,Android架构也经历了多次演进,下面我们来详细了解一下
2022-11-13

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

1、概述 传统的Android开发架构一般是MVC模式,Model:业务逻辑和实体模型View:对应于布局文件Controllor:对应于Activity 单独从逻辑看起来非常好,与我们做Web开发时,开发模式类似,但在实际开发中,View
2022-06-06

Spring Boot构建框架详解

什么Spring Boot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,
2023-05-30

Hadoop数据湖架构详解

Hadoop数据湖架构是一种灵活的数据存储和处理架构,用于存储和管理大规模的结构化和非结构化数据。数据湖架构基于Apache Hadoop生态系统,包括Hadoop分布式文件系统(HDFS)、MapReduce、YARN和其他相关组件。数
Hadoop数据湖架构详解
2024-02-29

SpringCloud 微服务架构详解

SpringCloud 微服务学习(一) SpringCloud Alibaba1.1、单体 分布式 集群1.2、系统架构的演变1.2.1、单体应用架构1.2.2、垂直应用架构1.2.3、分层架构1.2.4、SOA架构1.2.5、微
2023-08-16

详解React Fiber架构原理

Fiber 可以理解为一个执行单元,每次执行完一个执行单元,React Fiber就会检查还剩多少时间,如果没有时间则将控制权让出去,然后由浏览器执行渲染操作,这篇文章主要介绍了React Fiber架构原理剖析,需要的朋友可以参考下
2022-11-13

如何解析Linux 驱动架构

今天就跟大家聊聊有关如何解析Linux 驱动架构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,需要熟悉操作系统的设计与实现,推荐大家看 MINIX作者的那部书,同时把MINIX
2023-06-28

Dubbo架构整体设计详解

Dubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现,本文将从Dubbo整体架构的视角出发,带你从全局俯瞰Dubbo的架构设计,感兴趣的同学可以参考一下
2023-05-15

MySQL架构设计思想详解

这篇文章主要介绍了MySQL架构设计思想详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
2022-11-13

详解python架构 PyNeuraLogic超越Transformers

这篇文章主要为大家介绍了python使用 PyNeuraLogic超越Transformers示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-22

大型web系统架构详解

动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。  
2023-06-02

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录