- 博客(633)
- 资源 (20)
- 收藏
- 关注

原创 Andriod --- JetPack :Room + ViewModel + LiveData 增删改查实例
1.Andriod — JetPack (一):初识 JetPack2.Andriod — JetPack (二):LifeCycle 的诞生3.Andriod — JetPack (三):ViewModel 的诞生4.Andriod — JetPack (四):BaseObservable 与 ObservableField 双向绑定5.Andriod — JetPack (五):DataBinding + LiveData +ViewModel 简单实例6.Andriod — JetPack
2022-03-31 19:40:49
4269
1

原创 Andriod --- JetPack :Room 增删改查
文章目录一、前言二、Romm 的应用一、前言Android 采用 SQlit 作为数据库存储,开源社区常用的 ORM (Object Relational Mapping) 库有 ORMLite、GreenDao 等。Room 和其他库一样,也是在 SQLite 上提供了一成封装。这个 ORM 我们解释一下,因为我们用 Java 写的程序都是面向对象编程的(oop),而数据库是面向关系的,表与表之间的关系等等,那么我们怎么把这两者之间串联起来的就有了ORM,对象-关系-映射,这个东西。而 Room
2022-03-31 16:11:13
3229

原创 Andriod --- JetPack :BaseObservable 与 ObservableField 双向绑定
一、什么叫单向绑定与双向绑定单向绑定:对象变化的时候 TextView 自动更新双向绑定:对象变化的时候 EditView 自动更新。EditText 变化的时候对象的值也发生变化。二、BaseObservable 双向绑定代码实例MainActivity.javaimport androidx.appcompat.app.AppCompatActivity;import androidx.databinding.DataBindingUtil;import androidx.databin
2022-03-28 17:32:50
2072

原创 Andriod --- JetPack :DataBinding + LiveData +ViewModel 简单实例
一、DataBinding让布局页面承担了部分原本属于页面的工作,是页面文件和布局耦合度进一步降低。页面文件:Activity。布局:activity_main.xml减少了很多 findViewById 与 OnClickListener二、LiveData在 ViewModel 中的数据发生变化时通知页面这里的 Model 层下面的例子未呈现,等过后学到了 JetPack - Room 自然就懂了三、ViewModel1.它是介于 View(视图)和 Model(数据模型)直接的桥梁2
2022-03-14 15:49:44
2877

原创 Andriod --- JetPack:ViewModel 的诞生
一、ViewModel的诞生1.瞬态数据的丢失比如用户在界面上输入了数据,如果屏幕旋转之后,数据就发生了丢失。ViewModel实际上是以Map的方式保存我们的数据2.异步调用的内存泄漏3.类膨胀提高维护的难度和测试的难度比如在 Activity 中写的代码太多,导致维护难度增加二、ViewModel的作用1.它是介于 View(视图)和 Model(数据模型)直接的桥梁2.使视图和数据能够分离,也能够保持通信三、使用ViewModel的注意事项1.不要向ViewModel中传入Co
2022-03-14 14:56:27
518

原创 Andriod --- JetPack :LifeCycle 的诞生
一、使用的原因解耦系统组件与普通组件二、代码实例1比如一个普通控件 Chronometer 的使用与 Activity 的生命周期关联的太强,即普通控件 Chronometer 的业务逻辑必须在 Activity 的生命周期中处理,这样的耦合度就太高,所以我们使用LifeCycle 来解决我们先来看没有使用 LifeCycle 之前的代码:MainActivity.javapackage com.example.lifecycle;import androidx.appcompat.app
2022-03-13 22:09:24
2481

