MySQL索引实现原理分析
目前大部分数据库系统及文件系统都采用 B-Tree(B 树)或其变种 B+Tree(B+树...
Android设计模式源码解析之责任链模式
1. 模式介绍
模式的定义
一个请求沿着一条“链”传递,直到该“链”上的某个处...
Android组件化架构 – 2. 组件间通信机制
本地广播LocalBroadcastManager
说到组件间通信第一个肯定想到广播BroadcastReceiv...
应用测速组件
统计应用冷启动时长、页面渲染时长是APM系统不可缺少一个功能。Rabbit中这个功能...
JNI 编程上手指南之数组访问
1. 引子
JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的...
Kotlin基础-for循环return、break、continue
一、前言:
java中return、break、continue的含义:
1、break:不仅可以结束其...
兼容性Android 设备兼容性使用详解
一、设备兼容性分类
二、硬件设备兼容
三、软件 APP 兼容
四、兼容不同语言
五、...
Android底层崩溃捕获机制
我们知道Java中的Crash我们一般可以通过try/catch进行捕获并获取具体的崩溃信息,...
Kotlin之@JvmOverloads、@JvmStatic、@JvmField、@JvmInline等注解使用总结
写在前面
Kotlin代码可以经过编译器转换成VM虚拟机能识别的字节码,所以Java与...
PathClassLoader与DexClassLoader到底有什么不同
先说一下为什么要抛出这个问题吧?
最近在看插件化相关的技术,因此会涉及到插...
Kotlin 互斥体:5 个用例
1. 保护多线程应用程序中的共享数据
设想:
在多线程应用程序中,多个线程...
android动态添加View,margin未失效
一:如何动态插入View (源码:SDK30)在讲实现前,我们先看下如何动态插入View,...
Android开发代码的规范
开发代码的规范
AQS 原理分析
引用自javaguide https://snailclimb.gitee.io/javaguide/
1. AQS 原理分析
在...
Fresco缓存架构分析
本文是Fresco源码分析系列第二篇文章,主要来看一下Fresco中有关图片缓存的内容。
...
Kotlin 中定义类、field关键字,主构造函数和次构造函数详解
1、定义类与field关键字,以及计算属性,和防范竞态条件
class Student {
...
Android TabLayout总结
TabLayout基本属性:
- background:背景颜色
- tabTextColor:默认文本颜色
- ta...
Rxjava 线程切换原理
前言
rxjava 可以很方便的进行线程切换, 那么rxjava是如何进行线程切换的呢?...