Skip to content

Android 实习面试复习资料(基于社招资料调整)

更新: 5/15/2026 字数: 0 字 时长: 0 分钟

文档总览

这是一套由 Android 社招面试资料调整而来的实习面试复习资料,涵盖 13 个核心方向,共 42 篇文档。原资料保留了较完整的底层原理和工程实践内容,实习准备时不需要平均用力,应该把重点放在 基础概念、常见 API、项目表达、编码能力和基本排查思路 上。

多数方向包含知识详解和面试题两类文档:

  • 知识详解篇:系统梳理原理与核心概念,包含源码分析和代码示例,帮助建立完整知识体系
  • 面试题篇:精选高频面试题,每题包含完整回答、追问及加分点,用于查漏补缺和模拟练习

实习面试更看重“基础是否扎实、是否真的写过代码、遇到问题能否定位”。社招资料中的源码级细节、线上治理、复杂架构设计可以作为加分项,不建议一开始就深挖到每个源码分支。

目录结构

android-interview-complete/
├── 01-java-kotlin-concurrency/        # Java/Kotlin 基础与并发
│   ├── java-collections.md           # Java 集合源码分析
│   ├── java-fundamentals.md          # 泛型/反射/JVM/GC/类加载
│   ├── java-concurrency.md           # JMM/volatile/synchronized/AQS/线程池
│   ├── kotlin-coroutines.md          # Kotlin 语法 + 协程原理
│   ├── interview-java.md             # Java 基础面试题
│   ├── interview-concurrency.md      # 并发面试题
│   └── interview-kotlin.md           # Kotlin/协程面试题
├── 02-components-lifecycle-context/    # 四大组件、生命周期与 Context
│   ├── knowledge.md
│   └── interview.md
├── 03-ui-bindraw-touch-recyclerview/   # UI 绘制、事件分发与 RecyclerView
│   ├── knowledge.md
│   └── interview.md
├── 04-jetpack-mvvm-compose/           # Jetpack、MVVM 与 Compose
│   ├── knowledge.md
│   └── interview.md
├── 05-network-cache-storage/          # 网络、缓存与存储
│   ├── knowledge.md
│   └── interview.md
├── 06-performance-stability/          # 性能优化与稳定性
│   ├── knowledge.md
│   └── interview.md
├── 07-system-binder-handler-startup/  # 系统原理、Binder、Handler 与启动流程
│   ├── knowledge.md
│   └── interview.md
├── 08-architecture-gradle-engineering/# 架构设计、Gradle 与工程化
│   ├── knowledge.md
│   └── interview.md
├── 09-cross-platform-flutter-kmm/     # 跨平台方案(Flutter/KMM)
│   ├── knowledge.md
│   └── interview.md
├── 10-system-design/                  # 系统设计题
│   ├── knowledge.md
│   └── interview.md
├── 11-project-depth-and-expression/   # 项目深度与面试表达
│   ├── knowledge.md
│   └── interview.md
├── 12-llm-ai-coding/                 # 大模型 LLM 与 AI Coding
│   ├── knowledge.md                   # 概览与核心概念
│   ├── llm-fundamentals.md            # Transformer/训练/推理原理
│   ├── ai-coding-deep.md              # AI Coding 原理详解
│   └── interview.md                   # 面试题
└── 13-algorithm/                      # 算法与数据结构
    └── algorithm.md                   # 高频算法题型与刷题策略

复习路线建议

实习准备总原则

  1. 先能讲清楚,再追源码:Activity 生命周期、事件分发、RecyclerView 复用、线程切换、网络请求这些内容,要能用自己的话讲出流程和使用场景。
  2. 先做项目闭环,再补底层深度:至少准备 1 个 Android 项目,能说清楚页面结构、数据流、网络/本地存储、遇到的问题和解决过程。
  3. 算法每天持续刷:实习面试常见 1 道算法或手撕代码,优先数组、字符串、链表、栈队列、二叉树、滑动窗口和简单 DP。
  4. 社招深度降权处理:Binder、AMS/WMS、复杂性能治理、组件化架构、系统设计题主要作为加分项,能讲主线和应用场景即可。

第一阶段:实习必考基础(2 周)

这些是实习 Android 面试最常问的内容,优先级最高:

方向实习重点
01 - Java/Kotlin/并发面向对象、集合、泛型、异常、Lambda、Kotlin 空安全/扩展函数/数据类、线程创建、主线程与子线程切换
02 - 四大组件/生命周期Activity/Fragment 生命周期、启动模式、Intent、Context、Service/Broadcast/ContentProvider 基本用途
03 - UI 绘制/事件分发/RecyclerViewXML 布局、View 事件分发主链路、RecyclerView Adapter/ViewHolder、局部刷新、列表卡顿基础原因
05 - 网络/缓存/存储HTTP 基础、GET/POST、状态码、JSON 解析、Retrofit/OkHttp 基本用法、SharedPreferences/DataStore/Room 使用场景
07 - Handler/线程通信Handler/Looper/MessageQueue 主流程、为什么不能在子线程更新 UI、runOnUiThread/view.post 的区别
13 - 算法数组、字符串、链表、栈队列、哈希表、二叉树、双指针、滑动窗口、基础动态规划

