返回顶部
首页 > 资讯 > 移动开发 >Facebook移动架构:Android Flux架构详解
  • 187
分享到

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

fluxAndroid架构 2022-06-06 12:06:33 187人浏览 八月长安
摘要

  要为Android应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。  

  要为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排序


--结束END--

本文标题: Facebook移动架构:Android Flux架构详解

本文链接: https://lsjlt.com/news/28587.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Facebook移动架构:Android Flux架构详解
      要为Android应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。  ...
    99+
    2022-06-06
    flux Android 架构
  • Android学习之Flux架构入门
    Flux 架构介绍 Flux 架构 被Facebook使用来构建他们的客户端web应用。跟Clean Architecture一样,它不是为移动应用设计的,但是它的特性和简单可...
    99+
    2022-06-06
    android学习 flux Android
  • 如何理解FACEBOOK的系统架构
    本篇文章为大家展示了FACEBOOK 的系统架构,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Web 前端是由 PHP 写的。Facebook 的 HipHop 会把PHP转成 ...
    99+
    2023-06-05
  • 详解Android官方架构中UseCase
    目录1. UseCase 的用途2. UseCase 的特点2.1 不持有状态2.2 单一职责2.3 可有可无3. 如何定义 UseCase3.1 Optional or Manda...
    99+
    2023-05-19
    Android官方架构UseCase Android官方架构
  • Android架构发展进化详解
    目录一.MVC架构1.概述2.例子二.MVP架构1.概述2.例子三.MVVM架构1.概述2.例子四.Clean架构1.概述2.例子五.MVI架构1.概述2.例子六.总结1.从MVC架...
    99+
    2022-11-13
    Android 架构 Android 架构发展
  • 详解CocosCreator MVC架构
    概述 这一篇将介绍在游戏客户端常用的架构MVC架构。一个游戏的MVC如下划分: M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结...
    99+
    2024-04-02
  • Android系统架构
    一、Android系统架构          Android 是谷歌开发的一款基于 Linux 内核的操作系统。系统架构分为五层,从下到上依次是Linux内核层、硬件抽象层、系统运行库层、应用框架层和应用层。 1、应用层(System A...
    99+
    2023-10-04
    android
  • memcache 主从架构 详解
    repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的 master/slave都是可读写的,而且可以相互同步,如果 master坏掉, sla...
    99+
    2024-04-02
  • 如何实现facebook的信息架构评析
    这期内容当中小编将会给大家带来有关如何实现facebook的信息架构评析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。facebook的信息架构设计,是目前为止互联网上我见过的最合理的信息架构。每次培训,...
    99+
    2023-06-08
  • ​​​​​​​Android H5通用容器架构设计详解
    目录背景术语对齐探索如何优雅地提供接口调用?怎样封装多个不同类型的H5容器容器?整体架构通用容器框架容器基础组件这样的架构能带来什么样的好处?背景 大家如果经历过Hybrid项目的开...
    99+
    2024-04-02
  • 详解Android中的MVP架构分解和实现
    1、概述 传统的Android开发架构一般是MVC模式, Model:业务逻辑和实体模型 View:对应于布局文件 Controllor:对应于Activity 单...
    99+
    2022-06-06
    Android
  • Android GKI 架构简介
    0. 前言 本文简单介绍下GKI 相关的知识点,方便更快的了解GKI 概念和架构,如果想要了解细节,还是要看官网并结合实际。 相关术语: ACK:Android Common Kernel AOSP:Android Open Source...
    99+
    2023-09-04
    android GKI ACK
  • Spring Boot构建框架详解
    什么Spring Boot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,...
    99+
    2023-05-30
    spring boot 框架
  • 详解React Fiber架构原理
    目录一、概述二、Fiber架构2.1 执行单元2.2 数据结构2.3 Fiber链表结构2.4 Fiber节点2.5 API2.5.1 requestAnimationFrame2....
    99+
    2022-11-13
    React Fiber原理 React Fiber架构
  • SpringCloud 微服务架构详解
    SpringCloud 微服务学习(一) SpringCloud Alibaba1.1、单体 分布式 集群1.2、系统架构的演变1.2.1、单体应用架构1.2.2、垂直应用架构1.2.3、分层架构1.2.4、SOA架构1.2.5、微...
    99+
    2023-08-16
    java 分布式
  • Hadoop数据湖架构详解
    Hadoop数据湖架构是一种灵活的数据存储和处理架构,用于存储和管理大规模的结构化和非结构化数据。数据湖架构基于Apache Had...
    99+
    2024-02-29
    Hadoop
  • 解析Tomcat架构原理到架构设计
    目录一、学习目的1.1、掌握 Tomcat 架构设计与原理提高内功1.2、宏观理解一个请求如何与 Spring 联系起来1.3、提升自己的系统设计能力二、整体架构设计2.1、连接器2...
    99+
    2024-04-02
  • MySQL高可用架构之MHA架构全解
    目录一、介绍二、组成三、工作过程四、架构五、实例展示MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating m...
    99+
    2024-04-02
  • Android MVVM架构实现RecyclerView列表详解流程
    目录效果图导入引用导入Recyclerview依赖导入dataBinding引用代码解析建立实体类建立RecyclerView子项适配器建立适配器设置子项点击事件adapter全部代...
    99+
    2024-04-02
  • 汽车架构解析:python解析Autosar架构的ARXML
    文章目录 前言一、Container-I-PDU概念引入二、以文本形式读取ARXML文件三、解析Frame的基本参数四、解析Frame中的PDU五、解析PDU中的Signals六、解析Sign...
    99+
    2023-09-01
    汽车 python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作