android项目实战 Android JetPack架构篇,一个实战项目带你学懂JetPack
第五届世界互联网大会昨天开幕,来自76个国家的1500多名嘉宾出席了会议。腾讯公司董事长兼首席执行官马在会议的开幕词中说,全球产业正在数字化,机遇与挑战并存,产业互联网面临巨大机遇。
作者简介
本文来自沃克的无烟贡献,介绍了Android JetPack架构的相关知识。让我们看看!希望大家喜欢。
沃克的无烟博客地址:
https://blog.csdn.net/itismelzp
前言
本文翻译自:Android Room with a View-Java,地址如下:
https://codelabs . developers . Google . com/codelabs/Android-room-with-a-view/# 0
架构组件的目的是为应用架构提供指导,为生命周期管理、数据持久化等常见任务提供开发库。
架构组件帮助您构建一个健壮、易于测试、可维护且模板代码较少的应用程序。
什么是架构组件?
为了介绍相关术语,这里简单介绍一下架构组件以及它们之前是如何合作的。请注意,这个代码库包含一些架构组件,它们是实时数据、视图模型和房间。每个组件在使用时都会被解释。下图是基本的架构形式。
以下是Word类:
publicclassWord{
privateString mWord
public word(@ nonnullString word){ this . mword = word;}
public StrIng GetWord(){ return this . mword;}
}
为了使Word类对Room库有意义,我们需要对其进行注释。注释用于将实体与数据库相关联,房间根据相应的注释信息生成相应的代码。
@Entity(tableName = "word_table") 每一个@Entity类代表数据库中的一张表。tableName为生成表的表名。@PrimaryKey 每个实体需要一个主键。@NonNull 表示参数、字段或返回值不能为null。@ColumnInfo(name = "word") 指定与成员变量对应的列名。为一个字段需要是public的或提供get方法。带注释的Word类:
@实体(tableName = "word_table ")
publicclassWord{
@PrimaryKey
@非空
@ ColumnFo(name = " word ")
privateString mWord
public word(String word){ this . mword = word;}
public StrIng GetWord(){ return this . mword;}
}
创建数据访问对象
什么是DAODAO是一个数据访问对象。您可以指定SQL查询语句,并将它们与方法相关联。编译器对常规的SQL注释执行编译检查,例如@Insert。
DAO对象必须是接口或抽象类。
默认情况下,所有查询都必须在单独的线程中执行。
房间会通过DAO对象创建相应的接口。
DAO的写法DAO是代码的基础,用于添加、删除、修改和搜索单词。
创建一个名为WordDao的接口。为WordDao添加@Dao注解声明一个插入方法void insert(Word word);为上述方法添加@Insert注解,并且不需要为其提供SQL语句!(同样的用法还有@Delete and @Update)声明方法void deleteAll();这里没有方便的注解可以用于删除多个实体,因此需要用@Query注解还需要为@Query注解提供SQL语句@Query("DELETE FROM word_table")创建方法List<Word> getAllWords();为其添加注解与SQL@Query("SELECT * from word_table ORDER BY word ASC")以下是它的完整代码:
@道
publicinterfaceWordDao{
@插入
void insert(Word Word Word);
@查询(“从单词表中删除”)
voiddeleteAll();
@查询(“按单词顺序从单词表中选择*”)
列表<。Word & gtgetall words();
}
LiveData类
当数据发生变化时,通常需要做一些操作,比如在UI上显示更新后的数据。这意味着您必须观察数据,以便在数据发生变化时做出反应。根据数据的存储方式,这可能很棘手。要观察多个组件中的数据变化,您必须编写一个显式且严格依赖的调用链。这使得测试和调试非常困难。
LiveData是生命周期库中用于数据观察的类,可以用来解决上述问题。在您的方法中使用LiveData作为返回值。这样,Room将为您生成所有必要的代码,并在数据库更新时自动更新LiveData。
推荐阅读
- 张忠德、林定坤入选2021年岐黄学者支持项目
- 淮阳区召开乡村振兴示范村创建暨2022年农业产业项目座谈会
- 闵行推出的这个新项目,已覆盖20多所幼儿园,家长反馈良好
- 和平精英:首款特效平底锅的实战效果!颜值在线,氪度却不美丽!
- 《一梦江湖》金陵奇妙会上演精彩娱乐项目,吃货们别忘了参加
- 永兴县:3.5亿元乡村振兴项目成功签约
- 王者荣耀:顶级难度五大英雄,500场实战仅入门,会玩的很少
- 第四届“奇璞奖”评选启动,九大赛道全面检阅健康产业价值创新项目(附报名通道)
- 王者荣耀新英雄实战几百场只算是入门,这三位英雄你会做到吗
- 经验交流 | 竹基镇:突出党建引领 选好用活沪滇帮扶项目