06 2022 档案
摘要:1.测量 简单流程就是: 确定view是树结构 递归遍历每个子节点,即子view,进行测量。 下面具体说一下: 首先view是树结构。 也就是说子view是父view的孩子节点。 根节点是就是DecorView。 了解树的都知道,树的遍历都是递归遍历。 那么测量view的过程,其实就是遍历树的过程。
阅读全文
摘要:反射 通过反射可以获取到类,成员变量,方法 参考文档 Java反射完全解析
阅读全文
摘要:2022 Android面经实录 Android 基础相关 Activity Fragment Service Broadcast webView binder 异步消息处理机制相关 Handler AsyncTask HandlerThread IntentService view相关 view绘
阅读全文
摘要:概述 树一类很常用的数据结构 常见的有二叉树,二叉搜索树,红黑树 树的性质 主要是树的一些基本概念。 节点 父节点、子节点、叶子节点、根节点这些概念。 树的深度,宽度 二叉树 二叉搜索树 红黑树 这些树的概念和区别。 树的一些基本操作 遍历 树的遍历 前序遍历 根->左->右 中序遍历 左->根->
阅读全文
摘要:链表 特点: 节点内部包含指向下一个节点的指针,这种称为单链表 既有下个节点也有上个节点的指针,这种称为双向链表 链表又分为带头结点和不带头结点的 链表的一些基本套路 假设链表为如下数据结构: class ListNode { int val; ListNode next; public ListN
阅读全文
摘要:概述 Hashtable 与 HashMap 都是 Map 族中较为常用的实现,也都是 Java Collection Framework 的重要成员,它们的本质都是 链表数组。 Hashtable 和 HashMap 既是 Java Collection Framework 的重要成员,也是 Ma
阅读全文
摘要:概述 ArrayList是List集合的列表经典实现,其底层采用定长数组实现,可以根据集合大小进行自动扩容。 代码基于jdk1.8 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,
阅读全文
摘要:LinkedList概述 LinkedList继承自AbstractSequentialList,实现了List接口和Deque接口。 既可以当做list用,也可作为队列和栈来用。可以说是非常的全面了。 本文分析基于jdk1.8 LinkedList底层实现原理 底层数据结构 LinkedList底
阅读全文
摘要:java集合 java集合之HashMap分析 java集合之LinkedList分析 java集合之ArrayList分析 java集合之ConcurrentHashMap分析 java集合之HashSet分析 java集合之HashTable分析 java集合之PriorityQueue分析 j
阅读全文
摘要:队列 特点: 队列的特点是先进先出。即第一个进入队列的元素会第一个出来。 java中队列的实现: //创建一个普通队列 Queue<Integer> queue = new LinkedList<Integer>(); //普通队列添加数据 queue.offer(123); //获取队列的大小 i
阅读全文
摘要:栈 特点: 栈是一种先进后出的数据结构。最后被压入栈的元素会第一个被弹出。 通常栈是一种不考虑排序的数据结构,要查找数据的时间复杂度为O(n). java代码中栈的使用: //创建一个栈 Stack<Integer> stack = new Stack<>(); //判断栈是否为空 stack.is
阅读全文
摘要:数据结构之字符串 字符串是由若干字符组成的序列。在编程时使用的频率非常高。 字符串的一些常见操作 //字符串转成数组 String s= "123"; char[] c = s.toCharArray(); //字符串和Integer互转 String s = "123"; int num = In
阅读全文
摘要:数据结构之数组 数组在内存中的存储方式: 数组占据一块连续的内存,并按照顺序存储数据。 数组常见操作 以下均为java语言描述 //指定大小创建一个数组 int n = 10; int[] nums = new int[n]; //带数据创建 int[] nums = new int[]{1,2,3
阅读全文
摘要:数据结构与算法总结 常用数据结构 数组 字符串 栈 队列 链表 树 图 常用算法 递归 查找 排序 搜索 动态规划 分治 回溯 位运算
阅读全文
摘要:动态规划 动态规划的求解思路: 动态规划可以说是一种思想:自上而下分析问题,自下而上解决问题。 什么意思呢,就是把一个大问题分解成若干个小问题,对每个小问题求解,求的解存储在一维数组或者二维数组中。 然后自下而上解决问题,意思就是每个小问题求解完毕后,再去求解较大的问题,直到最后问题解决。 将原问题
阅读全文
摘要:Android系统启动流程简单分析 系统启动的大致流程为: 当Kernel启动过程会创建init进程。 init进程会启动servicemanager(binder服务管家), Zygote进程(Java进程的鼻祖). Zygote进程会创建 system_server进程以及各种app进程, 1.
阅读全文
摘要:ANR原理分析 前言: ANR,应用程序无响应。触发后会弹一个dialog,提示用户。 主要分析以下几点: ANR触发场景 ANR产生的过程 ANR分析方法 ANR监控 1. ANR触发场景 ANR类型 超时时间 报错信息 输入事件(按键、触摸等) 5s Input event dispatchin
阅读全文
摘要:RSA加密过程分析 1.RSA简单介绍 1.1 RSA用法 简单说就是服务端创建公钥给到客户端,客户端通过公钥进行加密处理,把密文发送给服务端,然后服务端通过私钥进行解密。 那么公钥和私钥是怎么来的,又是怎么利用公钥加密,私钥解密的,且看下文分析。 2.RSA加密算法推导分析 2.1 欧拉φ函数和费
阅读全文
摘要:AMS启动过程分析 首先ams是在system_server进程 system_server具体实现是 frameworks/base/services/java/com/android/server/SystemServer.java AMS启动流程图分析 1.SystemServer#main(
阅读全文