首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓开发中的Model-View-Presenter(MVP模式)

在软件开发行业中找到一个Android开发的架构标准是相当复杂的。...对于MVVM,虽然ViewModel不知道View,但是View知道ViewModel,这使得重用具有不同ViewModel的视图变得复杂。...View 在Android中,我们的视图的实现将对应于一个活动或一个片段(在示例/项目中是片段),但它可以是一个ViewModel,甚至是一个可视化组件。...这里不讨论视图是由N个片段组成的活动的情况,因为每个片段都有M个演示者,我们可以假设视图是这些片段中的每一个,尽管它们随后被分组到一个片段中(甚至在另一个片段中)。...观察前端架构的演变,认为Android正在接近一个类似Redux的架构并不是不合理的。

1.6K30

解决android viewmodel 数据刷新异常的问题

3年的wpf开发经验,自认为对数据驱动UI开发模式的使用不是问题,但当开始研究androidmvvm模式开发时,发现两年多的android开发经验已经将之前的wpf开发忘得7788了。...谈正题:adroid mvvm开发模式 之 viewmodel使用小麻烦。...protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 注册数据变更监听...补充知识:使用Android DataBinding时发现只能显示一次,不能动态更新数据 本文只是记录解决错误的过程,可能起不到分享的意义。...如上,表示了三个 Module 类在 AppComponent 这个scope中是例的 解决3 既然外层已经使用了 @Singleton ,那么我们可以自定义一个注解来表示一个 scope 创建注解:

1.3K21
您找到你想要的搜索结果了吗?
是的
没有找到

Android 面试题:为什么 Activity 都重建了 ViewModel 还存在?—— Jetpack 系列(3)

本文已收录到 GitHub · Android-NoteBook[1] 中。...9、Navigation: Activity 多 Fragment 的导航方案 10、Dagger2:从 Dagger2 到 Hilt 玩转依赖注入(一)[7] 11、Hilt:从 Dagger2...关于 MVVM 等模式的更多内容,我们在 5、从 MVC 到 MVP、MVVM、MVI:Android UI 架构演进[10] 这篇文章讨论过。...当 Activity 因配置变更而重建时,我们可以将页面上的数据或状态可以定义为 2 类: 第 1 类 - 配置数据: 例如窗口大小、多语言字符、多主题资源等,当设备配置变更时,需要根据最新的配置重新读取新的数据...这往往是因为数据层是通过回调监听器的方式返回数据,并且数据层是例对象或者属于全局生命周期,所以导致 Activity 销毁了,但是数据层依然间接持有 ViewModel 的引用。

1.1K20

毕业设计So Easy:珠穆朗玛FM音频电台APP

2.2、关键技术 本项目采用retrofit+rxjava2+rxandroid+arouter+mvvm+fragmentation实现activity多fragme组件化架构。...Rxandroid:是RxJava针对Android平台的一个扩展,用于Android开发提供响应式扩展组件快速、易于开发Android应用程序。...MvvmMVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。...2.3、环境配置 开发环境:Windows 10及以上,Android studio 4.1.2 运行环境:Android 8.0 及以上,JDK 1.8,SDK 21及以上 网络环境:Internet...登录登出及分享操作; 首页模块:分类展示、音频搜索、音频展示; 历史记录模块:订阅内容与推荐订阅、已下载、播放历史、已购买的音频、喜欢的音频; 播放模块:热门播放的内容展示、专辑展示; 发现模块:付费内容、全面朗读、活动

50540

Chameleon跨端框架—一个与Flutter比肩的开源作品

、支付宝4亿月活、百度3.3亿月活;2018 Q3中国Android手机占智能手机市场超过80%;无论BAT还是Android快应用都是中国互联网用户的真正用户入口,作为小型互联网公司都希望能搭上小程序的风口...滴滴的研发工程师是其中最显著的”受害者”之一,滴滴出行在微信钱包、支付宝、Android快应用都有相关入口,用户流量占比不低。...、其他各类小程序)的共同技术特点——MVVM架构设计, 以统一MVVM跨端架构平台为目标的程序语言框架Chameleon(任意使用MVVM架构设计的终端,都能以Chameleon开发并运行)。...这就尴尬了,如果你觉得以上不复杂,假设有4、5个端呢,业务逻辑掺杂跨端逻辑,产品逻辑别打断,可读性差,需求变更,牵一发动全身,每个端都要测试,跨端代码效率变得适得其反。...多态协议设计的灵感来自于Apache Thrift - 可伸缩的跨语言服务开发框架,本质上跨端也属于跨语言

1.5K30

浅谈移动端页面无刷新跳转问题的解决方案

