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

Android 架构组件 - 让天下没有难做的 App

的话,还需要配置一个工具—— Jetifier,只需要在 build.gradle 中加上两行配置即可: android.useAndroidX=true android.enableJetifier=...P,也可以做 UI 的数据适配,这一层可以实现数据驱动 UI;最后是 Repository 层,它作为 SSOC,是一个 Facade 模式,对上层屏蔽了数据的来源,可以来自 local,也是来自 remote...Room 是 SQLite 之上的应用抽象层,而 SQLite 是一个位于 Android Framework 层的内存型数据库。...虽然 Realm 也是一个优秀的数据库,但是它并没有内置于 Android 系统,所会增大 apk 的体积,使用 Room 则没有这方面烦恼。...至此,我们可以确定,无论数据来自 Remote 还是来自本地 DB,架构蓝图中的 Repository 对 ViewModel 提供的数据可以永远是 LiveData 类型,接下来我们看一下 ViewModel

1.2K20

【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

一、Room + ViewModel + LiveData 框架使用核心要点 1、Room 框架优化分析 在上一篇博客 【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库...( 导入依赖 | 定义 Entity 实体类 | 定义 Dao 数据库访问对象接口 | 定义数据库实例类 ) 中 , 实现了 使用 Room 框架访问 Android 中的 SQLite 数据库的操作...监听器回调中 更新 View 视图 ; View 视图层 : Activity / Fragment 负责视图显示的 系统组件 , 负责维护 Android 视图组件 , 显示的数据由 ViewModel...fun query(id: Int): List Room 框架的用法 , 参考 【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库 (...'org.jetbrains.kotlin.android' id 'kotlin-kapt' } 导入 Room 依赖库 , 注意这是 Kotlin 版本需要导入的依赖库 , 如果是 Java

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    livedatabus详解,阿里是如何用他来做淘宝架构的?

    的话,还需要配置一个工具—— Jetifier,只需要在 build.gradle 中加上两行配置即可: android.useAndroidX=true android.enableJetifier...P,也可以做 UI 的数据适配,这一层可以实现数据驱动 UI;最后是 Repository 层,它作为 SSOC,是一个 Facade 模式,对上层屏蔽了数据的来源,可以来自 local,也是来自 remote...Room 是 SQLite 之上的应用抽象层,而 SQLite 是一个位于 Android Framework 层的内存型数据库。...虽然 Realm 也是一个优秀的数据库,但是它并没有内置于 Android 系统,所会增大 apk 的体积,使用 Room 则没有这方面烦恼。...至此,我们可以确定,无论数据来自 Remote 还是来自本地 DB,架构蓝图中的 Repository 对 ViewModel 提供的数据可以永远是 LiveData 类型,接下来我们看一下 ViewModel

    1.2K30

    App 组件化模块化之路——Android 框架组件(Android Architecture Components)使用指南

    App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南 面对越来越复杂的 App 需求,Google 官方发布了Android...App 框架组件 框架提供了以下几个核心组件,我们将通过一个实例来说明这几个组件的使用。 ViewModel LiveData Room 假设要实现一个用户信息展示页面。...为了驱动 UI,我们的数据模型需要持有以下两个数据元素 用户ID: 用户的唯一标识。可以通过 fragment 的 arguments 参数进行传递这个信息。...这样 ViewModel 也不用知道数据源到底是来自哪里。 组件间的依赖管理 从上文我们知道 UserRepository 类需要有一个 WebService 实例才能工作。...组件) Android 框架提供了 Room 组件,为 App 数据持久化提供了解决方案。

    1.7K20

    kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

    :room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version" implementation...@AndroidEntryPoint:创建一个依赖容器,该容器遵循Android类的生命周期 @Module:告诉Hilt如何提供不同类型的实例 @InstallIn:用来告诉Hilt这个模块会被安装到哪个组件上...相关基类 使用Room数据库,首先创建Entity,这边加了一个页码的字段: @Entity data class MovieEntity( @PrimaryKey val id: Int...,而是伴随Activity,所以安装到ActivityComponent 同样方法也不是单例的,而是根据Activity,使用ActivityScoped注解 @InstallIn(ActivityComponent...Model层的架构搭建完毕后,我们需要ViewModel层与Model层作数据交互 Hilt注入ViewModel构造函数 ViewModel中需要Repository对象作为属性,而Hilt支持使用

    3.6K31

    Android之共享已安装的apk应用

    作为一名程序员,遇到了这样简单的问题,肯定要想办法解决,经过google和百度,查得android上所有已安装的应用都会做一个备份,分别存放在三个地方: 1、系统签名的软件:/system/app...2、安装到内存上的非系统签名软件:/data/app 3、安装到sd卡上的非系统签名软件:/mnt/asec/包名-数字/pkg.apk 我们可以使用re浏览器查看和分享这些apk,本人已确认过,...这些应用都是可用的,但是这样子相当麻烦,因为你自己必须记得这三个位置,以及这三个位置对应的存放的应用,否则每次都要把三个文件夹浏览一次,多麻烦呀,程序就是为了让人们偷懒而生的,因此废话不多说,下面贴出我自己写的可列出所有安装应用并能够通过蓝牙分享的代码...packageInfo.applicationInfo.sourceDir); File sourceFile=new File(packageInfo.applicationInfo.sourceDir); //调用android...我使用的是gridview把所有已安装的用户应用列出来,但是没有做搜索,以后有时间肯定会加上,相信肯定会为你带来方便的。

    3.4K50

    Android 架构组件的最新进展 (上篇)

    从最初发布的管理 Activity 和 Fragment 生命周期的Lifecycle 库和访问 SQLite 数据库的 Room 库,后来推出了 分页(Paging)、 导航(Navigation)...实时生成类代码 现在,给视图中的某个控件赋予 ID, 它就会在绑定的类中成为一个可用的字段。...视图绑定 (View Binding) 给出 ID 即可自动生成绑定类代码且能保证编译安全,能做到一石 "三" 鸟的视图绑定可在 Android Studio 3.6 Canary 11 或更新版本中用得上...-- profile.xml --> android:id="@id/title"/> android:id="@...ViewModel 来管理 使用 URI 直接导航 对话框可以做为导航目标 更好地对动态功能做出支持 请大家保持对本次连载的关注,我们会在下篇中为大家介绍分页库、Room 持久性库和 WorkManager

    91340

    Android Jetpack - Room

    Room 简介 Room 持久化库提供了一个基于 SQLite 的抽象层,以便在利用 SQLite 的全部功能的同时实现更强大的数据库访问 Room 库帮你的 App 在设备上创建一个缓存,并作为此 App...在最常见的示例中,Repository 实现了用于决定是从网络获取数据还是使用在本地数据库中缓存的结果的逻辑,既避免了 ViewModel 和数据的直接交互又统一了单一真实数据源的逻辑 Repository...与数据的直接交互,即方便了 ViewModel 的测试,又能在 Repository 中实现单一真实数据源策略,从而使 ViewModel 更加关注于业务层逻辑 class WordRepository...参考 https://developer.android.com/topic/libraries/architecture/room https://github.com/googlesamples/android-sunflower.../codelabs/android-room-with-a-view-kotlin https://developer.android.com/reference/android/arch/persistence

    1.9K70

    Room组件的用法

    一.Android官方ORM数据库Room   Android采用Sqlite作为数据库存储。...Entity类是Sqlite中的表对java类的映射,例如有一个学生表,有id,name,age三个字段;那么对应的就有一个学生类,有id,name,age三个成员变量和学生表中的字段进行一一对应。   ...二.Room数据库的基本使用方法   1.在使用Room数据库前,先要在app/build.gradle文件中导入以下的依赖:   implementation 'androidx.room:room-runtime...5.结合ViewModel和LiveData,对数据库进行增删改查,并且数据库表的记录发生变化时,页面可以及时收到通知,并更新页面。   ...LiveData通常和ViewModel一起使用,ViewModel用于存储页面的数据,因此我们可以把数据库的实例化放到ViewModel中,但数据库的实例化需要用到Context对象,因此我们不宜直接用

    25720

    Hilt-依赖注入框架上手指南

    对于Android开发者来说,Hilt可以说专门为Android 打造,提供了一种将Dagger依赖项注入到Android应用程序的标准方法,而且创建了一组标准的组件和作用域,这些组件会自动集成到Android...Hilt有关如何提供不同类型的实例的信息也称为绑定**。** @Install(xx) Install 用来告诉 Hilt 这个模块会被安装到哪个组件上....增加了@Module注解的类,其代表着相当与一个模块,并通过指定的组件来告诉在哪个容器中可以使用绑定安装。...一个常见的误解是,模块中声明的所有绑定都将作用于安装该模块的组件。但是,事实并非如此。仅使用范围注释注释的绑定声明将被限制范围。 那什么时候添加注入范围呢?...@Provides 常用于模块中 举个: room的常规用法 我们使用room,有一个数据库表和相应的Dao @Entity(tableName = "book") class Book(val name

    1.7K10

    【Jetpack】使用 Room 中的 Migration 升级数据库 ( 修改 Entity 实体类 - 更改数据模型 | 创建 Migration 迁移类 | 修改数据库版本 | 代码示例 )

    (1, 2) 即可 ; 从 数据库版本 1 升级为 数据库版本 3 , 先执行 Migration(1, 2) , 再执行 Migration(2, 3) ; Room 提供了简便的方式来 处理 Android...2) 4、数据库更新的情况 如果之前运行了 【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 ) 博客的代码示例 ; 然后再...Student(id=4, name='Jerry', age=16)] 5、直接安装最新数据库的情况 卸载原来的应用 , 直接安装 数据库版本 2 的新应用 ; 数据库直接创建最新版本的数据库 ,.../han1202012/Room_ViewModel_LiveData 1、Entity 实体类修改后的完整代码 Entity 实体类中加入新的数据库字段 sex 字段 ; 完整代码 : package...kim.hsl.rvl import android.content.Context import android.util.Log import androidx.room.Database import

    1.4K30

    正式发布 Android 架构组件 1.0 稳定版

    此外生命周期管理同时也已集成到支持库中(Support Library),因此开发者也可以在标准类别里,如 AppCompatActivity 中使用这些 API。...我们最近转用了架构组件中的 ViewModel 实现,并完全摆脱了重复工作,我们发现可以将更多的时间用于设计、业务逻辑和测试,而不是浪费在样板代码或担心 Android 生命周期的问题上。...了解更多 LiveData 相关内容: developer.android.google.cn/topic/libra… ViewModel ViewModel 将视图的数据和逻辑从具有生命周期特性的实体...了解更多 ViewModel 相关内容: developer.android.google.cn/topic/libra… Room ? 几乎所有 App 都需要在本地储存数据。...自从最早版本开始,Android 就提供了 SQLite,但是直接使用 SQLite是件苦差事。因此,我们推出了 Room,一款简单好用的对象映射层。

    51420
    领券