- 博客(73)
- 资源 (4)
- 收藏
- 关注
原创 如何应对 Android 面试官 -> 玩转 JetPack ViewBinding
ViewBinding 基础使用与原理 ViewBinding 是 Android 官方推荐的视图绑定方案,用于替代 findViewById 和 ButterKnife。启用方法是在模块的 build.gradle 中配置 viewBinding { enabled true },系统会自动生成绑定类(如 ActivityMainBinding)。使用时只需调用 inflate() 方法绑定布局,即可直接访问视图控件(如 mainBinding.tv1.setText())。 相比 Kotlin 的合成绑
2025-07-07 13:30:37
527
原创 如何应对 Android 面试官 -> 玩转 JetPack LiveData
LiveData核心原理与使用总结 LiveData是一种具有生命周期感知能力的可观察数据容器,能够自动感知Activity、Fragment等组件的生命周期状态,仅在组件活跃时更新UI,避免内存泄漏和崩溃风险。 基础使用: 通过MutableLiveData创建数据源 observe()方法注册观察者,使用lambda或Observer接口 主线程用setValue()更新数据,子线程用postValue() 特性验证: 前台更新:仅在前台时触发UI更新 数据粘性:先修改后订阅仍能收到最新数据 实现原理:
2025-07-03 13:54:22
815
原创 如何应对 Android 面试官 -> 玩转 JetPack Lifecycle
本文介绍了Jetpack中的Lifecycle组件,用于监听Activity/Fragment生命周期变化。Lifecycle通过观察者模式实现,包含LifecycleOwner(如Activity/Fragment)和LifecycleObserver(观察者)。基础使用包括添加依赖库,通过实现LifecycleObserver接口或DefaultLifecycleObserver来监听生命周期事件。示例展示了如何在Presenter中监听Activity的生命周期变化,无需手动调用生命周期方法。该组件可
2025-07-01 13:26:03
876
原创 如何应对 Android 面试官 -> 玩转 JetPack Hilt
Hilt依赖注入框架在Android开发中的应用 Hilt是Google与Dagger团队合作开发的Android专属依赖注入框架,相比Dagger2更加简单易用。它通过APT注解处理器和ASM字节码插桩实现依赖注入,支持Application、Activity、Fragment等多种Android组件的注入。 基础配置需在项目中添加Hilt插件和依赖。使用步骤包括: 声明被注入类 通过@Module和@Provides提供对象 在目标Activity使用@AndroidEntryPoint和@Inject
2025-06-26 11:10:09
801
原创 如何应对 Android 面试官 -> 手写 APM 核心实现
本文介绍了如何手写一个APM(应用性能监控)框架,重点关注稳定性、网络、电量、内存等核心指标。首先补充了SO动态加载的常见问题及解决方案ReLinker框架,然后详细阐述了APM框架的设计思路。通过定义ITracker接口和ActivityLifecycleCallbacks抽象类规范各模块采集逻辑,并以电量检测为例,展示了具体实现方式:利用BroadcastReceiver获取电量信息,在Activity生命周期回调中采集数据并回调。整体架构参考了ArgusAPM和Matrix等开源项目,为开发高性能应用
2025-06-25 11:03:02
357
原创 如何应对 Android 面试官 -> 启动如何进行优化(下)?玩转 Android StartUp
本章继续上一章的启动优化讲解,主要基于手淘全链路性能优化分析 Android StartUp 启动框架;
2024-09-19 13:35:38
1024
原创 如何应对 Android 面试官 -> 启动如何进行优化(上)?玩转 Android StartUp
本章主要围绕 App 的启动流程如何优化进行讲解;将启动优化,首先要了解的就是 app 的启动流程,只有清晰并完善的了解了 启动流程 才能更好的进行优化;
2024-09-10 15:33:00
1355
原创 如何应对 Android 面试官 -> MVVM 实战一个新闻客户端 (下)
本章我们基于重构的方式进行一个 MVVM 的实战,我们将一个新闻列表的普通实现,一步一步的改造成 MVVM 的架构模式,一共分为上中下三个章节,本章继续上一章,开始下篇的讲解;
2024-06-27 16:14:44
895
原创 如何应对 Android 面试官 -> MVVM 实战一个新闻客户端 (中)
本章我们基于重构的方式进行一个 MVVM 的实战,我们将一个新闻列表的普通实现,一步一步的改造成 MVVM 的架构模式,一共分为上中下三个章节,本章继续上一章,开始中篇的讲解;
2024-06-24 10:52:11
321
原创 如何应对 Android 面试官 -> MVVM 实战一个新闻客户端 (上)
本章我们基于重构的方式进行一个 MVVM 的实战,我们将一个新闻列表的普通实现,一步一步的改造成 MVVM 的架构模式,一共分为上中下三个章节;
2024-06-20 18:23:41
1023
原创 如何应对Android面试官 -> Window 显示次序,尺寸计算
本章我们继续上一节讲解 WMS 相关知识点,Window 是如何显示以及尺寸计算;
2024-05-22 13:10:13
396
原创 如何应对Android面试官 -> WindowManagerService 启动流程分析
本章主要从上面几个角度来讲解 WindowManagerService;
2024-05-10 13:11:40
1316
1
原创 Jetpack Compose -> 重组的性能风险和优化
Jetpack Compose 又一弹来袭:重组的性能风险和优化,带你玩转 Jetpack Compose
2024-04-23 20:00:42
911
原创 如何应对Android面试官 -> ActivityManagerService 是怎么启动的?
本章主要讲解下 什么是 AMS,以及它是如何启动的;
2024-04-15 20:24:19
782
原创 如何应对Android面试官 -> ActivityManagerService 是怎么启动的?
本章主要讲解下 什么是 AMS,以及它是如何启动的;
2024-04-15 20:23:45
760
原创 如何应对Android面试官 -> ActivityManagerService 是怎么启动的?
本章主要讲解下 什么是 AMS,以及它是如何启动的;
2024-04-12 12:04:44
1022
原创 如何应对Android面试官 -> Android 如何实现增量更新,Tinker patch包生成核心原理
本章主要讲解 Dex 格式分析以及增量更新实现原理;
2024-04-10 10:38:44
1103
原创 Jetpack Compose -> 状态机制的背后秘密
Compose 里面用 mustableStateOf 创造出的 MustableState 是很简单的判断『是否重新赋值』 所以其无法监听普通的 List 和 Map,包括普通的 mustableListOf 和 mustableMapOf, 只能使用 mutableStateListOf 和 mustableStateMapOf 来解决;
2024-04-08 13:25:51
1117
原创 如何应对Android面试官 -> Android 系统启动流程浅析
Zygote 中文翻译为『受精卵』,正如其名,它主要用于孵化子进程。在 Android 系统中有以下两种程序:Java 应用程序,主要基于 ART 虚拟机,所有的应用程序 Apk 都属于这类 Native 程序,也就是利用 C 或 C++ 语言开发的程序,如 bootanimation。
2024-04-02 14:12:17
501
1
原创 大龄程序员的2024年3月总结:鸿蒙,发起GDE申请,金石计划获奖,月榜,技术文章
就像我前面介绍的那款 App『好事发生』一样,我也会把发生在我身边的趣事用它记录下来,若干年后自己回忆的时候,可以依然清晰的想起来~~
2024-03-31 13:55:20
1167
原创 如何应对Android面试官->Android中的类加载机制,手写热修复框架(上)
本章主要介绍 Android 中的类加载机制和 Java 中的类加载机制有什么不同?为热修复预热
2024-03-28 12:49:43
645
原创 如何应对Android面试官->进程通信,启动与获取SM服务
ServiceManager 讲解,轻松应对Android面试官连环炮,轻松应对注册获取的流程
2024-03-23 23:58:17
1197
原创 Jetpack Compose -> 无状态、状态提升,单向数据流
上一章节我们讲解了,本章我们来讲解下 Compose 的 『无状态』,状态提升,单向数据流;
2024-03-13 09:52:14
999
原创 如何应对Android面试官->玩转Binder机制,手写MMKV核心实现
深度理解binder启动注册机制,带你玩转mmap,并手写mmkv核心实现
2024-03-11 15:27:34
1106
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人