getGlobalVisibleRect() 与 getLocalVisibleRect()
1. 讲解这两个方法之前, 首先我们先看下一个图片, 只是一个简单的Activity, 一个Li...
Kotlin中扩展函数、infix关键字、apply函数和DSL的详解
一、扩展函数
定义扩展函数扩展可以在不直接修改类定义的情况下增加类功能,扩...
android RecyclerView的刷新机制
本文会从源码分析两件事 :
adapter.notifyXXX()时RecyclerView的UI刷新的逻辑...
Android计算图片占用内存大小
前言
对于一张图片,你知道应该存放在那个资源目录下面吗,或者说,放在那个资...
线上内存泄漏排查思路
内存泄漏排查
背景了解:告知 线上 room_work 运行一段时间内存就会慢慢往上涨,8G...
51CTO.COM – 技术成就梦想- 中国领先的IT技术网站
51CTO.COM
路由架构梳理
本文整理一下WMRouter的基本路由逻辑,并剖析相关路由类的设计。
基本元素
...
Gradle 编写及整个构建详解
本文不会太具体讲编写Gradle插件中用到的API,只是大致梳理一下如何编写一个Gr...
android防截屏相关
FLAG_SECURE标志: 你可以在你的Activity中使用getWindow().setFlags(WindowManage...
Android设计模式源码解析之桥接模式
模式介绍
模式的定义
将抽象部分与实现部分分离,使它们都可以独立的变化。...
android RecyclerView的复用机制
RecyclerView的View是在什么时候放入到Recycler中的。以及在Recycler中是如何保...
Kotlin之@JvmOverloads、@JvmStatic、@JvmField、@JvmInline等注解使用总结
写在前面
Kotlin代码可以经过编译器转换成VM虚拟机能识别的字节码,所以Java与...
Android底层崩溃捕获机制
我们知道Java中的Crash我们一般可以通过try/catch进行捕获并获取具体的崩溃信息,...
Kotlin中object和companion object 区别
概念:object声明(一个类)是延迟加载的,只有当第一次被访问时才会初始化,所以...
redux原理分析
前言
相信很多人都在使用redux作为前端状态管理库进去项目开发,但仍然停留...
Android设计模式源码解析之Proxy模式
Binder中的代理模式
再说Binder中的代理模式之前,我们需要先看看代理模式的简...
Kotlin | 使用vararg可变参数
背景
一般在项目开发中,我们经常会在关键节点上埋点,而且埋点中会增加一些额...
buildSrc
1.项目根目录下新建一个名为 buildSrc 的文件夹
image.png
2.在 buildSrc 文...
Android性能优化实践
内存优化
在Android开发中,有一些实践可以帮助进行内存优化,以减少应用程序的...
kotlin:引子约定plus约定invoke约定 & in约定 & range约定
引子
假设女生的择偶标准如下:未婚且岁数比我大,如果对方是本地帅哥...

