- 博客(7)
- 收藏
- 关注
原创 Java 为什么不能创建泛型数组?
泛型是 JDK 1.5 中引入的新特性, 首先我们来思考下 java 为什么要引入泛型, 我们看如下代码: List list = new ArrayList(); list.add(55); list.add("dd"); System.out.println(((Integer) list.get(1)) - 5);这段代...
2018-09-23 20:53:03 1682 2
原创 从源码的角度解析 view 的测量流程
首先,我们在这里提出两个疑问:viewGroup 是如何遍历所有的子 view, 并进行测量的? 这个遍历最开始的起点是哪? viewGroup 为何没有重写 onMeasure 方法? measureChildren , measure , onMeasure 这些方法之间的调用关系是什么?在此说明一下, 此篇文章需要读者了解 Android 窗口机制, 并且知道 ViewRootI...
2018-09-21 16:10:45 209
原创 浅析Java 线程池 实现原理
线程池是 JDK 1.5 出来的一个有关线程的新类库. 因此, 自 JDK 1.5 之后, 官方不推荐在使用线程的时候显示的新建一个线程, 而是要使用线程池. 本文主要从如下几个方面去探索线程池的大致实现原理:"线程池" 中的这个 "池" 到底是什么, 它是什么数据结构? 线程池的大致的执行流程是什么? 线程池是如何实现线程的复用, 如何管理线程, 又是如何销毁一个线程...
2018-09-15 14:43:42 268 1
原创 浅析 Fragment 回退栈
在我们使用 fragment 的时候 ,总是会使用到 fragmentTransaction 的 add remove 和 replace 方法, 这些方法对 fragment 生命周期有着不同的影响, 在来个 回退栈, 就更加容易混淆. 我们通过开启回退栈和关闭回退栈来分别查看 fragment 的生命周期来了解 fragment 回退栈对其生命周期的影响.不使用任何回退栈...
2018-09-14 20:46:16 852
原创 Fragment生命周期
和 Activity 一样, Fragment 也有其相应的生命周期, 但是和 Activity 生命周期有着什么样的联系, 又会在 Activity 生命周期的生命阶段分别会回调到 Fragment 生命周期的哪些方法呢? 让我们开始探索: 首先, Fragment 的生命周期总共有 11 个, 比 Activity 的 6个 (不包括 onRestart) 多了 5 个, ...
2018-09-14 14:42:20 1536
原创 Activity生命周期
几乎绝大部分Android书籍,无论是入门还是进阶书籍都会有 Activity 生命周期的介绍, 由此可见它在 Android 开发中的地位, 因此特地详细总结记载 Activity 生命周期的的各种回调. 我们从两个方面分析 Activity 生命周期的回调过程以及需要注意的 细节 问题.典型情况下的生命周期分析:onCreate:表示 Activity 正在被创建...
2018-09-13 19:12:39 186
原创 主线程中的Looper.loop()死循环为什么不会导致ANR?
源码的 ActivityThread 类中有这么一段代码:public final class ActivityThread { public static void main(String[] args) { ... Looper.prepareMainLooper(); // 注意此处 ActivityThre...
2018-09-11 21:29:03 1725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人