它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript 和 CSS。 一旦页面加载完成了,SPA不会因为用户的操作而进行页面的重新加载或跳转。...2.节省原生(android和ios)app开发成本 3.提高发布效率,无需每次安装更新包。...但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入。...页面代表 有些页面开发是通过React、Vue、Node、Web Components、Webpack等来实现 学习文档: Vue:轻量级MVVM框架Vue.js快速上手(MVVM、SEO页面应用...、SSR服务器端 Vue.js是一套构建用户界面的轻量级MVVM框架,与其他重量级框架不同的是, Vue.js 的核心库只关注视图层,并且非常容易学习 Angular.js:http://www.runoob.com

3.6K40

8月份的.NET Conf 活动 专注于 .NET MAUI

.NET Conf:Focus on MAUI 是一个为期一天的免费直播活动,将于太平洋时间 8 月 9 日上午 9 点开始,来自社区和 Microsoft 团队的演讲者们将分享使用MAUI 。...了解.NET MAUI  是使用单个代码库为 Android、iOS、macOS 和 Windows 构建原生应用。...如果您是移动应用开发的新手,我们建议您把应用直接部署到 Android 设备(只需几个步骤即可完成有关设置)。如果您没有设备,请不用担心,因为您可以设置 具有硬件加速功能的 Android 模拟器。...实验内容 这是本次实验的有关内容: 实验准备 - 介绍 .NET MAUI 基本知识以及环境安装 实验一: 显示数据 - 实现页数据列表 实验二: MVVM 和数据绑定 - MVVM 设计模式和数据绑定

57910

android面试题2022

android3.0(API level 11)到android7.1(API level 25),bitmap对象及其像素数据都存储在虚拟机的堆里。...8.双从校验锁例 9.项目中遇见的问题 二、xm Hanlder机制 ThreadLocal原理 retrofit动态代理 zxing原理 线程池的使用 mvvm和mvp的区别 如何监听生命周期变化...hashmap和arraymap的区别 concurrentHashmap handler的消息类型 三、sqyc prtobuf的原理 结构数据序列化方法 1.语言无关、平台无关 2.高效 3.扩展性好...ArrayList 网络框架原理、 图片加载原理、 handler线程切换及原理 动态代理 context的区别 View的绘制原理 什么是装箱 Java 的四种引用 Java的垃圾回收机制 Java的内存机制 mvvm...apply导致anr的原因 二叉树遍历 数组分类 sycronized和retreenlock glide原理 leackcanary原理 viewmodel原理 livedata原理 mvvm作用

63730

界面之下:还原真实的MV*模式

Smalltalk-80 MVC 历史背景 早在上个世纪70年代,美国的施乐公司(Xerox)的工程师研发了Smalltalk编程语言,并且开始用它编写图形界面的应用程序。...因为HTTP协议是工协议并且是无状态的,服务器无法直接给客户端推送数据。除非客户端再次发起请求,否则服务器端的Model的变更就无法告知客户端。...jsp 后来这种模式几乎被应用在所有语言的Web开发框架当中。PHP的ThinkPHP,Python的Dijango、Flask,NodeJS的Express,Ruby的RoR,基本都采纳了这种模式。...MVVM的依赖 MVVM的依赖关系和MVP依赖,只不过是把P换成了VM。 ? mvvm-dep MVVM的调用关系 MVVM的调用关系和MVP一样。...可以简单而不恰当地理解为一个模版引擎,但是会根据数据变更实时渲染。 ? mvvm-call 也就是说,MVVM把View和Model的同步逻辑自动化了。

59220

MVVM、RxJava、Retrofit三剑合璧,事半功倍

前言 MVVM和MVP是当前比较流行的两种应用开发架构,两者各有优缺点。目前公司所有Android项目用的都是MVP架构,所以这篇文章我们可以一起来深入了解一下。...本文仅讨论在Android平台应用开发中的使用,其它平台也相似但可能存在些许差别。 简介 在搭建MVVM项目之前我们先来简单了解下MVVM模式,以及和MVP的区别。...在Android中我们可以通过一个简单的配置集成DataBinding,使我们构建Android MVVM 应用程序成为可能。...如果是MVP遇到ui更改,就可能需要改变获取控件的方式,改变更新ui的接口,改变从ui上获取输入的代码,可能还需要更改访问控件对象的属性代码等等,会非常麻烦。...多类型RecyclerView 按照传统的写法,我们要写一个多类型的Adapter和类型的Adapter是基本一样的,只是为不同类型加载不同布局,然后再为不同类型的布局分别赋值。

2.3K40

谷歌公开自家「AI+软件工程」框架DIDACT:数千名开发者内部测试,用了都说生产力高

Google的开发团队会将代码存放于monorepo(仓库,mono repository)中,即包含所有工具和系统的代码存储库。...当开发者准备好将一组代码变更打包在一起实现某个任务时(比如修复某个bug),需要在Google的代码审查系统Critique中创建了一个变更列表(changelist, CL)。...其中Action就像一个迷你编程语言,可以扩展为新添加的活动,涵盖了编辑、添加注释、重命名变量、标记代码错误等内容,也可以称这种语言为DevScript。...给定代码的初始片段和代码审查员附加到代码片段的注释,DIDACT的Pre-Submit Cleanup任务生成处理这些注释的编辑操作(文本的插入和删除) DIDACT的多模态性质也产生了一些随规模增大而涌现出的全新行为...DIDACT方法补充了Google和其他公司的大型语言模型所取得的巨大成就,可以减少工作量,提高生产力,并提高软件工程师的工作质量。

22720

Chameleon跨端框架——壹个理想主义团队的开源作品

、支付宝4亿月活、百度3.3亿月活;2018 Q3中国Android手机占智能手机市场超过80%;无论BAT还是Android快应用都是中国互联网用户的真正用户入口,作为小型互联网公司都希望能搭上小程序的风口...滴滴的研发工程师是其中最显著的"受害者"之一,滴滴出行在微信钱包、支付宝、Android快应用都有相关入口,用户流量占比不低。...、其他各类小程序)的共同技术特点——MVVM架构设计, 以统一MVVM跨端架构平台为目标的程序语言框架Chameleon(任意使用MVVM架构设计的终端,都能以Chameleon开发并运行)。...这就尴尬了,如果你觉得以上不复杂,假设有4、5个端呢,业务逻辑掺杂跨端逻辑,产品逻辑别打断,可读性差,需求变更,牵一发动全身,每个端都要测试,跨端代码效率变得适得其反。...下图各端差异化代码也和逻辑混合在一起 多态协议设计的灵感来自于Apache Thrift - 可伸缩的跨语言服务开发框架,本质上跨端也属于跨语言

