CopyOnWriteArrayList实现原理及源码分析
CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读...
原生AspectJ用法分析以及Spring-AOP原理分析
前言
前两天看了一些关于spring aop以及AspectJ的文章,但是总是感觉非常的...
Android设计模式源码解析之原型模式
1. 模式介绍
模式的定义
用原型实例指定创建对象的种类,并通过拷贝这些原...
Kotlin 互斥体:5 个用例
1. 保护多线程应用程序中的共享数据
设想:
在多线程应用程序中,多个线程...
Android 面试之必问Android基础
1,Activity
1.1 生命周期
正常情况系,Activity会经历如下几个阶段:
onCrea...
Kotlin 中变量,类型,表达式,函数详解
一、变量,编译时变量
1、要声明可修改变量,使用var关键字。
2、要声明只...
android RecyclerView的基本设计结构
下面这张图是我截取的RecyclerView的Structure:
本文着重看: ViewHolder、...
kotlin泛型
泛型使用方法
在类上使用泛型
类上面使用泛型,需要把泛型声明在类名后...
已测试自定义View:Measure过程说明之MeasureSpec类详细讲解
前言
在了解自定义View三大流程的Measure过程前,我们需要了解一个重要基础:...
Kotlin | 深入理解协程
@[toc]
Kotlin协程
协程由程序自己创建和调度,不需要操作系统调度,所以协...
解决插件资源ID与宿主冲突的问题
为什么会冲突?为什么要解决资源id冲突?
首先宿主apk和插件apk是两个不同的ap...
JNI 编程上手指南之 JNI 数据类型
1. 数据类型
JNI 程序中涉及了三种数据类型,分别是:
Java 类型
JNI ...
Flutter渲染机制
Flutter从本质上来讲还是一个UI框架,它解决的是一套代码在多端渲染的问题。在渲染管线的设计上更加精简,加上自建渲染引擎,相比ReactNative、Weex以及WebView等方案,具有更好的性能体验
Kotlin 中的 Lambda 与 Inline
在Kotlin中,有很多很酷很实用的特性,比如Lambda和高阶函数,利用这些特性,...
聊聊ViewPager2中的缓存和复用机制
1. 前言
众所周知ViewPager2是ViewPager的替代版本。它解决了ViewPager...
Kotlin中object和companion object 区别
概念:object声明(一个类)是延迟加载的,只有当第一次被访问时才会初始化,所以...
JNI 编程上手指南之异常处理
JNI 程序中的异常分为以下几种:
Native 程序原生异常,一般通过函数返回值和...
Fresco缓存架构分析
本文是Fresco源码分析系列第二篇文章,主要来看一下Fresco中有关图片缓存的内容。
...