第二阶段:项目能力与工程实践(1-2 周)

用于证明“写过 Android 项目,并能解释自己的代码为什么这么设计”:

方向实习重点
04 - Jetpack/MVVM/ComposeViewModel、LiveData/StateFlow、Lifecycle、Room、Navigation、MVVM 基本分层;Compose 了解状态驱动 UI
06 - 性能优化/稳定性内存泄漏常见原因、ANR 基本概念、图片加载优化、主线程耗时、简单 Crash 定位
08 - 架构设计/Gradle/工程化Gradle 依赖配置、build.gradle 常见字段、Debug/Release 区别、Git 基本协作、简单模块划分
11 - 项目深度/面试表达项目背景、职责、技术选型、难点、踩坑、结果,用 STAR 法则组织表达

第三阶段:加分项与社招资料选读(1 周)

有余力时再补,面试中能体现学习深度,但不要挤占基础和项目时间:

方向实习加分点
07 - 系统原理/Binder/启动流程Binder 一次通信的主流程、Zygote 到 ActivityThread 的启动主线、AMS/WMS 的职责边界
09 - 跨平台方案Flutter/KMM 基本概念、适用场景、和原生 Android 的区别
10 - 系统设计题简化版图片加载器、简单缓存策略、Feed 列表分页加载和下拉刷新
12 - 大模型 LLM/AI Coding用 AI 辅助查资料、生成样板代码、解释报错,但要能校验输出正确性

实习面试重点清单

优先级必须准备到的程度
P0 必会Java/Kotlin 基础、Activity/Fragment 生命周期、RecyclerView、网络请求、JSON、线程与 Handler、项目介绍、常见算法
P1 高频MVVM、ViewModel、LiveData/Flow、Room、事件分发、图片加载、内存泄漏、ANR、启动模式、Context
P2 加分Binder、App 启动流程、Compose、Gradle 构建优化、组件化、Flutter/KMM、系统设计、AI Coding

实习面经常见问法

  1. 基础概念型:HashMap 怎么存数据?ArrayList 和 LinkedList 区别?Kotlin 的 ?.!! 区别?
  2. Android 使用型:Activity A 跳 B 生命周期怎么走?Fragment 为什么要用 viewLifecycleOwner?RecyclerView 为什么要用 ViewHolder?
  3. 场景排查型:页面卡顿怎么办?图片太多导致 OOM 怎么办?网络请求失败怎么排查?点击事件不响应可能是什么原因?
  4. 项目追问型:你的项目用了哪些技术?为什么用 MVVM?网络层怎么封装?数据怎么缓存?遇到过最难的问题是什么?
  5. 编码算法型:反转链表、有效括号、两数之和、最长无重复子串、二叉树遍历、LRU 简化实现。

各方向简要说明

#方向knowledge.mdinterview.md
01Java/Kotlin/并发JVM、泛型、协程、锁机制等原理详解高频基础题与编码题
02四大组件/生命周期组件工作机制与系统交互原理生命周期场景题与陷阱题
03UI/绘制/事件/RV渲染管线、触摸事件、列表性能原理View 相关经典面试题
04Jetpack/MVVM/Compose架构组件源码分析与 Compose 机制架构选型与实践问题
05网络/缓存/存储网络协议栈与本地存储方案原理网络优化与缓存策略题
06性能优化/稳定性各类性能问题的分析方法与优化手段线上问题排查实战题
07系统原理/Binder/HandlerFramework 层核心机制深度剖析系统原理高频问答
08架构/Gradle/工程化大型项目架构演进与构建体系架构设计与工程实践题
09跨平台方案Flutter/KMM 技术原理与选型分析跨平台实践与对比题
10系统设计题常见系统设计题的思路与方案限时设计题模拟练习
11项目深度/面试表达如何提炼项目亮点与表达技巧模拟面试问答与复盘
12大模型 LLM/AI CodingTransformer/训练/推理/Agent/RAG 原理LLM 与 AI Coding 面试题
13算法与数据结构高频题型、复杂度和刷题路径手撕代码与解题表达

使用建议

  1. 先基础,后深度:每个方向先掌握“是什么、怎么用、常见坑”,再看源码和复杂场景。
  2. 先项目,后背题:实习面试非常依赖项目追问,建议把自己的项目按“背景-职责-技术点-问题-结果”写成提纲。
  3. 先表达,后堆概念:不要只背标准答案,要能结合项目说出“我在哪里用过、为什么这么用、出问题怎么查”。
  4. 按优先级推进:P0 内容必须能稳定回答,P1 内容能讲常见场景,P2 内容作为加分项准备主线即可。
  5. 保留社招资料的价值:原文中更深入的源码、架构和线上治理内容不要删,后续校招/社招仍然有用;当前实习准备只需要选择性阅读。