
Jetpack
文章平均质量分 93
Android Jetpack 架构
韩曙亮
中国人民大学硕士 , 专注于 移动开发 领域 , 博客专家 , 2023 年博客之星 TOP1 , 2021 年博客之星 TOP9 , 华为云 云享专家 , 阿里云社区 专家博主 , 51CTO 专家博主 ;
展开
-
【错误记录】Android 使用 Navigation 报错 ( Trying to instantiate a class xx.NavHostFragment that is not a Fr )
Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class androidx.navigation.fragment.NavHostFragment that is not a Fragment原创 2024-04-14 15:26:50 · 827 阅读 · 10 评论 -
【Jetpack】Navigation 导航组件 ⑤ ( NavigationUI 类使用 )
一、NavigationUI 类简介二、NavigationUI 类使用流程1、创建 Fragment2、创建 NavigationGraph3、Activity 导入 NavHostFragment4、创建菜单5、Activity 界面开发 NavigationUI 的主要逻辑 ( 重点 )a、添加 Fragment 布局b、处理 Navigation 导航逻辑 ( 重点 )c、启用菜单选项d、使用菜单进行 NavigationUI 导航e、支持导航回退功能原创 2023-08-30 21:50:39 · 1244 阅读 · 12 评论 -
【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )
一、页面跳转间的传统的数据传递方式1、传统的数据传递方式 - Bundle 传递数据1、Navigation 组件中的 Bundle 数据传递2、传统数据传递实现步骤3、FragmentA 完整代码示例4、FragmentB 完整代码示例5、执行结果2、使用 Bundle 传递数据安全性差二、页面跳转间的传统的数据传递方式1、导入插件依赖2、使用插件3、在 navigation_graph.xml 中定义要传递的 argument 参数信息4、重新编译生成参数传递相关代码5、调用原创 2023-08-25 13:48:36 · 6582 阅读 · 48 评论 -
【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 页面跳转 action 添加跳转动画 )
一、为 Navigation Graph 添加跳转动画1、进入 Navigation Graph 配置的 Design 模式2、选中 action 跳转3、为 action 跳转设置 enterAnim 进入动画4、为 action 跳转设置 exitAnim 退出动画5、通过代码为 action 跳转设置进入 / 退出动画6、执行效果原创 2023-06-27 10:04:24 · 13519 阅读 · 88 评论 -
【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 )
一、Navigation 导航组件开发核心要点说明1、Navigation 各子部件的创建顺序2、导入 Navigation 依赖3、创建 Fragment 及布局文件4、创建 Navigation Graph5、创建 NavHostFragment6、创建 NavController7、Fragment 实现导航操作二、Navigation 导航组件完整代码示例1、Fragment 完整源码FragmentA 源码FragmentA 布局文件原创 2023-06-22 15:27:04 · 6000 阅读 · 19 评论 -
【Jetpack】Navigation 导航组件 ① ( Navigation 引入 | Navigation 特点 | Navigation 重要组件 | Navigation 使用流程 )
一、Navigation 引入二、Navigation 特点三、Navigation 重要组件四、Navigation 使用流程1、创建 Fragment2、创建 Navigation Graph 组件3、处理 Navigation Graph 组件报错信息 " failed to add navigation dependency "4、编辑 Navigation Graph 组件 - 创建 action 跳转5、创建 NavHostFragment 组件6、在 Activity 中获取原创 2023-06-17 22:48:37 · 8376 阅读 · 32 评论 -
【Jetpack】Room 预填充数据 ( 安装 DB Browser for SQLite 工具 | 创建数据库文件 | 应用中设预填充数据对应的数据库文件 | 预填充数据库表字段属性必须一致 )
一、Room 预填充数据简介二、安装 DB Browser for SQLite 数据库查看工具三、使用 DB Browser for SQLite 新建数据库四、应用中设预填充数据对应的数据库文件1、数据准备2、原执行结果3、预填充数据后的执行结果五、预填充数据报错信息 - 数据库字段属性必须完全相同六、完整代码示例1、Entity 实体类代码2、RoomDatabase 类代码原创 2023-06-14 16:37:10 · 8753 阅读 · 28 评论 -
【Jetpack】Room 中的销毁重建策略 ( 创建临时数据库表 | 拷贝数据库表数据 | 删除旧表 | 临时数据库表重命名 )
一、销毁 和 重建策略二、销毁 和 重建策略 核心要点1、创建 Migration 迁移类 - 重点2、配置 Migration 迁移类3、修改数据库版本号4、修改实体类数据类型三、完整代码示例1、数据库版本 3 代码示例RoomDatabase 数据库类完整代码Student 实体类完整代码执行结果2、数据库版本 4 代码示例RoomDatabase 数据库类完整代码Student 实体类代码示例执行结果原创 2023-06-11 06:00:00 · 8193 阅读 · 30 评论 -
【Jetpack】使用 Room Migration 升级数据库并导出 Schema 文件 ( Schema 文件简介 | 生成 Schema 文件配置 | 生成 Schema 文件过程 )
一、Schema 文件简介二、生成 Schema 文件配置三、生成 Schema 文件过程1、数据库版本 1 - 首次运行应用2、数据库版本 1 升级至 数据库版本 2 - 第二次运行应用3、数据库版本 2 升级至 数据库版本 3 - 第三次运行应用原创 2023-06-08 07:00:00 · 11519 阅读 · 53 评论 -
【Jetpack】使用 Room 中的 Migration 升级数据库异常处理 ( 多个数据库版本的迁移 | fallbackToDestructiveMigration() 函数处理升级异常 )
一、Room#Migration 迁移工具升级数据库二、多个数据库版本的迁移三、数据库异常处理 - RoomDatabase.Builder#fallbackToDestructiveMigration() 函数四、完整代码示例原创 2023-06-05 11:04:25 · 10714 阅读 · 53 评论 -
【Jetpack】使用 Room 中的 Migration 升级数据库 ( 修改 Entity 实体类 - 更改数据模型 | 创建 Migration 迁移类 | 修改数据库版本 | 代码示例 )
一、Room#Migration 迁移工具简介1、Room 中的迁移工具 Migration 简介2、Migration 迁移工具使用步骤二、Room#Migration 迁移工具使用要点1、修改 Entity 实体类 - 更改数据模型2、创建 Migration 迁移类3、修改数据库版本4、数据库更新的情况5、直接安装最新数据库的情况三、Room#Migration 迁移工具完整代码示例1、Entity 实体类修改后的完整代码2、Migration 迁移类创建以及数据库版本修改代码示原创 2023-05-31 12:01:44 · 7572 阅读 · 25 评论 -
【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )
一、Room + ViewModel + LiveData 框架使用核心要点1、Room 框架优化分析2、Google 官方建议的 Room + ViewModel + LiveData 架构3、Room 与 LiveData 结合使用要点4、Repository 层核心要点5、ViewModel + Room 结合使用6、Activity 组件中 ViewModel 使用要点7、Room 框架主动查询数据库数据需保留除 LiveData 返回值外的正常查询方法二、完整代码示例1、buil原创 2023-05-25 08:54:00 · 8141 阅读 · 42 评论 -
【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库 ( 导入依赖 | 定义 Entity 实体类 | 定义 Dao 数据库访问对象接口 | 定义数据库实例类 )
一、Room 框架使用核心要点1、build.gradle 构建脚本配置说明应用插件导入依赖2、定义 Entity 实体类@Entity 注解@PrimaryKey 注解@ColumnInfo 注解@Ignore 注解修饰字段修饰函数3、定义 Dao 数据库访问对象接口@Dao 注解@Insert 注解@Delete 注解@Update 注解@Query 注解4、定义 RoomDatabase 数据库实例类5、调用 Room 框架访问数据库二、完整代码示例原创 2023-05-18 09:29:30 · 8968 阅读 · 26 评论 -
【错误记录】Android 中使用 Room 框架访问数据库报错 ( cannot find implementation for xx.xxDatabase. xxDatabase_Impl )
java.lang.RuntimeException: cannot find implementation for kim.hsl.roomdemo.StudentDatabase. StudentDatabase_Impl does not exist一、报错信息二、解决方案三、注解使用错误四、检查代码混淆错误原创 2023-05-10 16:06:21 · 7141 阅读 · 15 评论 -
【Jetpack】ViewBinding 与 DataBinding 简单对比
ViewBinding 与 DataBinding 对比原创 2023-05-09 23:45:00 · 1211 阅读 · 7 评论 -
【Jetpack】ORM 数据库访问框架 Room 简介 ( 对象关系映射 ORM 概念简介 | Room 框架的组成部分 - 实体、数据库访问对象、数据库持有者 | Room 框架使用步骤 )
一、对象关系映射 - ORM / Object Relational Mapping二、Room 框架的组成部分1、@Entity / @Dao / @Database 注解2、Entity 实体类 / Dao 数据库访问对象 / Database 数据库持有者 之间的关系三、Room 框架使用步骤1、添加 Room 框架依赖2、创建 Entity 实体类3、创建 Dao 实体类4、创建 RoomDatabase 数据库实例对象5、初始化 Room 数据库6、调用 Dao 执行数据库增删原创 2023-05-05 20:26:43 · 4789 阅读 · 24 评论 -
【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )
一、ViewModel + LiveData + DataBinding 核心要点1、ViewModel 使用要点2、LiveData 使用要点3、DataBinding 使用要点二、ViewModel + LiveData + DataBinding 代码示例1、ViewModel + LiveData 代码2、build.gradle 构建脚本 - 启用 DataBinding3、DataBinding 布局文件 - 配置 ViewModel 类4、Activity 系统组件代码 - 加原创 2023-04-27 15:46:51 · 9374 阅读 · 29 评论 -
【Jetpack】DataBinding 架构组件 ⑥ ( RecyclerView 数据绑定 )
一、RecyclerView 数据绑定核心要点1、启用数据绑定 / 导入依赖2、RecyclerView 条目 DataBinding 布局3、自定义 RecyclerView.Adapter 适配器要点 ( 本博客重点 ★ )二、RecyclerView 数据绑定源码示例1、build.gradle 构建脚本 ( 启用数据绑定 / 导入依赖 )2、主界面的 Activity 布局与组件 ( 可不使用 DataBinding )布局文件Activity 组件的 Kotlin 代码3、自定义原创 2023-04-22 18:55:17 · 8087 阅读 · 36 评论 -
【Jetpack】DataBinding 架构组件 ⑤ ( 数据模型与视图双向绑定 | BaseObservable 实现双向绑定 | ObservableField 实现双向绑定 )
一、数据模型 Model 与视图 View 双向绑定1、数据模型 Model 与视图 View 的单向绑定2、由单向绑定引出双向绑定二、BaseObservable 实现数据模型 Model 与视图 View 双向绑定4、BaseObservable 实现双向绑定 ( 本博客的核心重点 ) ★5、布局文件设置 ( 重点 )6、Activity 组件代码 ( 重点 )三、ObservableField 实现数据模型 Model 与视图 View 双向绑定 ( 本博客的核心重点 ) ★原创 2023-04-18 22:53:07 · 8188 阅读 · 30 评论 -
【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 )
一、@BindingAdapter 注解1、注解简介2、使用 @BindingAdapter 注解为布局组件绑定自定义逻辑二、使用 @BindingAdapter 注解绑定加载网络图片静态方法三、使用 @BindingAdapter 注解绑定加载本地图片静态方法四、使用 @BindingAdapter 注解绑定加载网络图片或本地图片静态方法五、完整代码示例1、build.gradle 构建脚本2、AndroidManifest.xml 清单文件3、DataBinding 布局文件原创 2023-04-09 16:07:35 · 11187 阅读 · 44 评论 -
【错误记录】Android Studio 编译报错 ( To use data binding annotations in Kotlin, apply the ‘kotlin-kapt‘ plu )
To use data binding annotations in Kotlin, apply the 'kotlin-kapt' plugin in your module's build.gradle一、报错信息二、kotlin-kapt 插件简介三、解决方案原创 2023-04-04 06:05:22 · 1555 阅读 · 10 评论 -
【Jetpack】DataBinding 架构组件 ③ ( 使用 include 导入二级界面布局 | 二级页面绑定数据模型 )
一、使用 include 导入二级界面布局二、二级页面绑定数据模型1、将二级界面布局转为 DataBinding 布局2、在主布局中为二级界面布局传递数据模型三、核心代码示例1、主布局2、子布局3、Java 代码4、执行结果原创 2023-04-01 19:41:13 · 10785 阅读 · 79 评论 -
【Jetpack】DataBinding 架构组件 ② ( 字符串拼接函数 | 绑定点击事件函数 | DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 )
一、字符串拼接函数二、绑定点击事件函数三、DataBinding 布局中使用 import 标签导入 Java、Kotlin 类1、DataBinding 布局中使用 import 标签导入 Java 类2、DataBinding 布局中使用 import 标签导入 Kotlin 类四、完整代码示例1、数据类2、导入的 Java 类3、导入的 Kotlin 类4、DataBinding 布局文件5、Activity 组件类原创 2023-03-28 09:02:30 · 1813 阅读 · 16 评论 -
【错误记录】Android Studio 中 DataBinding 布局报错 ( Resources$NotFoundException: String resource ID #0xd )
Process: kim.hsl.databinding_demo, PID: 9397android.content.res.Resources$NotFoundException: String resource ID #0xd at android.content.res.Resources.getText(Resources.java:348) at android.widget.TextView.setText(TextView.java:5831)原创 2023-03-25 16:05:00 · 824 阅读 · 0 评论 -
【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
一、数据绑定技术简介二、Android 中的 DataBinding 数据绑定技术三、Android 中的 DataBinding 代码示例1、build.gradle 构建脚本 - 启动数据绑定2、定义数据类3、布局文件转换4、Activity 组件设置数据绑定布局和数据5、显示效果原创 2023-03-25 16:07:09 · 4445 阅读 · 22 评论 -
【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 )
一、LiveData 简介二、LiveData 使用方法三、ViewModel + LiveData 简单示例1、ViewModel + LiveData 代码2、Activity 组件代码3、运行效果展示四、ViewModel + LiveData + Fragment 通信示例1、ViewModel + LiveData 代码2、Activity 组件代码Activity 代码布局文件3、Fragment 代码第一个 Fragment 代码第一个 Fragment 布局文件原创 2023-03-17 14:44:44 · 2524 阅读 · 24 评论 -
【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 )
一、Activity 遇到的问题二、视图 View 和 数据模型 Model三、ViewModel 架构组件作用四、ViewModel 代码示例1、ViewModel 视图模型2、Activity 组件3、UI 布局文件4、运行效果五、ViewModel 生命周期六、ViewModel 使用注意事项原创 2023-03-07 08:55:48 · 9227 阅读 · 60 评论 -
【Jetpack】Lifecycle 架构组件 ( 系统组件与普通组件解耦 | Lifecycle 解耦系统组件与普通组件 | 解耦服务组件与普通组件 | 监听应用程序生命周期 )
一、系统组件与普通组件解耦二、Lifecycle 解耦 Activity 系统组件与 UI 组件1、传统实现方式2、LifeCycle 实现方式三、LifecycleService 解耦 Service 与 UI 组件1、构建脚本导入依赖2、Android Studio 中搜索并添加依赖3、布局文件属性排序4、代码实现四、ProcessLifecycleOwner 监听整个应用程序的 Activity 生命周期1、ProcessLifecycleOwner 说明2、代码实现原创 2023-03-03 18:19:26 · 8166 阅读 · 47 评论 -
【Jetpack】Jetpack 简介 ( 官方架构设计标准 | Jetpack 组成套件 | Jetpack架构 | Jetpack 的存在意义 | AndroidX 与 Jetpack 的关系 )
一、Google 官方推出的架构设计标准 Jetpack二、Jetpack 组成套件三、Jetpack 架构四、Jetpack 的存在意义1、提高开发效率2、最佳架构方案3、消除样本代码4、设备系统兼容性5、改善应用性能6、测试支持五、AndroidX 与 Jetpack 的关系原创 2023-02-26 19:34:33 · 33253 阅读 · 60 评论 -
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )
一、Gradle 及 Gradle 插件版本、二、支持 AndroidX 配置、三、设置 Android 编译目标版本、四、相关依赖库修改、原创 2021-03-14 12:37:11 · 1249 阅读 · 0 评论 -
【JetPack】kotlin-android-extensions 插件 ( 视图绑定简单用法 )
一、动画效果添加对象、二、kotlin-android-extensions 插件使用步骤、1、配置 kotlin-android-extensions 插件、2、导入视图、3、完整布局文件、4、Activity 完整代码示例、原创 2020-12-12 11:48:26 · 1380 阅读 · 0 评论 -
【JetPack】数据绑定 DataBinding 简介 ( 使用要求 | Gradle 版本 | 定义数据类 | 定义数据绑定布局 | Activity 数据绑定 | 绑定类生成规则 )
I . 数据绑定 简介II . 数据绑定 使用前提 ( 环境支持 )III . 数据绑定 使用流程 一 : 定义数据类IV . 数据绑定 使用流程 二 : 定义数据绑定布局V . 数据绑定 使用流程 三 : Activity 数据绑定VI . 数据绑定类 生成规则原创 2020-04-15 20:59:54 · 1750 阅读 · 0 评论 -
【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
I . 视图绑定 ( ViewBinding ) 界面的两种方式II . Activity 界面中 应用 视图绑定 ( ViewBinding )III . Dialog 对话框界面中 应用 视图绑定 ( ViewBinding )IV . 自定义组件 应用 视图绑定 ( ViewBinding )V . RecyclerView 列表布局 应用 视图绑定 ( ViewBinding )VI . GitHub 代码地址原创 2020-03-25 00:19:23 · 5669 阅读 · 0 评论 -
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用II . 视图绑定 ( ViewBinding ) 定制III . 视图绑定 ( ViewBinding ) 对于正常操作的影响测试IV . 视图绑定 ( ViewBinding ) 关联 Activity 界面V . 视图绑定 ( ViewBinding ) 本质分析VI . GitHub 代码地址原创 2020-03-24 14:33:07 · 1288 阅读 · 1 评论 -
【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )
I . 视图绑定组件简介II . 视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 )III . 视图绑定组件启用IV . 定制视图绑定 ( 启用视图绑定后 不想生成绑定类 )V . 视图绑定布局文件VI . 绑定类名称生成规则VII . 绑定类对应的布局中的组件字段生成规则VIII . 视图绑定类获取IX . 设置视图绑定后的布局X . 获取视图绑定类组件XI . 视图绑定对应 Java 示例代码XII . 应用运行结果XIII . GitHub原创 2020-03-23 23:38:06 · 1804 阅读 · 3 评论