代码编织梦想

Kotlin内联函数-爱代码爱编程

之前学了下高阶函数,知道了Lambda表达式很好的使用高阶函数,现在想看一下看看高阶函数的原理,要知道Kotlin文件最终都是被编译成Java字节码的,但是Java中并没有高阶函数这个概念,其实Kotlin的编译器会将这些高阶函数的语法转换成Java支持的那种,比如以前写的计算两个数的和和差的函数: fun main() { val result

Jetpack DataStore 基础使用简单封装-爱代码爱编程

Jetpack DataStore 基础使用简单封装 在Application下初始化 DataStoreUtil.instance.init(this) 写入数据 suspend inline fun <reified T : Any> dataStoreSave(key: String,value: T) = when(T::

Android_Jetpack:DataBinding之自定义BindingAdapter的创建与使用-爱代码爱编程

写在前面:关于DataBinding,感觉用的人不是很多,毕竟这是一个服务于XML的,如果要是单纯的用来绑定控件,用ViewBinding或者Kotlin的Kotlin-android-extension也都够用了。上网查了查,也有很多关于DataBinding坑很大的说法,这里贴一篇郭神的文章来解个惑。 犹豫要不要用DataBinding?这篇文章帮你

Android navigation组件-爱代码爱编程

lzyprime 博客 (github) 创建时间:2020.11.24 qq及邮箱:2383518170 kotlin & android 笔记 λ: navigation 组件 是 Android Jetpack重要组成部分,推出3年左右,2018谷歌I/O大会也曾介绍过。主要用于组织Fragment,通过Fragment来实现

优雅计算算式:后缀表达式-爱代码爱编程

后缀表达式 提要 当用户输入了如同"10 - 2"这样的字符串,如何计算这个算式的算术结果? 答案似乎非常简单:遇到数字就缓存数字,遇到运算符,用缓存的数字对下一个数字进行操作就能得到结果。 对于"10 - 2 + 5"这样的序列,只需要做一点点修改:把上次的运算结果也缓存起来,跟上面的操作思路就一致了。 但是一遍线性扫描解决不了这样的问题:如何

Kotlin_小练习(Lambda)-爱代码爱编程

Thader类 package xx class Trader(val name: String, var city: String) { override fun toString(): String { return "Trader:" + name + " in " + city } } Transacti

Kotlin高阶函数-爱代码爱编程

高阶函数:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么这个函数就成为高阶函数。写习惯了Java的人可能就在想,编程语言中的参数有整型、字符串类型,布尔型等字段类型, 怎么能接收一个函数作为参数呢?其实Kotlin新增了一个函数类型的概念,基本定义规则如下: (String, Int) -> Unit 看起来有点抽象,一

Android热更新方法总结-爱代码爱编程

文章目录 Dex更新Res更新 Dex更新 动态改变BaseDexClassLoader对象间接引用的dexElements:Classloader加载类是从DexElements依次遍历dex,如果dex中有该类则返回,没有则遍历下一个dex,所以Hotfix的解决方式就是改变dexElements中dex的顺序,具体实现方式是通过反射的方

Android_Jetpack:Room与LiveData、ViewModel的结合使用-爱代码爱编程

如果不使用LiveData自动获取数据的变化,那么当每次数据库中的数据发生变化时,我们都要开启一个工作线程去重新获取数据库中的数据。 比如说,在进入页面时,要获取数据库中全部学生信息列表,一般我们会这么写: thread{ studentList = studentDao.getStudentList() as MutableList<St

andoroid kotlin 工具类收集(http permission 自定义view socket 事件总线)-爱代码爱编程

项目地址 项目地址: https://github.com/xiaoerMr/Tools 项目地址 1: 使用方式 // 第一步 allprojects { repositories { maven { url 'https://jitpack.io' } } } // 第二步 dependencies { implementation

Kotlin 封闭类与枚举区别-爱代码爱编程

在Java或者Kotlin中枚举可以携带属性,向下面这样。使用属性可以做一些差异性判断,比如静态工厂。 enum class Car2(val maxSpeend:Int) { AUDI(200),BWM(210),BENZ(220) } 但是在实际开发中,有一些属性并不是直接就能确定的,甚至随着程序的运行才能确定,就用到了封闭类。举个例子:

Kotlin AndroidX ARoute Hilt 组件化开发示例-爱代码爱编程

Route 项目介绍 该项目只是简单的组件化开发的示例,搭建了组件化开发的雏形。 暂时没有实现内容的开发工作,目前实现功能有: 网络模块的封装、ARoute的使用方法、登陆功能的实现(UI未实现)。 组件划分 App 模块moduel_basis 基础模块moduel_login 登陆模块moduel_hilt hilt使用示例模块App 模块(A

Kotlin-最全面的教程之基础篇-数据类型和使用-爱代码爱编程

Kotlin 的基本数据类型 相比于Java  基本数据类型都是差不多的 Java              Kotlin  byteByteshortShortint IntlongLongfloatFloatdouble Doublechar CharbooleanBoolean  可以看出 基本数据类型都是这8种,只是Kotlin的开头

Kotlin扩展函数-爱代码爱编程

扩展函数:在不修改某个类的源码的情况下,仍然可以打开这个类,向该类中添加新的函数。比如说,我们在Android开发中经常用到Toast,每次创建一个Toast的时候,又要传入上下文,还要传入内容,还要时间长短,最后还得写个show,有时候show忘记写了还一脸懵逼的不知道为啥不弹出来,于是可以封装一个ToastUtil来管理toast: public c

Android OpenCV(四十三):图像分割(Grabcut)-爱代码爱编程

图像分割 图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于

Kotlin静态方法-爱代码爱编程

静态方法:在某些编程语言中又叫做类方法,指的就是不需要创建实例就可以直接调用的方法,几乎所有的编程语言都会支持静态方法的。在JAVA中,定义静态方法很简单,只需要static关键字: public class Util { static void doSomething(){ //doSomething } } 可以看

Kontakt标准函数(with、run、apply)-爱代码爱编程

Kotlin标准函数指的是Standard.kt文件中定义的函数,任何Kotlin代码都可以自由地调用所有的标准函数 with:该函数接收两个参数,第一个参数是任意类型的对象;第二个参数是一个lambda表达式。with函数会在lambda表达式中提供第一个函数的上下文,这样就很方便的可以调用第一个函数相关的API,并且以lambda表达式中最后一行代码

Android、Java、Kotlin面试笔记2020.11.22-爱代码爱编程

四种LaunchMode使用场景 standard默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈。singleTop如果栈顶存在该Activity的实例,就复用该实例(会调用onNewIntent()),否则会创建新的实例并放入堆栈,即使存在该Activity实例,只要不在栈顶就会创建新的实例。singleTask如果该栈

Kotlin协程学习之启动模式-爱代码爱编程

好文参考: https://juejin.cn/post/6893809019425816584 https://juejin.cn/entry/6844903854245412871   1.概念 Essentially, coroutines are light-weight threads. 协程是轻量级的线程。线程是由系统调度的,线程切

Android_Jetpack:LiveData原理及使用ViewModel+ LiveData实现Fragment间的通信-爱代码爱编程

说实话,一开始接触LiveData的概念,是通过郭神的《第一行代码(第三版)》,但是一股脑的各种概念铺天盖地而来,导致的后果就是面对LiveData莫名地有种恐惧,所以这也是我开始专门研究Jetpack的一个初衷(题外话,在小公司写传统业务代码,真的是可以用10年前的技术吃一辈子,严重脱节)。 一、LiveData原理 说回LiveData,可以将Li