Android 应用层开发学习指导书

从零开始,系统学习 Android 应用层开发,涵盖 Java、Kotlin 及 Android 核心知识。


目录

  1. 学习路线概览
  2. 第一阶段:Java 语言基础
  3. 第二阶段:Kotlin 语言基础
  4. 第三阶段:Android 基础入门
  5. 第四阶段:Android 核心组件
  6. 第五阶段:Android 进阶
  7. 第六阶段:项目实战
  8. 学习资源推荐

1. 学习路线概览

Java 基础 → Kotlin 基础 → Android 基础 → Android 核心组件 → Android 进阶 → 项目实战
阶段 内容 建议时长
Java 语言基础 2-3 周
Kotlin 语言基础 2-3 周
Android 基础入门 2 周
Android 核心组件 3-4 周
Android 进阶 4-6 周
项目实战 持续

2. 第一阶段:Java 语言基础

Java 是 Android 开发的基石,理解 Java 有助于深入理解 Android 底层机制。

2.1 基础语法

  • JDK 安装与环境配置
  • 第一个 Java 程序:Hello World
  • 基本数据类型(int, long, float, double, boolean, char, byte, short)
  • 变量与常量
  • 运算符(算术、关系、逻辑、位、三元)
  • 流程控制(if-else, switch, for, while, do-while)
  • 数组(一维数组、二维数组)

2.2 面向对象编程(OOP)

  • 类与对象
  • 构造方法
  • 封装(private, default, protected, public)
  • 继承(extends)
  • 多态(方法重载、方法重写)
  • 抽象类(abstract class)
  • 接口(interface)
  • 内部类(成员内部类、静态内部类、匿名内部类、局部内部类)
  • 枚举(enum)

2.3 Java 核心 API

  • String 与 StringBuilder
  • 包装类(Integer, Long, Double 等)
  • Math 类
  • 日期与时间(Date, Calendar, LocalDateTime)
  • 集合框架
    • List(ArrayList, LinkedList)
    • Set(HashSet, TreeSet)
    • Map(HashMap, TreeMap)
  • 泛型(Generics)

2.4 Java 进阶特性

  • 异常处理(try-catch-finally, throws, 自定义异常)
  • IO 流(File, InputStream, OutputStream, Reader, Writer)
  • 多线程(Thread, Runnable, 线程池 ExecutorService)
  • Lambda 表达式(Java 8+)
  • Stream API(Java 8+)
  • 注解(Annotation)
  • 反射(Reflection)

3. 第二阶段:Kotlin 语言基础

Kotlin 是 Android 官方推荐语言,必须熟练掌握。

3.1 基础语法

  • Kotlin 环境搭建(IntelliJ IDEA / Android Studio)
  • 变量声明(val vs var)
  • 基本数据类型
  • 字符串模板
  • 条件表达式(if-else, when)
  • 循环(for, while, do-while)
  • 区间(Range)

3.2 函数

  • 函数声明与调用
  • 默认参数与命名参数
  • 单表达式函数
  • 扩展函数(Extension Function)
  • 高阶函数(Higher-Order Function)
  • Lambda 表达式
  • 内联函数(inline)

3.3 面向对象(Kotlin 风格)

  • 类与构造函数(主构造函数、次构造函数)
  • init 初始化块
  • 属性(getter/setter)
  • 继承与重写(open, override)
  • 抽象类与接口
  • 数据类(data class)
  • 密封类(sealed class)
  • 对象(object)与伴生对象(companion object)
  • 委托(by 关键字)

3.4 空安全(Null Safety)

  • 可空类型(?)
  • 安全调用操作符(?.)
  • Elvis 操作符(?:)
  • 非空断言(!!)
  • let / run / apply / also / with 作用域函数

3.5 集合与序列

  • List, Set, Map(可变与不可变)
  • 集合操作符(map, filter, reduce, flatMap)
  • 序列(Sequence)

3.6 Kotlin 协程(Coroutines)

  • 协程基础(suspend 函数)
  • 协程构建器(launch, async, runBlocking)
  • 协程上下文与调度器(Dispatchers)
  • 协程作用域(CoroutineScope, viewModelScope, lifecycleScope)
  • 通道(Channel)与流(Flow)
  • 异常处理(try-catch, CoroutineExceptionHandler)

4. 第三阶段:Android 基础入门

4.1 开发环境

  • Android Studio 安装与配置
  • Android SDK 管理
  • AVD(Android Virtual Device)创建
  • Gradle 构建系统基础
  • 项目目录结构理解

4.2 应用基础

  • AndroidManifest.xml 清单文件
  • Activity 与生命周期
  • Intent(显式 / 隐式)
  • 页面导航与数据传递
  • 资源管理(res/ 目录)
  • 字符串与多语言(strings.xml)
  • 颜色、尺寸、主题(colors.xml, dimens.xml, themes.xml)

4.3 UI 基础(View 体系)

  • 布局管理器
    • LinearLayout
    • RelativeLayout
    • ConstraintLayout(推荐)
    • FrameLayout
    • TableLayout
  • 常用控件
    • TextView, EditText
    • Button, ImageButton
    • ImageView
    • CheckBox, RadioButton
    • Switch, ToggleButton
    • ProgressBar, SeekBar
    • RatingBar
  • ScrollView 与 NestedScrollView
  • RecyclerView(列表的核心控件)
  • ViewPager(页面滑动)

