Android 应用层开发学习指导书
从零开始,系统学习 Android 应用层开发,涵盖 Java、Kotlin 及 Android 核心知识。
目录
- 学习路线概览
- 第一阶段:Java 语言基础
- 第二阶段:Kotlin 语言基础
- 第三阶段:Android 基础入门
- 第四阶段:Android 核心组件
- 第五阶段:Android 进阶
- 第六阶段:项目实战
- 学习资源推荐
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 开源项目
附录:每日学习建议
- 理论学习 + 实践结合:每学一个知识点,立即写代码验证
- 做好笔记:本目录下按阶段创建对应的
.md笔记文件 - 代码托管:使用 Git 管理学习代码
- 定期复习:每周回顾本周所学内容
- 坚持输出:用博客或笔记记录学习心得
学习 Android 开发是一个长期过程,保持耐心与好奇心,享受创造的乐趣!