RequestLayout和Invalidate 发表于 2022-05-02 更新于 2022-08-17 RequestLayout标记自身给当前View添加上 PFLAG_FORCE_LAYOUT 和 PFLAG_INVALIDATED 标记。并将RequestLayout向上传递。 阅读全文 »
ConcurrentHashMap 发表于 2022-04-04 更新于 2022-10-06 ConcurrentHashMap 可以实现线程安全。在1.8之前和之后实现线程安全的方法不同。 阅读全文 »
HashMap 发表于 2022-04-04 更新于 2022-09-11 1. 基本数据结构Node<K, V> 的一个table数组,容量始终为2的幂,Node代表一个entry。在put一个元素时,懒加载分配数组空间。如果实例化HashMap的时候传入一个 initialCapacity ,table的大小会给一个最接近的2的幂的大小如果遇到hash冲突,会变为一个链表或红黑树,数组中的node作为链表or红黑树的头节点,新加入的节点插入到链表中。 在java1.8,如果新加入的链表长度超过8,会转化为红黑树 阅读全文 »
transform和asm初探 发表于 2022-03-21 更新于 2022-05-04 分类于 Android 自定义RouterTransformTransform 是AGP官方提供的接口,在 class->dex 的阶段提供一个时机,可以让我们对字节码文件做修改,或者动态添加一个新的类 阅读全文 »
自定义注解处理器并发布为gradle组件 发表于 2022-03-13 分类于 Android 自定义一个基于注解的路由框架定义注解类 新建一个模块 router_annotations 在 router_annotations 目录中创建 build.gradle 阅读全文 »
MultiDex原理 发表于 2021-12-25 apk中的一个dex文件的方法索引是一个ushort类型,最大值为655535. 所以一个dex文件的最大方法数是65535.为了规避安卓项目编译65536最大方法数的限制,需要做分dex 阅读全文 »
技术Owner的职责 发表于 2021-11-27 参与需求评审,完成可行性调研,完善细节。 要督促完成UI/UE评审,埋点评审 技术评审,输出技术方案,拆分需求子任务,给出详细排期 开始开发,定期站会,同步风险 发生变更,更改排期 需求提测前,推进case评审 自测