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

Android MVVM谁应该读取和存储捆绑包

Android MVVM是一种架构模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和视图模型(ViewModel)。在MVVM架构中,谁应该读取和存储捆绑包取决于具体的情况和需求。

通常情况下,读取和存储捆绑包的操作应该由模型层来处理。模型层负责处理数据的获取、存储和管理。在Android开发中,模型层通常包括与数据库、网络服务或其他数据源进行交互的代码。

在MVVM架构中,视图模型层充当了模型层和视图层之间的桥梁。视图模型负责处理业务逻辑和数据转换,并将数据提供给视图层进行展示。因此,视图模型可以负责读取和存储捆绑包中的数据。

具体来说,读取捆绑包中的数据可以通过在视图模型中使用Android的资源访问机制来实现。Android提供了一些API来读取捆绑包中的资源文件,如getResources().getXXX()方法。视图模型可以使用这些API来读取捆绑包中的数据,并将其转换为适合视图层展示的格式。

至于存储捆绑包,一般来说,捆绑包是只读的,无法直接进行修改。如果需要在应用程序中修改捆绑包中的数据,可以考虑将数据复制到应用程序的私有目录中,然后在视图模型中进行读取和存储操作。Android提供了一些API来实现这些操作,如Context.getFilesDir()方法可以获取应用程序的私有目录路径,视图模型可以使用这个路径来读取和存储数据。

总结起来,根据MVVM架构的设计原则,读取和存储捆绑包的操作应该由模型层或视图模型层来处理。模型层负责与数据源进行交互,而视图模型层负责处理业务逻辑和数据转换。在具体实现中,可以使用Android提供的资源访问机制和文件操作API来实现读取和存储捆绑包的功能。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(移动推送、移动分析等):https://cloud.tencent.com/product/mobile
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 8.0 读取内部外部存储以及外置SDcard的方法

最近碰到询问我这个读取SDcard的问题, 很久没有看这部分了,所以大致看了一下, 顺便记录一下。在Android 8.0上做了测试。...一般的Android App能读取存储空间主要有三种: app自己的私有目录,也就是/data/data/《app 目录》。 读写这个目录不需要单独的权限。...Android里无法通过申请权限来获取读写的权利。 这一点上面说的2不同。 因此,如果需要获取写权限, 需要用户指定特定的目录单独授权。这里举个简单的例子。...这个我感觉其实不好, 因为这本质上也是权限问题, 应该都放在app permission里。...以上这篇Android 8.0 读取内部外部存储以及外置SDcard的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.9K20

MVVM 成为历史,Google 全面倒向 MVI

总得来说,Activity或Fragment中的代码应该尽量精简,尽量将业务逻辑迁移到其它层 通过数据驱动界面 另一个重要原则是您应该通过数据驱动界面(最好是持久性模型)。...,因此我们需要将数据层数据转化为页面的状态 因此界面层一般分为两部分,即UI层与State Holder,State Holder的角色一般由ViewModel承担 [600] 数据层的作用是存储管理应用数据...在此类情况下,将这些不同的状态捆绑在一起的代价可能会超过其优势,尤其是当其中某个状态的更新频率高于其他状态的更新频率时。...相比MVVM架构,MVI架构主要有以下优点 强调数据单向流动,很容易对状态变化进行跟踪回溯,在数据一致性,可测试性,可维护性上都有一定优势 强调对UI State的集中管理,只需要订阅一个ViewState...当然在软件开发中没有最好的架构,只有最合适的架构,各位可根据情况选用适合项目的架构,实际上在我看来Google在指南中推荐使用MVI而不再是MVVM,很可能是为了统一Android与Compose的架构

1.7K10

Jetpack Compose+架构=优秀APP?

