自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 对照组账号切实验组账号崩溃问题复查

文章摘要:开发者在实现新增图片tab功能时,由于使用object和by lazy导致切换账号后出现crash。原因是object生命周期跟随整个app,而by lazy只执行一次,导致实验组账号未正确加载图片tab配置。解决方案是通过uuid识别账号切换,重新获取配置。最终采用第二种方案快速修复问题,确保功能正常运行。

2025-09-21 22:59:24 309

原创 通过接口的方式Koin注入时没有使用binds指明接口类型导致崩溃

本文分析了Koin依赖注入框架下出现的NoBeanDefFoundException错误。问题发生在父组件向子组件传递SearchNoteTrackHelper实例时,由于Koin默认仅以具体实现类注册实例,导致子组件通过接口ITagSearchTrackHelper注入时匹配失败。核心原因是Koin的类型注册机制以"具体类+限定符+作用域"为键,未自动关联接口类型。解决方案是使用binds扩展,显式声明接口类型映射,使同一实例可同时通过实现类和接口类型被检索。

2025-09-21 22:36:35 695

原创 Recyclerview回收复用机制——图文详解

RecyclerView的缓存机制主要由四级缓存构成,分别是**mAttachedScrap、mCachedViews、mViewCacheExtension和mRecyclerPool**。每一级缓存都有其独特的功能和适用场景,它们相互协作,共同实现高效的视图缓存与复用。

2025-09-20 23:25:05 1106

原创 实现Activity跳转动画的方式(共享组件方式)

本文介绍了Android中Activity跳转动画的两种实现方式

2025-09-07 17:51:56 955

原创 一文详细解析ThreadPoolExector线程池

本文系统介绍了Java线程池的核心概念与使用策略。首先分析了JDK自带的ThreadPoolExecutor,包括其继承结构、构造方法及核心参数(如核心线程数、任务队列等)。然后详细讲解了线程池的调度策略,比较了五种常见任务队列(SynchronousQueue、ArrayBlockingQueue等)的特点与适用场景,以及四种拒绝策略(AbortPolicy、CallerRunsPolicy等)的行为差异。最后阐述了Runnable、Callable和Future三者的区别与联系。并手搓了简易的线程池。

2025-08-12 23:55:11 692

转载 一文详细理解Java的GC机制

Java垃圾回收机制解析 摘要:本文深入解析JVM自动内存管理机制,重点探讨垃圾回收(GC)原理。首先介绍JVM运行时五大内存区域:程序计数器、虚拟机栈、本地方法栈、堆和方法区,其中堆和方法区是GC主要作用区域。然后详细分析GC判断对象可回收的两种算法:引用计数法存在循环引用问题,而主流商用JVM采用可达性分析法,通过GC Roots引用链判断对象可达性。文章还通过代码示例演示循环引用问题,并说明为什么方法区和堆需要GC机制。

2025-08-10 18:11:31 264

原创 UML类图怎么画?——图文详细理解

UML类图摘要 UML类图是面向对象设计的核心工具,用于可视化系统中的类、属性、方法及类间关系。其核心元素包括: 类表示:分三栏(类名、属性、方法),通过+/-/#标注可见性(public/private/protected)。 有六大关系类型...

2025-08-08 20:08:40 1794

原创 团队协作中Git Commit应该如何规范化

基于git commit五花八门的提交message等问题,我们希望通过某种方式来约束用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。一旦约束了commit message,意味着我们将慎重的进行每一次提交,不能再一股脑的把各种各样的改动都放在一个git commit里面,这样一来整个代码改动的历史也将更加清晰。

2025-08-07 00:34:31 1409

原创 匿名对象被弱引用后提前回收的问题

【摘要】开发语音搜索项目时发现网络状态监听异常,原因是使用了WeakReference存储回调接口导致被GC回收。分析发现匿名对象仅被弱引用持有时会立即被回收,通过将匿名对象赋值给强引用变量解决。解决方案:创建强引用持有监听器实例,再传递给弱引用包装类,确保生命周期可控。测试验证强引用能有效阻止GC回收,需释放时需主动置null。核心结论:弱引用需配合强引用使用,纯弱引用无法维持对象生命周期。

2025-08-05 22:07:39 308

原创 Data Class在序列化和反序列化遇到的“坑”

摘要:Kotlin的data class在序列化时存在默认值失效问题。当使用Gson反序列化时,若JSON中缺少字段,data class的默认参数不会生效(字段被设为null),因为Gson通过反射直接赋值而非调用构造函数。解决方案包括:1)添加gson-kotlin依赖并注册Kotlin适配器;2)改用Kotlinx Serialization库(原生支持默认值);3)手动处理null值。相比Gson,Kotlinx Serialization对Kotlin特性支持更完善,推荐优先使用以避免NPE风险。

2025-08-04 23:41:11 1003

原创 Android触摸事件传递机制—源码解读

在做需求开发中,我使用ViewPager嵌套Fragment,而Fragment又嵌套了Recyclerview组件。这样就导致RV滑动与Viewpager滑动事件产生手势冲突的问题。在深入理解Android触摸事件的传递机制后,我解决了这个问题。遂决定写下这篇博客,来深入分析相关源码。

2024-12-31 16:19:56 867

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除