原创 Andriod --- JetPack :初识 JetPack
一、JetPack出现的原因App架构设计的标准的缺失,我们所用过的MVC、MVP、MVVM系列模式可能都是根据自己项目的场景构建的,而并不符合Google的设计方案,所以Google推出Android架构设计标准JetPack。二、什么叫JetPack简单一句话概括:JetPack 是一个由多个库组成的套件,可以帮助开发者遵循最佳做法,减少样板代码编写,可在各种Android版本和设备中一直运行代码,让开发者集中精力编写重要的代码,看下面的图:三、为什么使用JetPack1..
2022-03-13 19:21:19
2667
原创 Android --- logcat 打印日志、设置缓存大小、过滤等
3.禁止所有log tag 的输出,设置所有log, S等级及以上的log才能输出,S等级最高,V等级最低。5.使log tag 为 APP_A 的输出,设置log tag 为 APP_A 的V等级及以上能输出。4.禁止log tag 为 sss的输出,设置log tag 为 sss 的S等级及以上才能输出。决定相关log的指定等级及以上才可以写入,ABC是指某个tag,TAG长度不能太长。2.使能所有log tag 输出,设置所有log V等级及以上才能输出。4.输出APP_A的log。
2023-03-01 12:00:57
452
转载 Andriod --- 如何理解混淆配置?
今天看到一篇有关Android混淆配置比较好的文章,拿出来分享给大家,一起学习!android studio自带java语言的ProGuard工具,主要用来压缩、优化、混淆,然后配合Gradle构建工具实现混淆。
2023-02-28 14:33:48
65
原创 Android --- onCreateViewHolder和onBindViewHolder两者关系和调用次数
然后,onCreateViewHolder的目的是创建viewHolder。而viewHolder作为recyclerView缓存管理的对象是可以在列表中复用的。最后,当屏幕上下滑动,子项移除屏幕viewHolder就会被回收,子项复用时会从缓存池中判断item type再次调用onBindViewHolder方法。首先,onBindeViewHolder方法的调用时机是item出现(或将要出现)在屏幕上时,这时需要向传入的viewHolder中填充数据等操作。
2023-01-29 09:31:37
654
原创 Android --- 异常报错 ConcurrentModificationException 解决方法
原因: 若采用迭代操作, 在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。这种比较常见的,用的是迭代方式操作数据。解决方法:采用for循环操作。
2022-12-14 14:21:08
381
原创 Android --- java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvi
java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvider uri content://com.dfl.tingshu.fileProvider/downloadImage/iy34o5jtylscob1ma67oh9mwmggui5oj_326x326.jpeg from pid=25412, uid=1000 requires the provider be exported, o
2022-08-26 14:00:10
1136
原创 Android --- AS启动报错,点什么都点不了com.intellij.ide.plugins.PluginManager(ubuntu)
删除.config/Google/AndroidStudio 2020.3 文件夹。删除.cache/Google/AndroidStudio 2020.3 文件夹。:可能是由于再电脑突然关闭的瞬间,一些配置文件没有保存或者发生了变化。.cache/Google是当我打开某个工程的时候一些缓存配置。.config/Google是AS自身的一些缓存配置。:ubuntu,电脑突然自动关机,重启后,打开AS。如有不对的地方,望指正~~...
2022-08-17 17:59:05
870
原创 Android --- 浅谈下 ImageView 的 setImageLevel 方法走过的坑
今天在项目中用到了控件 ImageView 的 setImageLevel 方法,也遇到了很多坑。
2022-08-16 11:44:40
262
原创 【数据库系统】- 分布式数据库 - 分片透明、复制透明、位置透明、逻辑透明
是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关心,其应用程序的编写与集中式数据库相同。用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效
2022-07-09 11:40:20
342
原创 【数据库原理】闭包与候选码的求法,你掌握技巧了吗?
此篇文章没有过多的定义,如果想要看定义的小朋友请去看课本,在这里我讲下求闭包和候选词的方法:先来看一个例子。关系R(A,B,C)知足下列函数依赖F(A → B,A→C,B→AC),求A的闭包通俗的来说,就是A能直接或者间接推出的属性的集合闭包A → B, A→C, A→BC, A→Φ, A→A空集能够省略不写,所以,A的闭包为ABC,同时A也为R上的候选键若是换一下求B的闭包,知道了原理,那也很是容易了B→AC, B→A, B→C, B→B, B→Φ所以,B的闭包也是ABC,B也为R上的候选键求C的闭包呢
2022-07-09 11:15:30
1669
原创 UML类图与类的关系详解
类图(Class Diagram): 类图是面向对象系统建模中最经常使用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图的3个基本组件:类名、属性、方法。泛化(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的全部细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。就是继承 extends,箭头从子类指向父类实现(Realization):在类图中就是接口
2022-07-07 15:58:27
617
原创 Android --- 文件的创建、写入、读取、压缩操作示例代码
写入文件读取文件创建文件 文件的压缩 * 1.compressFilePath:要压缩文件的路径 * 2.name:要压缩文件的名字 * 3.toLocalPath:把文件压缩到哪里
2022-07-04 20:22:53
1068
原创 Android --- 强引用、软引用、弱引用和虚引用
Java提供了四种级别的应用类型:强引用、软引用、弱引用及虚引用。那么这四种引用类型分别有什么作用,又有什么区别呢?强引用是我们最常用的一种引用类型。当我们使用new关键字去新建一个对象的时候,创建的就是强引用。比如:强引用有如下特点:强引用与Android开发中的OOM异常OOM异常是Android开发过程中很常见的一种异常,下面来看一个例子:简单的解释一下上面这段代码:MyAsyncTask会跟随Activity的onCreate去创建并开始执行一个长时间的耗时任务,并在耗时任务完成后去更新Mai
2022-07-03 21:12:51
733
原创 Android --- Handler 内存泄漏原因及解决方案
Handler造成内存泄露的原因。非静态内部类,或者匿名内部类。使得Handler默认持有外部类的引用。在Activity销毁时,由于Handler可能有未执行完/正在执行的Message。导致Handler持有Activity的引用。进而导致GC无法回收Activity。匿名内部类:非静态内部类:三、解决方法静态内部类+弱引用Activity销毁时,清空Handler中,未执行或正在执行的Callback以及Message。四、内部类为什么会持有外部类的引用这是因为内部类虽然和外部类写在同一个
2022-07-03 21:03:31
2398
原创 Andriod --- JetPack :LiveData setValue 和 postValue 的区别
文章内容来自:https://blog.csdn.net/catzifeng/article/details/103931517平时我们使用LiveData的时候,需要更新数据的时候,LiveData提供了两种更新数据的方式:那么这两种方式有什么区别呢?setValue()只能在主线程中调用,postValue()可以在任何线程中调用。我们先不急着看源码,先看官方如何介绍这个方法。上面的注释已经很清楚了:这个方法必须在主线程中调用,如果你需要在后台线程中设置value,请移步 #postValue(Obj
2022-07-03 16:38:37
635
2
原创 Android --- 启动 AS 之后卡死,右下角显示applying filter 一直在加载,不断的叠加,叠加到击败甚至几万
Android --- 启动 AS 之后卡死,右下角显示applying filter 一直在加载,不断的叠加,叠加到击败甚至几万
2022-06-23 17:31:20
690
原创 Android --- AIDL 的理解
文章目录一、跨应用启动 Service二、与 Service 跨应用通信 1三、与 Service 跨应用通信 2AIDL 的全称是Android Interface Definition Language(安卓接口定义语言)一、跨应用启动 Service项目结构:1.第一个App - 看好包名:MainActivity.java - com.example.startservicefromanotherapppackage com.example.startservicefromanothe
2022-06-18 16:26:41
369
原创 Android ---【报错】FileNotFoundException : /data/data/xx/compress: open failed: EISDIR (Is a directory)
今天遇到这样一个 Error :具体原因就是你的路径写错了原码是:修改后:
2022-06-13 14:13:23
567
原创 Android --- SQLite helper 的 onCreate 和 onUpgrade 不调用
第一种问题情况:你的本地里面有一个 SQLite 的 helper 工具类,当你第一次调用这个 helper 的时候 onCreate 和 onUpgrade 是会调用的。但是第二次就不会调用了 ,因为数据库里面已经创建的库与表。所以解决的方法就是把 data/data/包名/database 里面的文件都删除,然后才会调用 onCreate() 方法第二种问题情况:你的本地里面有两个或者多个 SQLite 的 helper 工具类,我们拿有两个 helper 的情况来说,假如你在 helper1
2022-04-27 12:04:01
2312
南宁师范师大学818计算机基础2017-2019答案.docx
2022-05-18
scratch3.0作品源码57个(小游戏)
2022-05-15
大学生《中国近现代史纲要》复习要点及考试题型说明
2022-03-25
管理员补办饭卡需求分析
2022-03-25
基于 SpringBoot +Vue +JAP 的慢性病报销管理系统课程设计
2022-01-26
SpringBoot + Vue +MyBatis的实验室助理工作管理系统课程设计
2022-01-25
SpringBoot + Vue +JPA 的实验室助理工作管理系统课程设计
2022-01-25
Android App_云随笔课程设计
2022-01-25
基于 jsp+servlet+jdbc 学生请假信息管理系统课程设计
2022-01-25
基于jsp+servlet+jdbc的青年志愿者信息管理系统课程设计
2022-01-25
基于 Swing + MySQL 实现食堂售餐系统
2022-01-25
基于ssh的实验室助理工作管理系统课程设计
2022-01-25
基于ssh的课堂考勤系统课程设计
2022-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人