ANR 触发原理 2022-08-08 accumulation ANR 1 min read , Words: 76 Input超时机制input的超时检测机制跟service、broadcast、provider截然不同,为了更好的理解input过程先来介绍两个重要线程的相关工作: Read More
RecyclerView inflate优化 2022-07-21 accumulation AsyncInflate, RecyclerView optimization 5 min read , Words: 939 背景本文是在工作中对App启动耗时中页面展现耗时的一个优化,特意记录优化方案和遇到的问题。主要是针对首页Recyclerview itemview的一个优化,减少itemview inflate耗时,从而减少onCreateViewHolder耗时,最终减少页面展现的耗时 Read More
SP源码阅读和其导致ANR原因分析 2022-03-28 accumulation ANR, Android Source Code 11 min read , Words: 2132 背景本文是在看了字节的这篇文章: 剖析 SharedPreference apply 引起的 ANR 问题,发现很多原理不太清楚,特意根据源码总结一下,避免网上的人云亦云 Read More
Java内存分配策略 2022-02-13 Java Interview 16 min read , Words: 3136 java的内存分配策略1、Java 程序运行时的内存分配策略有三种: (1) 静态分配 (2) 栈式分配 (3) 堆式分配 Read More
Android Binder机制分析(三) 2022-02-10 accumulation AIDL, Binder 1 min read , Words: 49 背景上篇文章分析到了Binder机制,同时介绍了Android Framework层系统服务的binder使用。本篇文章分析下Binder的底层实现,以及为什么Binder只需要一次内存拷贝。 Read More
android场景实现AOP编程 2021-12-14 accumulation AGP, AOP, ASM, Transform 6 min read , Words: 1055 我在很早之前就了解过面向切面(AOP)的编程思想,比如AspectJ 实现简单的切面编程,不过都快忘了 :(。本文是想探究AOP在Android环境中的使用,补全Android开发者的技能树。 常见的AOP编程框架有AspectJ、 Cglib,Hibernate 和 Spring 等等,而这些目前流行的AOP框架绝大多数底层实现都是直接或间接地通过 ASM 来实现字节码操作,本文重点就来介绍一下ASM。 Read More
移动view的几种方式总结 2021-08-07 accumulation view scroll 4 min read , Words: 640 移动view的几种方式使用View.layout(l, t, r, b)方法 Assign a size and position to a view and all of its descendants这个方法是用来指定一个view和它所有的子view的尺寸和位置 Read More
自定义gradle插件 2021-07-18 accumulation AGP, gradle 3 min read , Words: 501 gradle和gradlew的区别如果配置好了 gradle 环境变量后,就可以在cmd中使用gradle命令了在cmd中输入: gradle -v Read More