本文转载自微信公众号「程序员巴士」,作者Eason。转载本文请联系程序员巴士公众号。
看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“;这的确不假,今年已经是2022年了,距离Android巅峰时期那会已经过去七八年了,现在想找一个适合的中高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。所以Eason想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己。
本文适用于:
任何想学习 Android 开发但不知道从哪里开始的人。
也适用于已经开始进行 Android 开发但想要变得更好的任何人。
为了成为更好的 Android 开发er,Eason为大家提供了总的路线图。如果下面这个学习路线能帮助大家成为一个更好的 Android 开发者,那么我的使命也就完成了:
学习Android App开发的完整指南
Android 开发者路线图
安装 Android Studio IDE 并开始使用 Android
- 什么是 Android 及其工作原理?
- 安装 Android Studio
安卓组件
- 什么是 Activity ?
- UI设计——用户界面
- 什么是 View 以及它是如何工作的?
- Intent 是什么?
- Activity Lifecycle
- Dialog UI
Shared Preferences
- 即使杀死应用程序并重新打开App,数据也会保留,因为可以使用Shared Preferences.
RecyclerView
- 为了构建显示项目列表的 UI,Android 应用使用 RecyclerView。
- 微信QQ等应用程序使用 RecyclerView 构造的聊天屏幕。
Kotlin 入门
- Google 已正式宣布 Kotlin 为 Android 的一流语言。现在学习 Kotlin 很重要。
- Kotlin 简洁、空安全且可互操作。
- 从 Kotlin 的基础知识开始。
- 使用 Kotlin 的基本知识将 Java 代码转换为 Kotlin。
单例、进程和线程
- 应用程序利用线程可使应用程序运行得更快,并提供最佳的用户体验。
- 在面试中也会有巨大帮助。
数据库实现
- 使用数据库来存储消息,即使在没有连网的情况下,也可以看到发送或接收的所 有消息。
- 大多数App使用数据库来存储数据。
权限和图像加载
- 涉及到通话等权限的 App 首次启动时会询问联系权限。
- 使用 Glide Volley等图像加载库加载提要中的图像。
Work Manager
使用 WorkManager,App 甚至可以在休眠时获取数据,并在早上打开应用程序时向大家显示最新消息,即使在晚上一段时间内没有连接到网络。
Notification
- 几乎所有的 Android 程序都使用通知显示应用的任何更新。
NetWork
- 应用程序通过网络调用从服务器Server获取数据。
ViewPager 和 Fragment
- 像抖音微信主流App使用 ViewPager 让用户在内容Fragment、朋友圈Fragment、个人中心Fragment等之间滚动。
- Activity 包含 Fragment。
Debugging 和 APK 发布
- Debugging —— 这对开发人者来说是一个学习机会,毕竟最重要的技能之一。
- APK 发布 —— 在应用商店中发布应用并轻松接触到用户。
要点
- 什么是上下文 Context?
- 面向对象编程——OOP
- 类设计和结构
- 文件系统、读、写、Asset 读写
- Android中的约束布局ConstraintLayout
- Android 中的Canvas API
- 自定义 View
到此,你已经差不多掌握了基础的知识了,将轻松实现:
- 开始开发属于自己的DIY Android 应用程序。
- 在 Android领域 中找到你的第一份实习工作。
- 在应用商店上发布应用。
现在,让我们开始下一个里程碑
Dagger
- 当项目变得更大时,大家需要了解依赖管理并在项目中使用 Dagger 来管理依赖关系。像 Google 这样的公司在他们的 Android 应用程序中使用 Dagger。
- 学习设计自己的依赖管理框架。
学习 Kotlin
- 重温 Kotlin 的基础知识。
- 开始学习 Kotlin 语言特定的功能。
- 学习 Kotlin 高级功能。
- 如今,大多数公司的新项目都开始使用 Kotlin。此外,较旧的 Java 项目正在迁移到 Kotlin。
Architectural Components
- LiveData、LifeCycle、ViewModel 等架构组件有助于管理我们的 UI 组件生命周期和处理数据持久性。
- 生命周期处理的挑战,Activity 轮换问题
- 学习创建生命周期感知组件
- 共享 ViewModel
RxJava
- RxJava 已成为 Android 开发中最重要的一项技能。
- 几乎每个应用程序都使用 RxJava 进行多线程处理。
- RxJava 使开发人员的生活变得轻松。
- 线程在 Android 中是如何工作的?
数据库设计
- 应用程序使用数据库在 Android 端存储数据,并设计数据库以使查询更快,从而使应用程序运行得更快。
- 现在,我们使用的是 Google 创建的库 Room。Room 在 SQLite 之上提供了一个抽象层,以允许流畅的数据库访问,同时利用 SQLite 的全部功能。
- 了解关系数据库概念
- 规范化和多对多关系
- 了解类型转换器,Room数据库中的迁移。
联网
- Android 应用程序使用 Retrofit 等网络库来获取数据。
- 如今,Retrofit 是进行网络调用的著名库之一。
- 学习创建 GET、POST 请求和处理复杂数据模型
- 了解与网络相关的许多概念,例如用于上传图像的Multipart、拦截器。
MVVM 、MVC 和 MVP
- 学习使用带有架构组件、LiveData、ViewModel、ViewModelFactory、Dagger、Retrofit、RxJava 的 MVVM 架构来构建登录、Feed、帖子创建和个人资料页面。
- 了解 MVC、MVP 和 MVVM 架构。
- ViewModel、ViewModelProviders、ViewModelProviderFactory 是如何工作的?
- 构建功能,例如通过相机捕获图像,通过图库选择图像
- 使用 Multipart 上传图片。
- 生命周期感知 RecyclerView 的原理
- Lifecycle Aware RecyclerView ViewHolder 的实现:一般开发者会忽略这一点。优秀的开发人员在开发 Android 应用程序时会考虑所有边缘情况。
- 使用 RxJava 实现分页功能
单元测试
- 测试是一个软件开发过程,我们在其中做很多不同的事情来发现错误。错误的数量越少,该特定软件在生产中表现良好的机会就越大。
- 它迫使大家遵循代码库中的架构,有助于在开发周期中快速检测故障,并帮助大家进行更安全的代码重构,使优化代码而不必担心回归。
Kotlin 协程
- 协程到底是什么?
- 需要 Kotlin Coroutines 提供的解决方案
- 调度程序,挂起,启动,异步
- Kotlin 协程中的作用域是什么?
- Kotlin 协程中的异常处理
Android 构建系统和内存管理
- 了解Android Build系统,内存管理对于Android开发者来说非常重要。
- 它将帮助大家构建消耗更少内存的 Android 应用程序
- 还在破解顶级公司的面试。
Android 多线程和 Handler-Looper
- 了解多线程将帮助大家有效地在后台执行任务。
- Android Looper、Handler 和 HandlerThread 是 Android OS 的构建块。所以这是面试中被问到最多的话题之一。
- 多线程和 Handler-Looper 对面试很重要。
网络缓存拦截器图像加载
- 了解三方库的内部结构和源码对于充分利用它很重要。
- 此外,这些概念将使大家在面试时比其他候选人占上风。
如果前面这些大家都没有问题,那么大家已经实现了:
- 具有构建强大架构 Android 应用程序的能力。
- 在 Android 领域找到不错的工作。