大佬,6666
初识 JNIJNI 作为 Java/Kotlin(原生端) 同 C/C++ 端交互的工具,是学习 ffmpeg 的一个前提,这边做一个学习过程中的记录。通过 Android Studio...
前言 本文基于Android 10版本源码,从Activity启动方法startActivity为切入口分析整个流程。本文只涉及framework代码。 涉及到的类介绍 In...
HandlerThread本质上还是Thread,继承了Thread。它与Thread的区别是内部维护了一个Looper。当我们在子线程中使用Handler的时候需要创建一个...
我们知道Service是运行在主线程的,主线程中不能进行耗时操作,否则会发生ANR。Service中的发生ANR的超时时间是20s。有时候我们需要应用在后台默默做一些任务,例...
Retrofit的基本使用 此文章分析的Retrofit是基于Retrofit2.6.0版本。Gradle依赖如下: Retrofit使用步骤 创建Retrofit对象 我们...
基本使用 LocalBroadcastManager是Android Support包提供了一个工具,用于在同一个应用内的不同组件间发送BroadcastReceiver。a...
链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序来实现的。链表由一些的节点组成,节点 可以在运行是动态生成。每个节点包括两...
ArrayList基本介绍 ArrayList是一个可变的数组,相当于动态数组。与Java中的数组相比,它提供了动态的增加和减少元素。 源码分析 成员变量 构造方法 Arra...
没有卡死是因为epoll机制,nativePullOnce底层调用的是epoll,会让CPU进入休眠状态
Android中主线程为什么不会因为Looper.loop()里的死循环卡死?先说结论:主线程在没有消息的时候是阻塞的。主线程没有卡死,简单来说是因为有其他线程通过handler发送消息唤醒主线程。阻塞并不是卡死,阻塞可以简单理解为让出CPU,进入休眠...
fail-fast fail-fast机制在遍历一个集合时,当集合结构被修改,会抛出ConcurrentModificationException。 fail-safe fa...
基本使用 okhttp是Square公司开源的一个非常便捷的轻量级第三方网络访问框架。它支持同步请求和异步请求。Gradle依赖如下: 异步请求 同步请求 源码分析 OkHt...
针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种: Partial GC:并不收集整个GC堆的模式 Young GC:只收集young gen的GC Old...
赋值之后会有内存同步的
单例模式为什么要用Volatile关键字线程安全的单例模式常见写法是双重检查加锁。代码如下: 双重检查加锁的单例模式代码上就比较复杂,尤其体现在getInstance方法上,包括两次检查singleton是否是nu...