随着alpha版本的发布,其API也逐渐稳定,此时谁先掌握这一项新技术,就能在这一行业中抢占先机。...那么Compose应该在哪个架构中实现呢? 目前市面上主流的几个架构有MVP、MVC、MVVM,那么在 Compose 项目中哪种架构最合适呢? 首先我们先来了解一下各大架构的特点。...MVVM MVVM(Model-View-ViewModel)其实就是MVC(Model-View-Controller)的增强版,本质上MVC没有什么区别,只是代码的位置变动而已。...Android Jetpack Compose 最全上手指南 Jetpack Compose 环境准备Hello World 布局 使用Material design 设计 Compose 布局实时预览...执行模式 Positional Memoization (位置记忆化) 存储参数 重组 …… [10117079451921f5c807ccbc808b4603.png] 第三章 Jetpack Compose

1.6K20

用代码手把手教你使用MVVM

前言 说到Android MVVM,就会联想到DataBinding框架。然而两者的概念是不一样的,不能混为一谈。...MVC View:xml布局 Model:数据层,负责数据交互、存储实体类定义 Controller:业务处理层 Android开发本身还是比较符合MVC架构的,但是Android中纯粹作为View的...MVP View:xml文件及对应的Activity或Fragment,负责界面展示交互 Model:数据层,负责数据交互、存储实体类定义 Presenter:负责View层Model层之间的逻辑处理...名.类名 name为type中的实体类定义“名字”,供以下布局中使用 定义了data属性后,就相当于xml布局已实体类绑定 在控件中引用实体类属性的格式为: @{实体类.属性名} 在控件中引用实体类方法的格式为...虽然在现实生产中用Android MVVM模式开发还比较少,但是随着DataBinding 1.0的发布,相信在Android MVVM 这一领域会更多的人来尝试。

1.9K20

2021最新Android架构师必备宝典《Android架构开发手册》含抖音、美团等大厂架构演进之路

其中的主要内容包括:Android Jetpack实战和教程MVC/MVP/MVVM,大厂架构演进之路等。...· 7.Android Jetpack - Paging 3 第二章.MVC/MVP/MVVM 1.MVC框架-导言 2.MVC框架-ASP.NET窗体 3.MVC框架-第一应用程序 4.MVC框架....MVC框架-控制器 7.MVC框架-视图 8.MVC框架-布局 9.MVC框架-路由引擎 10.MVC框架-动作过滤器 11.MVC框架-高级示例 12.MVC框架-Ajax支持 13.MVC框架-捆绑...3.安居客Android项目架构演进 几年前安居客在业务上刚完成了三网合并,这一时期安居客代码结构混乱、层次不清,各业务技术方案不统一,冗余代码充斥项目的各个角落;甚至连基本的结构也是胡乱不堪,项目架构更是无从谈起...4.携程Android App插件化动态加载实践 携程 Android App 的插件化动态加载框架已上线半年,经历了初期的探索持续的打磨优化,新框架工程配置经受住了生产实践的考验。

58530

MVVM框架的搭建(二)——项目搭建

