“绝大多数开发者每日都在用,但很多人却不够系统化理解” 的知识。
这些知识将覆盖 Activity、Fragment、UI、任务栈、内存、生命周期、Context、异步、事件分发、View 绘制、应用架构—— 99% 会遇到的。
下面的内容不偏僻、不艰深,但极其关键。
1 Activity 体系(安卓的最核心)
Activity 是 Android UI 的根基。你必须清楚以下几个点:
✔ Activity 的三大职责
- 承载 UI(界面)
- 管理生命周期(和系统交互)
- 管理任务栈(和用户交互)
✔ 生命周期真正做什么?
onCreate():初始化(UI、ViewModel、绑定 adapter)onStart():界面可见但不可交互onResume():界面可交互(最关键阶段)onPause():准备离开界面(保存状态)onStop():完全不可见(释放耗时资源)onDestroy():真正销毁(解绑、释放引用)
你要能快速判断代码应当放在哪。
2 Fragment —— 现代安卓的页面单元
现代结构下,页面主体往往不是 Activity,而是 Fragment。
为什么 Fragment 如此重要?(99% 会用到)
- 页面切换(Navigation)
- 多组件布局(Tab + ViewPager)
- 模块化
- 复用 UI(Activity 不好复用)
必须掌握的生命周期差异
Fragment 的视图与对象分离:
onCreate()只创建 Fragment 实例onCreateView()才创建 UIonDestroyView()销毁 UI(但实例没销毁)onDestroy()销毁实例
可以说:
Fragment 保存数据的生命比保存 UI 的生命更长。
这是初学者容易误解的重点。
3 Context —— 安卓“世界观”的核心
一句话解释 Context:
Context = 应用运行的环境、资源的入口
你必须知道:
✔ Context 主要有 3 类:
| 类型 | 生命周期 | 常见用途 |
|---|---|---|
| ApplicationContext | 应用进程存活期间 | Toast、单例、工具类 |
| Activity Context | Activity 存活期间 | 创建 UI、Dialog |
| Service Context | Service 存活期间 | 后台任务 |
✔ 哪些东西必须用 Activity Context?
- Dialog
- PopupWindow
- LayoutInflater 获取 theme 属性
- startActivity()
这部分若搞错 → 崩溃、内存泄漏。
4 事件分发机制(View 体系的根)
事件分发是 Android UI 的“灵魂”。
三个关键方法:
| 方法 | 谁来处理? | 意义 |
|---|---|---|
| dispatchTouchEvent | 容器 | 分发事件 |
| onInterceptTouchEvent | 容器 | 决定是否拦截 |
| onTouchEvent | 最终接收者 | 自己处理事件 |
只要理解一句话:
父容器决定是否拦截,子 View 决定是否消费。
就能处理滑动冲突、事件穿透等问题。
5 Handler、Looper、MessageQueue(异步的基础)
Android 有 UI 线程模型:
UI 只能在主线程更新。
UI 线程内部有:
- Looper(无限循环)
- MessageQueue(队列)
- Handler(消息入口)
这是 所有异步机制的基础,包括:
- LiveData
- Flow
- Activity 回调
- View.post()
- 动画
- AsyncLayoutInflater
甚至 Coroutine 的 Dispatchers.Main 也是基于它。
6 View 的绘制流程(面试常考,开发常遇)
绘制分 3 步:
- measure(测量大小)
- layout(摆放位置)
- draw(逐层绘制)
理解后,你能:
- 解决控件宽高 0
- 自定义 View
- 修复界面闪烁
- 写高性能布局
7 RecyclerView(安卓最重要组件)
掌握 RecyclerView 才代表你真正能写 Android UI。
你必须理解:
✔ 核心组件
- Adapter
- ViewHolder
- LayoutManager
- ItemDecoration
- DiffUtil
✔ 性能优化关键点
- 避免 notifyDataSetChanged()
- 使用 DiffUtil
- 使用 setHasFixedSize(true)
- 使用 setRecycledViewPool()
8 异步现代化:协程(Coroutine)
RxJava 已退场,Google 官方推荐:
- Kotlin Coroutine(挂起)
- Flow(流)
- ViewModelScope(生命周期感知)
你必须掌握这几句:
launch {}:开启协程withContext(Dispatchers.IO):耗时线程flow { emit() }:数据流repeatOnLifecycle {}:自动取消订阅
这是当代 Android 的“核心技能”。
9 Jetpack 架构体系(现在公司基本都用)
必须掌握的组件:
| 组件 | 用途 |
|---|---|
| ViewModel | 保存数据与生命周期同步 |
| LiveData / StateFlow | 可观察数据流 |
| DataBinding/ViewBinding | 绑定视图 |
| Room | SQLite ORM |
| Navigation | 页面导航 |
这些构成了现代安卓的标准框架。
10 APP 性能 & 内存(99% 都会碰到)
你需要特别了解:
✔ 哪些东西会导致内存泄漏?
- 静态持有 Activity
- Handler 未移除消息
- 内部类未静态(匿名类)
- 单例持有 Context
- 长生命周期对象持有 View
✔ 常见性能优化
- 避免深层级布局
- 使用 ConstraintLayout
- 减少不必要的 onDraw
- 列表使用 DiffUtil
- 尽量使用协程取代 RxJava
总结:7 句话带你建立 Android 实战体系
- Activity 是 UI 的根,Fragment 是 UI 的“可复用单元”。
- 永远区分 ApplicationContext 与 Activity Context。
- Touch 事件:父决定拦截,子决定消费。
- UI 线程依赖 Looper + Handler。
- View 渲染三步走:measure → layout → draw。
- RecyclerView 是 Android UI 的支柱。
- Kotlin 协程 + Jetpack 是 modern Android 的标准答案。
版权属于:不冷
本文链接:https://www.buleng.xyz/archives/247/
转载时须注明出处及本声明

