看到一篇文章中提到“最近几年国内的初级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

到此,你已经差不多掌握了基础的知识了,将轻松实现:

  1. 开始开发属于自己的DIY Android 应用程序。

  2. 在 Android领域 中找到你的第一份实习工作。

  3. 在应用商店上发布应用。

现在,让我们开始下一个里程碑

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 对面试很重要。

网络缓存拦截器图像加载

  • 了解三方库的内部结构和源码对于充分利用它很重要。
  • 此外,这些概念将使大家在面试时比其他候选人占上风。

如果前面这些大家都没有问题,那么大家已经实现了:

  1. 具有构建强大架构 Android 应用程序的能力。
  2. 在 Android 领域找到不错的工作。

当然Github 上也有很多开源的项目,多看看源码,自己才能快速提升;《Android开源项目分类汇总》,这里几乎汇总了github 上所有的开源项目,可以自己找些慢慢学;虽然学习是乏味的事,但坚持到最后是不易的;要善于利用搜索引擎,遇到不会的问题,要使用Google 搜索;对了,作为一个开发者,要学会自备梯子;

总的来说,作为一个中高级Android开发或者Android架构师,技术广度 + 技术深度 + 系统设计能力,那么这三者必须平衡发展,并缺一不可。 最后如果小伙伴们有什么建议,或者希望更多的看到哪类文章,都可以进群留言哦!非常期待与各位小伙伴的交流!

❤️/ 感谢支持 /

以上便是本次分享的全部内容,希望对你有所帮助^_^

喜欢的话别忘了 分享、点赞、收藏 三连哦~

欢迎关注公众号 程序员巴士,来自字节、虾皮、招银的三端兄弟,分享编程经验、技术干货与职业规划,助你少走弯路进大厂。