1、为什么要把 LiveData 当作事件传递用 利用观察者模式打造的事件总线的优点不必多说(当然也有很多缺点),如 EventBus 和 RxBus 用的好的话能起到很好的...
1、为什么要把 LiveData 当作事件传递用 利用观察者模式打造的事件总线的优点不必多说(当然也有很多缺点),如 EventBus 和 RxBus 用的好的话能起到很好的...
Dart 部分 其实学习过 JavaScript 或者 Java/Kotlin 的人,在学习 Dart 上几乎是没什么难度的,Dart 综合了动态语言和静态语言的特性, 这里...
在 Kotlin 1.1 也就是 2017年初, 首次推出协程作为实验性质的特性开始,我们一直在努力向程序员解释协程的概念,他们过去常常使用线程理解并发,所以我们举的例子和标...
MVI 概念 MVI 是和 MVVM 一起出现的概念,是跟着 Rxjava 响应式思路衍生出来的一种想法 MVVM 我猜大家都熟悉,数据层传递 Livedata -> per...
协程是一种并发设计模式,你可以在 Android 上使用它来简化异步代码。协程是在 Kotlin 1.3 时正式发布的,它吸收了一些其他语言已经成熟的经验。 在 Androi...
大家好,今天我给大家分享的是Launcher桌面快捷图标的开发,我们都知道快捷图标有两部分组成,一部分是应用的图标,另一部分就是应用的名称。其实Launcher中的快捷图标只...
一个好的应用软件都是需要好的维护,从初出版本到最后精品,这个过程需要版本不停的更新,那么如何让用户第一时间获取最新的应用安装包呢?那么就要求我们从第一个版本就要实现升级模块这...
Linux 内核有个机制叫OOM killer(Out-Of-Memory killer),该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了防止内存耗尽而...
大家好,今天给大家分享的是解决解析图片的出现oom的问题,我们可以用BitmapFactory这里的各种Decode方法,如果图片很小的话,不会出现oom,但是当图片很大的时...
FontResize FontResize是一个仿微信/支付宝 字体大小 调整控件的库 gradle依赖 该库里面只有一个类FontResizeView,故不用担心库很大。 ...
ClassLoader Dex 扩展 在 ApkBundleLauncher.loadBundle 中: 这里直接调用了 DexFile.loadDex 来加载 dex 文件...
Kotlin类型系统其中涉及到一个很重要的概念就是大家常说的可空性以及为什么Kotlin相比Java在一定程度上能降低空指针异常。此外在Kotlin中完全采用和Java不同思...
一、系统资源加载 1、资源类别 res目录下存放的资源文件。编译时会在R文件中生成资源文件的十六进制值。res目录下资源通过Context.getResource方法获取到R...
mmap是Linux中常用的系统调用API,用途广泛,Android中也有不少地方用到,比如匿名共享内存,Binder机制等。本文简单记录下Android中mmap调用流程及...
在开发中,我们常常遇到这种情况 我们往往需要的是下面这种效果 但是如果把这些实现的代码写在Activity中会比较麻烦,影响代码美观 于是就有了下面这个辅助类,禁用了按钮的点...
前言 Android插件化不算是一门新技术,发展了有一些年头了。不同公司的插件化方案大体原理上很相似。本文通过阅读爱奇艺的Neptune框架来介绍插件化的整体思路和流程。 插...
系统对四大组件的过程进行了很大程度的封装,日常开发中并不需要了解底层的工作原理,那么研究这些原理的意义在哪里呢? 如果你想在技术上更进一步,那么了解一些系统的工作原理是十分必...
例子 所谓动画其实就是一系列连续变化的图片在极短的时间逐帧显示,在人眼看来就是动画了。这里我们举一个简单的例子先说明一下在Flutter中怎么运行一个动画: 这个动画是在手机...
一.apply 函数 和 run 函数 1.1 apply函数 apply函数是指在函数块内可以通过 this 指代该对象,返回值为该对象自己。在链式调用中,可以考虑使用它来...