摘要: 这个把source缓冲区中的数据写到当前缓冲区的方法是比较经典的: if (source == null) throw new IllegalArgumentException("source == null"); //这个判断是防止自己把数据写到自身这个Buffer中 if (source == 阅读全文
posted @ 2023-04-12 11:41 lianzhen 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 1、Segment是Buffer缓冲区存储数据的基本单位,每个Segment能存储的最大字节是8192也就是8k的数据 /** The size of all segments in bytes. */ static final int SIZE = 8192; 2、SHARE_MINIMUM是用来 阅读全文
posted @ 2023-04-12 11:03 lianzhen 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 既然聊到了泛型的上下界问题,就先给出几个类的继承关系吧 class Fruit{}class Apple extends Fruit{}class Orange extends Fruit{}class HongFuShi extends Apple{}顶级父类Fruit下面有两个直接子类Apple 阅读全文
posted @ 2022-10-11 15:14 lianzhen 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 源码看过好几遍了,但是总是会忘记,特此记录下 先从注解处理器开始 BaseProcessor是其他三个注解处理器的抽象类,子类去实现process方法。在其中的init方法中会获取我们的module模块中.gradle文件填写的AROUTER_MODULE_NAME对应的value。如果处理过的mo 阅读全文
posted @ 2022-05-30 21:06 lianzhen 阅读(222) 评论(0) 推荐(0) 编辑
摘要: if(MotionEvent.ACTION_DOWN || mFirstTouchTarget != null){ //初次的down事件到来的时候,只有父view具有决定事件是否拦截的权利。因为此时的disallowIntercept初始值是false,原因是down事件之前会重置这个标志位 fi 阅读全文
posted @ 2022-04-19 16:15 lianzhen 阅读(48) 评论(0) 推荐(0) 编辑
摘要: TouchTarget需要创建的时候先看下池子里面有没有被回收上来的,如果没有可以利用的就给你创建一个新的,否则就从池子里面把头部的那个可以利用的给你,你把你的东西放进去就行了。回收的时候就是把你放在池子的头部,并清空你里面的东西,防止你重复的回收(一次就好) public static Touch 阅读全文
posted @ 2022-04-13 11:30 lianzhen 阅读(35) 评论(0) 推荐(0) 编辑
摘要: <1>进程间的内存空间是进程私有的<2>进程间和内核的空间是互通的<3>进程1空间< >内核空间<-->进程2空间Binder跨进程通信(IPC)的原理就是利用了这个可共享的内核空间将进程私有的空间进行关联的。而Binder就是这个通道。使用步骤:1.服务端注册服务<1>server端向binder 阅读全文
posted @ 2020-06-06 14:01 lianzhen 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 1.APP还没有被打开过从桌面启动 <1>首先桌面进程会像AMS服务发送startActivity的请求,AMS从system_service中去拿 一次IPC通信 <2>system_service收到请求后通过socket的请求让Zygote进程去fork我们的APP进程 <3>APP进程创建成 阅读全文
posted @ 2020-06-06 13:17 lianzhen 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 使用示例: Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { // 阅读全文
posted @ 2020-05-22 21:34 lianzhen 阅读(149) 评论(0) 推荐(0) 编辑
摘要: package com.xd.leetcode.shu; /** * created by lianzhen on 2020-03-10 10:27. describe:平衡二叉树的构建 * * LL:插入的结点在左子树的左边导致失衡:右旋(顺时针旋转) * RR: 插入的结点在右子树的右边导致失衡 阅读全文
posted @ 2020-05-21 23:21 lianzhen 阅读(501) 评论(0) 推荐(0) 编辑