- 博客(115)
- 收藏
- 关注
原创 Android学习总结之handler中源码解析和场景回答
Android中Handler的核心机制通过post和postDelayed实现,两者均依赖sendMessageDelayed,区别在于延迟时间。延迟消息可能引发内存泄漏,建议使用静态内部类+弱引用或生命周期感知组件(如LiveData/ViewModel)解决。主线程Handler阻塞可能导致ANR,可通过任务分类或异步Handler优化。图片下载场景推荐线程池提升并发效率。LiveData可替代Handler,内存泄漏检测可使用LeakCanary和Profiler工具。
2025-05-14 15:18:35
1070
1
原创 Android之Glide VS Picasso对比学习总结
Picasso体积小(约118KB),适合小型项目,功能基础,不支持动态图。Glide体积较大(430KB+),支持GIF、WebP等格式,缓存策略智能,自动绑定生命周期,适合复杂场景如电商、社交类应用。Picasso采用全尺寸缓存,Glide按尺寸缓存,减少冗余数据,提升性能。电商类应用通常选择Glide,因其支持复杂格式、多尺寸缓存和动态图片处理,更适合高并发、多格式的业务需求。
2025-05-14 15:13:11
806
原创 Android学习总结之Glide自定义三级缓存(面试篇)
三级缓存系统通过内存、磁盘和网络缓存优化图片加载。内存缓存提供毫秒级响应,使用LRU算法清理冷数据;磁盘缓存持久化存储,支持离线访问;网络缓存结合HTTP缓存头,避免重复下载。系统采用LruCache、布隆过滤器等策略,预防缓存穿透、雪崩和OOM问题,确保高效稳定运行。
2025-05-14 15:10:26
979
原创 Android学习总结之Glide自定义三级缓存(实战篇)
三级缓存系统在图片加载中包括内存缓存、磁盘缓存和网络缓存,分别使用LruCache、DiskLruCache和HTTP缓存头实现。内存缓存限制为手机可用内存的15%,磁盘缓存容量通常为100MB,网络缓存设置为50MB。常见问题如缓存穿透、缓存雪崩和OOM可通过占位图、布隆过滤器、随机过期时间等策略解决。关键指标如缓存命中率和内存峰值占用可通过Android Profiler等工具监测。自定义图片缓存框架设计时,优先从内存缓存获取图片,未命中时依次查询磁盘缓存和网络请求,获取后同时存入内存和磁盘缓存。
2025-05-14 14:59:05
1161
原创 Android学习总结之kotlin篇(二)
Kotlin扩展函数在编译时转换为静态方法,接收者对象作为第一个参数传入,实现功能扩展而不修改原类字节码。协程通过状态机和Continuation接口实现挂起与恢复,挂起函数编译为带Continuation参数的普通函数,避免线程阻塞。Java调用Kotlin函数时,需注意参数可空性,非空类型传入null会抛出NullPointerException。
2025-05-14 14:48:31
808
原创 Android学习总结之类LiveData与ViewModel关系篇
ViewModel负责存储UI相关数据,LiveData作为可观察的数据持有者,通知UI层数据变化。LiveData具有生命周期感知能力,确保数据更新仅在活跃状态下通知观察者,避免内存泄漏。ViewModel的生命周期与Activity或Fragment绑定,确保数据在配置变更时不会丢失。LiveData自身具备自动取消订阅的能力,不依赖ViewModel。自定义LiveData可通过继承LiveData并实现生命周期监听来实现。
2025-05-14 09:36:12
849
原创 Android学习总结之线程池篇
通过实战案例探讨了线程池参数调优、任务依赖与同步、Android生命周期管理及WorkManager替代方案。针对直播APP弹幕加载、图片编辑等场景,提出了核心线程数、最大线程数、任务队列的优化策略,并介绍了使用CountDownLatch、PriorityBlockingQueue实现任务同步与优先级调度的方法。
2025-05-12 20:49:22
1144
原创 Android学习总结之布局篇
重点对比了ConstraintLayout与RelativeLayout的布局原理与性能。ConstraintLayout通过双向约束系统实现扁平化布局,性能优于RelativeLayout,尤其在复杂布局中表现显著。文章还探讨了dp/px/dpi的换算与适配原理,强调使用dp单位以确保不同屏幕密度的设备上视觉一致性。提供了布局优化手段,如减少布局层级、避免过度绘制、优化测量与布局耗时等,以提升界面流畅度。最后,总结了自定义布局的核心步骤及常见踩坑点,并提供了实战代码示例
2025-05-12 20:27:30
662
原创 Android单例模式知识总结
简单安全选枚举,延迟初始化用 DCL 或静态内部类,Kotlin 开发优先懒代理。永远注意上下文生命周期,防止内存泄漏;通过职责分离和依赖注入提升代码可维护性。面试中,需深入理解线程安全原理(如指令重排序、类加载机制)、Android 特性(上下文管理)及反破坏措施(反射 / 反序列化防御)
2025-05-08 15:56:18
1164
原创 Android学习总结之jetpack组件间的联系
Lifecycle ,ViewModel ,LiveData, Data Binding 之间的联系讲解
2025-05-02 10:38:01
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人