Kotlin作用域函数(Scope Functions)
前言
Kotlin中有5种作用域函数,分别是:
let, run, with, apply, and also
它们并没有任何特性,但是使用他们可以让我们的代码更加简洁,具备更好的可读性。我们可以在这找到它们的源码。下面我将分析这些方法的区别。
Kotlin中有5种作用域函数,分别是:
let, run, with, apply, and also
它们并没有任何特性,但是使用他们可以让我们的代码更加简洁,具备更好的可读性。我们可以在这找到它们的源码。下面我将分析这些方法的区别。
Extension Function 能在已经存在的类中添加新的方法或者属性,即使这些类来自库或者SDK中。在函数内部,我们可以访问类的公共函数和属性而不需要任何限定符,就好像这个函数就在这个类的内部一样。(注意:从技术上将,它并没有修改现有类,只是在声明的类中创建了static public final函数)
Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data.
正如Okio官网所说,它整合了java io 和nio让它们的更容易使用。此篇深入分析一下Okio高效的原因。
implementation "com.squareup.okio:okio:2.7.0"
Android中的存储目录分为三块,内部存储,外部存储,系统存储目录
想必大家都是用过arouter框架了,可以说arouter被广泛应用在组件化场景中,作为组件之间跳转的基石。在这篇中,我将主要分析arouter实现的原理,包括如何apt的部分以及使用时跳转的部分。
1. livedata实现原理
2. livedata实现双向绑定
livedata是被观察者的持有类,并能感应生命周期。此篇文章重在分析两点
在Kotlin中委托模式通过by关键字实现
interface Base {
fun print()
}
class Derived(b: Base): Base by b
上述表达式表示b将代理Derived去实现interface Base的方法。
Fragment在日常开发中非常的常用,一版都是配合ViewPager或FrameLayout使用,我们基本不用担心操作它attachToActivity,因为FragmentManager都帮我们处理好了。那么Fragment是如何绑定Activity的生命周期的呢?系统是如何将Fragment添加到视图层的呢?Fragment的回退栈又是什么呢?带着这些问题我们开始探索Fragment的源码吧。
Android多渠道打包已经是老生常谈的问题了,各个大厂也先后开源了自己的打包方案,为我们开发者带来不少便捷。今天我就来谈谈美团的Walle,我在项目中也正是用到了它,也算做个总结和备忘吧。本篇中会提及Walle的基本使用方法以及如何在项目中配置加固使用,当然,最后也稍微会从源码的角度去分析一下这个方案的原理。那么,现在开始吧。