“绝大多数开发者每日都在用,但很多人却不够系统化理解” 的知识。
这些知识将覆盖 Activity、Fragment、UI、任务栈、内存、生命周期、Context、异步、事件分发、View 绘制、应用架构—— 99% 会遇到的。

下面的内容不偏僻、不艰深,但极其关键。


1 Activity 体系(安卓的最核心)

Activity 是 Android UI 的根基。你必须清楚以下几个点:

✔ Activity 的三大职责

  1. 承载 UI(界面)
  2. 管理生命周期(和系统交互)
  3. 管理任务栈(和用户交互)

✔ 生命周期真正做什么?

  • onCreate():初始化(UI、ViewModel、绑定 adapter)
  • onStart():界面可见但不可交互
  • onResume():界面可交互(最关键阶段)
  • onPause():准备离开界面(保存状态)
  • onStop():完全不可见(释放耗时资源)
  • onDestroy():真正销毁(解绑、释放引用)

你要能快速判断代码应当放在哪。


2 Fragment —— 现代安卓的页面单元

现代结构下,页面主体往往不是 Activity,而是 Fragment。

为什么 Fragment 如此重要?(99% 会用到)

  • 页面切换(Navigation)
  • 多组件布局(Tab + ViewPager)
  • 模块化
  • 复用 UI(Activity 不好复用)

必须掌握的生命周期差异

Fragment 的视图与对象分离:

  • onCreate() 只创建 Fragment 实例
  • onCreateView() 才创建 UI
  • onDestroyView() 销毁 UI(但实例没销毁)
  • onDestroy() 销毁实例

可以说:

Fragment 保存数据的生命比保存 UI 的生命更长。

这是初学者容易误解的重点。


3 Context —— 安卓“世界观”的核心

一句话解释 Context:

Context = 应用运行的环境、资源的入口

你必须知道:

✔ Context 主要有 3 类:

类型生命周期常见用途
ApplicationContext应用进程存活期间Toast、单例、工具类
Activity ContextActivity 存活期间创建 UI、Dialog
Service ContextService 存活期间后台任务

✔ 哪些东西必须用 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 步:

  1. measure(测量大小)
  2. layout(摆放位置)
  3. 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绑定视图
RoomSQLite ORM
Navigation页面导航

这些构成了现代安卓的标准框架。


10 APP 性能 & 内存(99% 都会碰到)

你需要特别了解:

✔ 哪些东西会导致内存泄漏?

  • 静态持有 Activity
  • Handler 未移除消息
  • 内部类未静态(匿名类)
  • 单例持有 Context
  • 长生命周期对象持有 View

✔ 常见性能优化

  • 避免深层级布局
  • 使用 ConstraintLayout
  • 减少不必要的 onDraw
  • 列表使用 DiffUtil
  • 尽量使用协程取代 RxJava

总结:7 句话带你建立 Android 实战体系

  1. Activity 是 UI 的根,Fragment 是 UI 的“可复用单元”。
  2. 永远区分 ApplicationContext 与 Activity Context。
  3. Touch 事件:父决定拦截,子决定消费。
  4. UI 线程依赖 Looper + Handler。
  5. View 渲染三步走:measure → layout → draw。
  6. RecyclerView 是 Android UI 的支柱。
  7. Kotlin 协程 + Jetpack 是 modern Android 的标准答案。
最后修改:2025 年 11 月 28 日 09 : 00 AM
如果觉得此文章有用,请随意打赏