- 博客(13)
- 收藏
- 关注
原创 HashMap 实现原理
HashMap 通过哈希函数将键映射到数组的索引位置,使用链地址法解决冲突,并在链表长度超过阈值时转换为红黑树以优化性能。当元素数量超过阈值时,会触发扩容操作,数组容量加倍,所有元素重新映射。HashMap 不是线程安全的,多线程环境中应使用 ConcurrentHashMap 或外部加锁。
2025-01-14 17:37:50
832
原创 开源库原理总结:Retrofit
首先,需要定义一个接口,该接口中包含了一系列的网络请求方法。这些方法使用 Retrofit 的注解(如@GET@POST等)来描述请求的细节。Retrofit 通过动态代理机制,将接口方法的调用转换为网络请求的发起和响应的处理。并使用默认或自定义的 Executor 将回调方法切换到指定线程执行。Java 代理模式详解Android 框架解析:深入理解 Retrofit 实现。
2025-01-14 13:57:00
1751
原创 Java 垃圾回收算法
垃圾回收(Garbage Collection,简称GC)是 Java 虚拟机(JVM)自动管理内存的一种机制,用于回收不再使用的对象所占用的内存空间,从而避免内存泄漏和手动管理内存的复杂性。
2025-01-08 00:26:10
591
原创 Android 知识总结:消息机制
Android 的消息机制主要是指 Handler 的运行机制以及 Handler 所附带的 MessageQueue 和 Looper 的工作过程,这三者实际上是一个整体,只不过我们在开发过程中比较多地接触到 Handler 而已。
2025-01-05 16:22:20
783
原创 Android 性能优化
内存泄漏本质上是因为生命周期较长的对象去引用生命周期较短的对象,导致生命周期短的对象无法被 GC 及时回收掉,从而导致被占用的内存无法被释放。
2024-12-28 17:24:38
910
原创 Java 引用类型
通过对 Java 四种引用类型的理解,我们可以更好地优化内存管理和垃圾回收。引用类型和可达性分析密切相关,它决定了对象的生命周期和何时被回收。理解这些概念可以帮助我们在阅读框架源码时了解设计者的思路和意图,也能使我们在实际开发中做出更好的内存管理决策,尤其是在高性能和内存敏感的应用中。
2024-12-22 21:58:27
1437
原创 Android 事件总线框架:EventBus
EventBus 是一个适用于 Android 和 Java 的开源库,使用 发布者/订阅者 模式实现松散耦合。EventBus 仅用几行代码即可实现与解耦类的集中通信 - 简化代码、消除依赖关系并加快应用开发速度。
2024-12-18 19:03:15
2065
原创 Android 中使用 AOP 织入代码
通过Gradle Transform,在class文件生成后至dex文件生成前,遍历并匹配所有符合AspectJ文件中声明的切点,然后将事先声明好的代码在切点前后织入。一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于java源码,class文件及jar包,同时支持kotlin的应用。整个过程发生在编译期,是一种静态织入方式,所以会增加一定的编译时长,但几乎不会影响程序的运行时效率。在Android平台,常用的是。Activity 代码。
2024-12-17 19:04:19
379
原创 Android 9 适配
所有应用:无论 targetSdkVersion 是否小于 28,都需要修改应用以正确支持这些变更。API 28+ 应用的行为变更:指 targetSdkVersion 为 28 或更高的应用。一: 所有应用1. 后台对传感器的访问受限为了增强用户隐私,Android 9 限制后台应用访问用户隐私数据,如麦克风或摄像头、连续报告模式的传感器(加速度计和陀螺仪)、如果需要在运行 Android 9 的设备上检测传感器事件,请使用前台服务。2. 限制访问通话记录如果需要访问通话记录或者需要处理去电,
2021-05-07 16:42:14
325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人