![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 84
mr_zengkun
这个作者很懒,什么都没留下…
展开
-
【10】Android之MVVM架构之ViewModel + LiveData + DataBinding
自定义的VM类只要继承引用的第三方库中的ViewModel抽象类即可然后我们就可以在activity/fragment中实例化它生命周期Google官方给的生命周期图我们知道ViewModel能在Activity和Fragment里使用,因此也能作为媒介使得Activity和Fragment进行交互。那么需要在View里使用呢?假如我有一个自定义view或者dialog,它包含一堆数据和状态,能否使用ViewModel去管理数据呢?这个是肯定的!后续会给到答案。...原创 2022-06-30 15:14:21 · 3729 阅读 · 2 评论 -
【9】LeakCanary 2.x内存泄漏检测分析
前述:LeakCanary 2.x已经完全基于Kotlin重构升级了,在使用方面相比之前也出现了不同,这次针对LeakCanary 2.x对内存检测流程进行分析,了解LeakCanary内部是如何实现内存泄漏检测的。1. 使用在2.7版本当中,我们直接引入依赖即可,无需通过代码调用LeakCanary.install的方式进行初始话,LeakCanary会在app初始时自动初始化自身。implementation "com.squareup.leakcanary:leakcanary-androi.原创 2021-12-18 19:46:23 · 580 阅读 · 0 评论 -
【8】Kotlin 之 lateinit关键字 与lazy
lateinit是许多刚进入学习kotlin常常会掉入的坑之一。很多人为了保证java原有的语法,在定义变量和对象的过程中,会使用如下的定义方式。class Demo{ private var value: String fun printValue(){ println(value) }}这个时候,编译器就会提示错误Error:(2, 5) Kotlin: Property must be initialized or be abstract然后有很多小伙伴解决问题,会使用提示原创 2021-09-22 11:13:06 · 1247 阅读 · 1 评论 -
【7】Kotlin 之 object关键字
object关键字主要使用的场景对象声明伴生对象对象表达式对象声明(object declaration)通过修饰类名来实现单例模式。修饰的类为静态类,kotlin可以通过类名直接调用,java则需要通过instance来调用类方法。伴生对象(companion object)因为在kotlin中是没有static关键字的,也就意味着没有静态方法和静态成员。那么在kotlin中如果想要表达这种概念,可以使用包级别函数(package-level funcation)和伴生对象(co原创 2021-09-22 10:44:57 · 266 阅读 · 1 评论 -
【6】Android 线程间通信(一) - Handler
Handler的java层和native层介绍原创 2021-05-14 19:02:55 · 325 阅读 · 1 评论 -
【5】Android Framework之进程间通信 - Binder
Android AIDL了解多少AIDL(Android Interface Definition Language) 即安卓接口定义语言。AIDL是IPC通信方式当中的一种,简单来说,就是为了让你在你自己的App里绑定其他App的service进行数据交互。AIDL的使用既然说到aidl是为了进程间通信,那么传递数据的类型就尤为重要。这次就根据aidl传递的参数类型的使用分别进行讲解。1. 基本支持类型当你打开Android Studio通过service项目创建一个aidl文件的时候,你会原创 2021-05-11 19:40:31 · 214 阅读 · 1 评论 -
【4】Android基础之线程 - Thread
Android的多线程了解多少线程可能大家都不陌生,经常在面试的过程中,被人问到线程的知识,大家都会回答一二。但是当问题不是以具体到“线程的创建”,“线程的使用”,“线程的优缺点”时,我们又能对多线程说出自己多少的了解呢!1. 多线程的介绍1.1 定义多线程顾名思义就是开辟多个线程进行工作,换而言之多个任务“同时”进行。“同时”,这个主要归咎于JVM虚拟机快速调度来轮换线程,使得多个线程能够轮流快速的执行,从而给我们一种同时进行的错觉。1.2 作用多线程的作用是使程序在并发过程中,减少多个原创 2021-05-10 15:04:46 · 231 阅读 · 1 评论