自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 synchronized

因为对象锁只有一个,那么哪个线程争抢到这个对象锁,哪个线程下的就先执行,synchonized{}内的代码只有一个线程能做,而synchonized{}外的就不是了,当 synchonized{} 执行完后 或者抛出了异常 会自动把该线程持有的锁释放。有时候我们 写代码的时候 在主线程开启一个线程去做事情,然后希望上面的代码先执行 ,下面的代码在上面的代码获取结果 后才执行。我们希望 生成一个数据,再消费一个数据,在没有生产之前,消费等待生产,在生产了一个之后,等到消费再生产。

2024-07-17 18:53:21 1002 1

原创 Flow详解

比如说: 当设置 replay =2 的时候当发送1 的时候, replay存储1,当发送2 的时候,存储1,2 当发送3,的时候存储,23,当发送4,的时候,存储34,当发送5的时候,存储45比如说上面的代码 中第二个监听他由于延迟了1s 才设置监听 ,如果把缓存 replay 改为2,那么当第二个监听者在设置监听的时候 就可以收到 最后两条数据4,5 数据,但是 1,2 ,3,依旧是收不到的。

2024-05-08 15:21:31 959

原创 Room的使用

Room 是对Sqlite 的二次封装,利用APT注解处理器技术自动生成代码,方法我们更能流畅易用的访问数据库**Room的使用配置在项目build.gradlew。

2024-03-09 18:53:18 393

原创 ViewModel

*我们这里说的ViewModel 是说的是jetpack提供的一个组件库,他跟,mvvm里说的VM层是两个不同的概率,不要混淆。ViewModel的作用就是为了数据的稳定性。**

2023-08-20 21:53:54 160

原创 ViewBinding与kotlin的绑定机制

*

2023-08-20 18:47:00 105

原创 Databinding

*Databinding 是一个能够实现双向绑定的google自带的工具库,也就是他能够让V界面与M数据bean进行绑定在一起,正是因为界面绑定着数据,所以当数据发生改变的时候,界面也会跟谁改变,而界面改变的时候,数据也会发生改变,这就是双向绑定,想要使用他很简单,就是再 build.gradle 下加上android{dataBinding.enabled = true 代表开启即可使用**

2023-08-20 17:35:56 17

原创 Livedata

前面说的都是livedata 调用obsever方法设置了一个被观察者,比如MainActivity,然后需要跟着MainActivity的生命周期可不可见决定 设置的观察者们数据改变的时候是否能被调用监听到,livedata同样也提供了一个api方法,能够不设置这个被观察者,也就是,livedata他的数据在改变,在任何时候监听者们都能够知道监听到,不在依赖任何人的生命周期,就是调用 observeForever方法。与常规的可观察类不同,LiveData 具有生命周期感知能力,意。

2023-08-19 10:41:50 35

原创 lifecycle

还有一个类 DefaultLifecycleObserver ,他是对 LifecycleObserver 的二次封装,方便我们使用而已,像上面的 LifecycleObserver 写法上比较麻烦, DefaultLifecycleObserver 就比较简单些,他直接重写对应的方法即可,不需要再去写注解订阅哪个event。lifecycle 其实采用观察者设计模式,观察着 被观察者的的生命周期,当被观察者的生命周期被调用的时候, lifecycle 会帮我们。调用观察者的对应方法。

2023-08-17 18:02:21 30

原创 Hilt详解

Hilt是对Dagger2的二次封装,比Dagger2更好用以及导入依赖如果是kotlin还得导入配置**

2023-08-17 11:32:49 112

原创 Dagger2

Dagger2是一个框架库,他通过APT技术,在编译的时候帮我们自动生成代码,而不用我们自己去写。他最常见的用法,是可以让我们在一个类中, 直接通过注解,在编译的时候,自动帮我们new 出一个对象,所以我们只需要这么写,他在运行的时候就不是空的。使用 Dagger2 需要先引入第三方。引入之后,想要实现上方直接通过注解创建对象,还需要几个步骤。首先要知道 Dagger2 是一个依赖注入框架,也就是一个类依赖Dagger2 这个框架帮它这个类注入一个对象,所以不需要人为去new。

2023-08-06 13:00:49 20

原创 Handle消息机制

Handle 消息机制

2023-03-27 14:50:58 474

原创 ubuntu 配置或者更换jdk,sdk

ubuntu 配置 或者更换jdk ,sdk

2023-03-11 12:02:33 444

原创 虚拟机 vware ubuntu aosp 下载编译Android9 Android12 以及启动模拟器

编译aosp

2023-03-08 21:25:13 3093 4

原创 进程间通信IPC

android 进程间通信,binder,AIDL

2022-08-18 17:25:57 1886

原创 android 插件化全面解析

插件化,四大组件的工作流程,代理

2022-08-12 16:50:40 5741 2

原创 java的classloader 和android 的classloader 以及android classloader类加载机制

classloader,android 类加载机制

2022-08-12 16:42:35 1035

原创 kotlin入门到熟悉上手使用

kotlin

2022-08-03 10:26:11 44

原创 git 使用

git

2022-07-29 18:23:40 23

原创 <include> <merge> <view stub>使用以及为什么使用

Include、Viewstub、Merge标签使用以及为什么使用

2022-07-28 17:07:31 407

原创 插件化换肤,resource 资源加载流程 ,Activity实例创建启动后界面如何生成

resource,插件化

2021-03-14 17:04:00 468

原创 Window,View,View的绘制流程 ,自定义View ,自定义属性

View

2020-12-06 10:43:00 500

原创 android 内存泄漏

jvm内存分配,android内存泄露

2020-10-02 17:25:00 361 1

原创 android动画--小飞机旋转效果

android动画

2020-09-09 16:50:00 221

原创 Activity

先讲actitivity的生命周期:生命周期:onCreate() -> onStart() - > onResume() -> onPause() -> onStop() -> onDestroy()启动activity:系统先调用onCreate(),然后调用onStart(),最后调用onResume()方法,activity进入运行状态。act...

2020-02-16 18:02:43 166 1

原创 LayoutInflater

LayoutInflater的获取与使用在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想.........

2019-12-19 17:49:32 211 1

原创 自定义drawable--画鱼游动的案例来学习自定义view的思想。

自定义view

2019-12-19 17:48:31 265

原创 service

Service分为本地服务(LocalService)和远程服务(RemoteService),本地服务就是运行在同一个进程,记住service运行的是主线程,所以在开service里做耗时任务一定要线程。远程服务就是跟app不同个进程,app关了,服务进程还开着,需要另外关闭服务进程。首先先讲下service与线程区别。service与线程没有半毛钱关系,很多时候,你可能会问,为什么要用 S............

2019-12-19 17:36:41 585

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除