84520

给创业码农的话--如何提升开发效率

关于MVP&MVVM我一直是拒绝的,因为一开始的几个Screen我是用硬套MVP&MVVM的模式来做的,虽然activity的代码十分简单,但是View和ViewModel都会写一些晦涩、重复的逻辑来保证数据绑定...十分类似,已经在最新的迭代中开始使用data-binding来实现MVVM,具体可以参考一个第三方例子(https://github.com/ivacf/archi)。...微信内部的开发流程基本会遵循git-flow(https://github.com/nvie/gitflow),即featurebranch,功能完成合入稳定分支。...笔者在创业时依然延续了这个规则,虽然每个repo只有1-2个人同时提交代码,但是这么做可以快速应对需求的变更,并保证commit的规整性。...://medium.com/ribot-labs/approaching-android-with-mvvm-8ceec02d5442#.suutwto9a) android-application-architecture

1.9K70

干货 | 携程机票 App KMM 跨端生产实践

这两者虽然在设计及原理上区别很大,但设计思想上都是采用非原生开发语言Android 与 iOS 系统框架之上搭建的“阁楼”上运行,每个采用这些框架的 App 在打包时需要集成语言的 Runtime、...Kotlin 在不同平台均可与该平台的原生开发语言直接相互调用,在 Android 平台 Kotlin 是官方支持的一等开发语言,与 Java 的互操作自不用说。...我们希望复用并扩展之前 Android Jetpack AAC 的优化升级成果,因此业务代码架构继续使用 MVVM 模式,整体分为三部分:View、ViewModel、Model。...这些基础库通常是由 Android 与 iOS 两端分别实现,编程语言不同,但 API 的设计、命名、参数数量与类型定义都高度相似。...在 MVVM 中,View 通过监听 ViewModel 内的数据变化(LiveData/StateFlow 等)来完成更新,而用户对 View 的操作则通过对 ViewModel 的直接调用来触发数据状态的变更

3.2K10

都9102年了,你还不会准备Android面试?进来这里告诉你

面试大纲 1.java基础、面向对象、集合、线程使用; 2.Android 机型适配、SDK适配、内存优化、内存溢出、内存泄漏;3.MVC/MVP/MVVM的使用场景; 4.了解并能使用最新流行开源库RXjava...LinkedList、ArrayList 17.SQLite升级 18.Bitmap 19.Handler机制 20.性能优化技巧 21.ANR 22.自定义View 23.MVC、MVP、MVVM...三种架构设计 24.APP 启动流程 25.插件化 26.Kotlin 多平台应用的静态编程语言 27.Framework 工作原理 28.Android 屏幕适配 29.事件分发机制 30....Android 动画分类:视图,属性,帧,gif 31.Android 进程 32.Android 五大存储方式 33.屏幕旋转Activity生命周期 34.Activity 四大启动模式...39.简单的音频/视频格式 40.线程同步的方法 41.线程安全的例 42.Serializable、Parcelelable 43.Service启动方式和生命周期 44.Android 常见布局

45500
领券