4.4 样式与资源

  • Style 样式定义与继承
  • Material Design 组件(MaterialButton, Chip, CardView 等)
  • Drawable(shape, layer-list, selector)
  • 屏幕适配基础(dp, sp, px 区别)
  • Vector Drawable 矢量图

5. 第四阶段:Android 核心组件

5.1 Activity 深入

  • Activity 生命周期完整理解
  • 启动模式(standard, singleTop, singleTask, singleInstance)
  • onSaveInstanceState 状态保存与恢复
  • Activity 之间数据传递(Intent Bundle)
  • startActivityForResult / ActivityResultContracts

5.2 Fragment

  • Fragment 生命周期
  • Fragment 创建与使用(FragmentManager)
  • Fragment 与 Activity 通信
  • Navigation 组件与 Fragment 结合
  • DialogFragment

5.3 Service 服务

  • Service 生命周期
  • 启动服务(startService)
  • 绑定服务(bindService)
  • IntentService(已废弃,了解即可)
  • 前台服务(Foreground Service)与通知栏
  • 后台任务限制(Android 8.0+)

5.4 BroadcastReceiver 广播接收器

  • 广播类型(标准广播、有序广播、粘性广播)
  • 静态注册与动态注册
  • 系统广播(网络变化、电量、开机等)
  • 自定义广播

5.5 ContentProvider 内容提供者

  • ContentProvider 概念与用途
  • ContentResolver 访问系统数据(通讯录、日历等)
  • 自定义 ContentProvider

5.6 数据存储

  • SharedPreferences(轻量键值对存储)
  • DataStore(SharedPreferences 替代方案)
  • 文件存储(内部存储 / 外部存储)
  • SQLite 数据库
  • Room 持久化库(推荐)

6. 第五阶段:Android 进阶

6.1 架构模式

  • MVC 模式理解
  • MVP 模式理解
  • MVVM 模式(Android 推荐)
  • ViewModel 的使用与原理
  • LiveData / StateFlow 数据观察
  • DataBinding 数据绑定
  • ViewBinding 视图绑定

6.2 网络请求

  • 权限声明(INTERNET)
  • 网络请求基本概念(RESTful API, JSON)
  • OkHttp 基础使用
  • Retrofit 网络框架
  • Gson / Moshi JSON 解析
  • 网络请求最佳实践(单例、拦截器、缓存)
  • 网络安全配置(Network Security Config)

6.3 图片加载

  • Glide 图片加载库
  • Coil(Kotlin 原生,推荐)
  • 图片缓存策略

6.4 异步处理

  • 主线程与子线程
  • Handler 与 Looper 机制
  • AsyncTask(已废弃,了解即可)
  • RxJava 基础(可选了解)
  • Kotlin Coroutines 在 Android 中的最佳实践

6.5 依赖注入(DI)

  • 依赖注入概念
  • Dagger 基础(了解)
  • Hilt(Android 官方推荐 DI 框架)
  • Koin(轻量级替代方案,可选)

6.6 Jetpack 组件

  • Navigation 导航组件
  • Room 数据库
  • ViewModel + LiveData
  • DataStore
  • WorkManager(后台任务调度)
  • Paging 3(分页加载)
  • CameraX(相机)

6.7 Jetpack Compose(现代 UI)

  • Compose 基本概念(声明式 UI)
  • Composable 函数
  • 布局(Column, Row, Box, ConstraintLayout)
  • 状态管理(remember, mutableStateOf, StateFlow 整合)
  • Modifier 修饰符
  • Compose 中导航
  • Compose 与 View 体系互操作

6.8 性能优化

  • 布局优化(减少层级、ViewStub, merge)
  • 内存泄漏检测(LeakCanary)
  • 内存优化(避免不必要的对象创建)
  • 启动速度优化(冷启动 / 热启动)
  • APK 体积优化
  • ANR 问题定位与排查
  • Profiler 工具使用

6.9 安全基础

  • 数据加密(EncryptedSharedPreferences / Crypto)
  • HTTPS 证书校验
  • 代码混淆(ProGuard / R8)
  • 敏感信息保护(API Key 等)
  • WebView 安全

7. 第六阶段:项目实战

7.1 入门级项目

  • 待办事项应用(Todo List)—— 练习基础 UI 与数据存储
  • 计算器 —— 练习布局与逻辑
  • 记事本 —— 练习 Room 数据库

7.2 中级项目

  • 天气应用 —— 练习网络请求与数据解析
  • 新闻客户端 —— 练习 RecyclerView + Retrofit
  • 音乐播放器 —— 练习 Service + 多媒体

7.3 高级项目

  • 仿微信客户端 —— 练习综合架构设计
  • 电商应用 —— 练习复杂业务逻辑与架构
  • 个人作品集 App —— 展示综合能力

8. 学习资源推荐

官方网站

推荐书籍

  • 《第一行代码 Android》 —— 郭霖
  • 《Android 编程权威指南》
  • 《Kotlin 实战》
  • 《Effective Java》
  • 《深入理解 Java 虚拟机》(JVM)

在线资源

  • Google Codelabs
  • Android 开发者培训课程
  • GitHub 开源项目

附录:每日学习建议

  1. 理论学习 + 实践结合:每学一个知识点,立即写代码验证
  2. 做好笔记:本目录下按阶段创建对应的 .md 笔记文件
  3. 代码托管:使用 Git 管理学习代码
  4. 定期复习:每周回顾本周所学内容
  5. 坚持输出:用博客或笔记记录学习心得

学习 Android 开发是一个长期过程,保持耐心与好奇心,享受创造的乐趣!