config.gradle用于配置项目中各种lib引用版本号控制 /** * config.gradle用于配置项目中各种lib引用版本号控制 * * [module_*] 各module版本号及...MVVM是Model-View-ViewModel的简写,是有别于MVCMVP的另一种架构模式。...根据我们的这个结构图 我们简单阐述一下 各个模块的作用 Model层:负责提供数据源给ViewModel,包含实体类,网络请求和本地存储等功能 ViewModel层:将Model层提供的数据根据View...结构 基础Demo 下面我们就根据我们之前说的简单写一个Demo 首先看一下的结构 DataBindingUtil.setContentView 这个函数做了三步操作: inflate操作,创建布局文件对应的...Onclick(val who: String, var count: Int) 下面我们在看看ViewModel层 这里主要承担了数据处理功能 并负责提供给View层数据 ViewModel是用来存储管理

1.3K20

Android技术栈(四)Android Jetpack MVVM 完全实践

应该持有DataBinding) ViewModel与Presenter大致相同,都是负责处理数据实现业务逻辑,但是ViewModel层不应该直接或者间接地持有View层的任何引用,因为一个ViewModel...MVVM的核心思想是观察者模式,它通过事件转移View层数据持有权来实现View层与ViewModel层的解耦....,Map现在都可以使用该运算符 使用@读取资源文件,如下,但是不支持读取mipmap下的文件 android:text="@{@string/text}" //或者把它作为表达式的一部分 android...改造Android现有体系 笔者就Android现有体系下的各种类库框架,通过自己实践的得出的经验将其进行如下归类,观点仅供参考,在实践中应该视项目特点进行适当进行改造. 7.1 View层 现有体系下的内容...FTP客户端作为本次MVVM博文的演示Demo,该项目简单实践了QMUI+MVVM+DataBinding+RxJava+LiveData+Room的技术栈并由kotlinJava混编写成,代码质量比较一般

3.8K01

SpyNote V5.0图形化工具远程管理Android手机教程(附视频)

前言 本篇文章主要以图文教程视频演示详细地教你如何快速学会使用SpyNote 5.0图形化工具来穿透内网远程控制Android手机。本教程有一定的杀伤力,请各位Freebuf小粉合理使用。...Freebuf之前相关SpyNote的介绍文章 小心,Android木马工具SpyNote免费啦!...) 这里我就全选 (4)Merging App(捆绑APK),就是其他apk安装进行捆绑 ?...因为捆绑有几率会因为被捆绑文件加固而捆绑失败,所以这里我就不捆绑。 (5)设置好一切后点击左上角的Build-→Build APK创建木马,会弹出一个这个 ?...主要功能: File Manager:读取手机文件 SMS Manager:读取手机SMS短信 Calls Manager:读取手机通讯录 Contacts Manager:读取联系人 Location

6.2K70

7. JetpackNote---基于Jetpack的学习笔记APP

Jetpack是什么想必大家对它都已经有了基本的了解了,官方介绍以及官方文档: https://developer.android.com/jetpack Jetpack 是一套库、工具指南,可帮助开发者更轻松地编写优质应用...Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件库。...在Android Developers官网上,Jetpack作为一个TabKotlin、Android Studio等一样的地位也同样占据了一个模块,Jetpack里目前包含的内容,未来想必也是谷歌大力维护扩展的东西...Map转换则演示通过转换存储在LiveData对象中的值,并向下传递转换后的数据。...4.4 ViewModel 在ViewModel模块,屏幕中央为一个计时器,通过使用ViewModel存储计时器的值,将屏幕方向发生改变后,数据仍然存在不会销毁。

96430

若一开始代码架构不清晰,就是前人挖坑,后面所有人掉坑里

一种最合适的android app的做法需要更加灵活的穿梭在不通的应用之间以方便用户在他们的设备上使用来不断切换流程操作。 翻译结束。 最新在看一Android代码,深感项目结构的重要性。...本来精力应该花在业务功能上,结果呢,不少时间浪费在理清混乱的代码结构处理bug上。就好比在混沌的一锅粥里不知如何加料。...我觉得,针对Android项目,首先大体上确定是MVVM还是MVP,然后, 有一种按功能模块划分的意识。 拿一POS机来说,分 存储模块,显示模块,通信模块,读卡模块框架逻辑。...针对一个项目, 1.全局用到的变量,常量,应该放到一个地方去维护。 2.对需要保存的参数,应分类存储。而不是混沌的一锅粥,到处的SharedPreferencesHelper去存储,想到哪用到哪。...4.存储是一大项,存储不是调用原生的增删改查就完了,也要设计为接口。保存记录时,只需save().读取时只需read() 5.通信模块,要考虑到通信通道可能会变,比如http,tcp,串口。

36710

Jetpack来了:走近Google标准应用架构

因此,我们需要将代码按照功能或类型的不同进行分类,并放到不同的或类文件中,但又不破坏彼此正常的功能通信。这在软件开发中叫作“解耦”。...关于架构,相信大家或多或少都听说过MVC(Model View Controller)、MVP(Model View Presenter)MVVM(Model View ViewModel)。...在Android应用程序开发中,一直以来都有用到MVC,将Activity/Fragment与布局文件分开就是一种最简单、最基本的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVPMVVM。...不仅如此,AAC(Android Architecture Component)中的组件也被并入AndroidX。所以,当使用Jetpack的组件时,经常会看到以“androidx”开头的名。...新建项目默认支持AndroidX 如果你的Android Studio为最新版本,那么在新建一个项目时,应该能在创建过程中看到“Useandroidx.* artifacts”这个选项。

88320

“终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!

2.1 MVC MVC,Model-View-Controller,职责分类如下: Model,模型层,即数据模型,用于获取存储数据。...2.2 MVP MVP,Model-View-Presenter,职责分类如下: Model,模型层,即数据模型,用于获取存储数据。...ViewPresenter相互持有,形成耦合。 2.3 MVVM MVVM,Model-View-ViewModel,职责分类如下: Model,模型层,即数据模型,用于获取存储数据。...3.1 Jetpack MVVM 理解 Jetpack MVVMMVVM 模式在 Android 开发中的一个具体实现,是 Android中 Google 官方提供并推荐的 MVVM实现方式。...四、总结 本篇介绍了 架构模式的含义,回顾比较了Android中的架构模式MVC、MVP、MVVM,最好在 Jetpack架构组件 基础上 介绍了 MVVM 的详细实现方法、注意点,以及MVP的改造。

1.9K10

MVVM伪框架结构MVC中M的实现机制

应用开发框架,文章把MVVM说的天花乱坠并且批评包括iOSandroid所用的MVC经典框架。...------ MVVM并非框架,而只是简单的文件夹分类 ------ MVVM被引入的前因后果 大概是在2010年左右移动端开发火了起来,起初是iOS,Android, WinPhone三个大平台竞争...这其中涉及到了层次之间的耦合性职责的划分,以及层与层之间的交互接口定义方式,同时层内的设计也应该具有高度的内聚性结构性。而这些设计的要求并没有在所谓的MVVM中体现出来。...纵观整个iOSandroid中的所有系统框架库都没有出现过让一批数据结构组成一个层的概念。即使如所谓的存储层也是数据库表以及数据库引擎三者的结合体为一层。...也就是说C层是不需要知道也不应该知道客户端和服务器通信所使用的任何协议,以及数据报文格式,以及存储方面的内容。

77430

(新瓶旧酒)谷歌官方MVP项目学习--浅入源码

mvvm都将入切瓜砍菜,秋风扫落叶一般... github https://github.com/googlesamples/android-architecture 作者:google 项目的目的是通过展示各种架构...作为比较对比本项目其他样本的参考点。 todo-mvp示例使用以下依赖关系: 常见的Android支持库 - com.android.support。*命名空间中的软件提供向后兼容性其他功能。...Android测试支持库 - 用于支持UI测试的框架,使用EspressoAndroidJUnitRunner。 Mockito - 用于实施单元测试的框架。...代码被划分为两层结构: Data Layer(数据层)负责从REST API或者持久数据存储区检索存储数据; View Layer(视图层)的职责是处理并将数据展示在UI上。...按照同样的方式,CacheProvider 所包含的方法负责从SharedPreferencesSQLite数据库检索存储数据。同样使用回调的方式,将结果传回Activity。

75810

借一个项目谈Android应用软件架构,你还在套用MVP 或MVVM

正式基于这一理念,Android被设计为高度组件化、可复用的系统。 在Android的应用开发中,目前流行MVPMVVM的软件架构风格,让UI层业务逻辑层,数据层充分解耦,充分分离。...比如业务逻辑层是放在model层呢还是P层呢,model层是不就是指存取或读取网路或本地数据呀。没人能准确的分清,于是不纠结了咋样顺咋样来,不去较真儿了。   ...可惜我小时候只玩过泥巴,想来现在的小朋友们应该更聪明吧。不用管这积木是造的,怎么造的,用的什么料。只管搭建自己想要的模型即可。...比如可以封装出不同的业务模块,交通部卡处理模块,自发卡处理业务模块,二维码业务处理模块,小键盘处理模块,消费记录通信组和解析等通信业务模块。这些都是可复用的业务组件。...因为一开始考虑问题看问题的角度就不同,是按照模块儿化思想考虑的。activity只是模块化中的UI模块而已。所以还是不要去往MVP或MVVM上想,不是一回事,忘掉他们吧。

81540

Jetpack来了:走近Google标准应用架构

如何把握模块的粒度,在保持模块独立性的同时,又不影响模块间的通信,是全世界优秀的Android工程师共同追求的目标。为了解决这一问题,各类架构模式层出不穷,比较著名的有MVC、MVPMVVM。...因此,我们需要将代码按照功能或类型的不同进行分类,并放到不同的或类文件中,但又不破坏彼此正常的功能通信。 这在软件开发中叫作“解耦”。...关于架构,相信大家或多或少都听说过MVC (Model View Controller)、MVP (Model View Presenter)MVVM (Model View ViewModel)。...在Android应用程序开发中,一直以来都有用到MVC,将 Activity/Fragment 与布局文件分开就是一种最简单、最基本的MVC思想,只是它没有很好地解决我们的问题,所以才有了MVPMVVM...05 ▊ 新建项目默认支持AndroidX 如果你的Android Studio为最新版本,那么在新建一个项目时,应该能在创建过程中看到“Useandroidx.* artifacts”这个选项。

69410

iOS_沙盒文件系统

为防止篡改,捆绑目录在安装时签名。写入此目录会更改签名,从而导致应用程序无法启动。但是,您可以只读访问应用程序捆绑存储的任何资源。 2、Documents: 存放用户生成的数据放入。...您的应用可以读取删除此目录中的文件,但不能创建新文件或写入现有文件。 (如果用户尝试编辑此目录中的文件,那么您的应用必须在进行任何更改之前以静默方式将其移除目录。)...此目录还可以包括数据文件,配置文件,模板以及从应用程序捆绑加载的资源的修改版本。 应用程序可能使用此目录来存储最初包含在应用程序中的资源的可修改副本。...游戏可能会使用此目录来存储用户购买并从服务器下载的新关卡。 该目录的所有内容都应该放在一个自定义子目录中,该子目录的名称应为您应用的捆绑软件标识符或公司的名称。...您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类或CFPreferences来获取设置应用程序的偏好。 4、tmp: 存放临时数据。临时数据包含不需要长时间保留的任何数据。

2.1K10

离线使用 Git

Git 捆绑 git 捆绑允许将存储库的部分或全部压缩为 git 能够克隆获取的格式的单个文件。 工作流程与以前非常相似,但不是复制整个存储库目录,而是创建 git 。...在第一台机器上使用以下命令创建捆绑: git bundle create repoName.bundle --all 选项捆绑整个存储库,包括所有分支标签。可以使用 或 选择特定分支或标签。...在非合并计算机上,确保提交所有更改并使用以下命令创建捆绑: git bundle create repoName.bundle --all 对于较大的存储库,最好仅捆绑存储库的一部分,以避免传输超出所需的数据...将捆绑文件移动到其他计算机并使用以下命令更新那里的更改: git pull /path/to/repoName.bundle 创建本地远程存储捆绑解决了在没有网络的情况下同步 Git 存储库的问题...如果新开发人员加入团队,他们会从那里复制存储库?最好的选择是选择一台开发机器作为“服务器”。除了开发人员实际工作的存储库的本地克隆之外,还可以在此开发计算机上创建一个裸 Git 存储库。

11510

开发以太坊安卓钱包系列3 - 资产信息展示

预备知识 MVVM 本文会涉及UI界面的交互,提前理解下界面和数据如何交互是非常有必要的,如果你已经很熟悉MVVM,可跳过这一小节。...最早写Android的时候,数据界面经常耦合在一起,一个Activity文件总是特别大,每当产品界面改版就非常痛苦,吐槽下,很多产品经理都喜欢对界面改来改去。...后来Google 推荐多个架构模式: MPV、 MVVM模式来解决数据UI耦合的问题,登链钱包代码[1],使用的就是MVVM模式,所以对它做一个简单介绍,下面是MVVM的视图和数据的交互图: ?...我们使用了Google在I/O大会推出的一套遵循MVVM开发模式的LiveDataViewModel组件架构。...ViewModel LiveData ViewModel 会关注UI生命周期来存储管理数据,在Activity发生变化(锁屏开屏、旋转)时,ViewModel 会自动保留之前的数据并给新的Activity

1.3K30
领券