Android Kotlin 路线图
一、Kotlin
- 学习 Kotlin:Kotlin 是一种在 Java 虚拟机 (JVM) 上运行的现代编程语言。它简洁、富有表现力,并且旨在与 Java 完全互操作。由于其简洁的语法和安全功能,它被广泛用于 Android 应用程序开发。
- Kotlin 中的 OOP :Kotlin 支持面向对象编程 (OOP)的所有功能,包括类、对象、继承、接口等。它还引入了一些新概念,例如数据类和密封类。
- 设计模式:设计模式是软件设计中常见问题的可重用解决方案。 Kotlin 支持各种设计模式,例如 Singleton、Factory、Observer 等。
- 集合和泛型:Kotlin 提供了丰富的集合类型,例如 List、Set、Map 等,以及对泛型的支持,使您可以编写可重用且类型安全的代码。
- Kotlin 协程:协程是一种顺序编写异步、非阻塞代码的方法。与传统的基于回调的方法相比,它们简化了异步任务的处理。
- Kotlin Flow API:Kotlin Flow 是一种新的异步流处理 API,是对 Kotlin 协程的补充。它提供了一种处理异步数据流的声明性方式。
- Jetpack Compose:Jetpack Compose 是一个现代 UI 工具包,用于使用 Kotlin 构建原生 Android UI。它允许您以声明方式构建 UI 组件,从而简化了 UI 开发。
二、数据结构
- 数组:数组是一种数据结构,存储相同类型元素的固定大小的顺序集合。
- 链表:链表是一种线性数据结构,其中元素不存储在连续的内存位置。每个元素都指向列表中的下一个元素。
- 哈希表:哈希表是一种存储键值对的数据结构。它使用哈希函数来计算数组的索引,可以在其中找到或插入值。
- 栈:栈是一种遵循后进先出(LIFO)原则的数据结构。元素在堆栈顶部添加和删除。
- 队列:队列是一种遵循先进先出(FIFO)原则的数据结构。元素在后面添加,从前面删除。
- 树:树是一种分层数据结构,由通过边连接的节点组成。每个节点都有一个父节点和零个或多个子节点。
- 图:图是一种非线性数据结构,由节点(顶点)和连接这些节点的边组成。
三、Android基础知识
- Activity & Fragment:Activity 代表 Android 应用程序的 UI,而 Fragment 是 Activity 中可重用的 UI 组件。
- 视图和视图组:视图是 UI 组件,如按钮、文本字段等,而视图组是保存多个视图的容器。
- 对话框和 Toast:对话框是用于与用户交互的弹出式 UI 元素,而 Toast 是显示在屏幕底部的简单通知。
- 互联网和广播:Android 应用程序可以出于各种目的访问互联网,例如下载数据或与网络服务交互。广播是指在系统范围内或应用程序之间发送消息的机制。
- 服务:服务是可以无限期运行的后台进程,无需 UI 即可执行任务。
- 长时间运行的操作:这涉及处理需要大量时间才能完成的任务,例如网络操作或数据库事务,而不阻塞主 UI 线程。
- 保存和缓存数据:Android 应用程序可以使用各种技术(例如 SharedPreferences、文件、SQLite 数据库或缓存机制)在本地保存数据。
- 内存和优化:了解内存管理和优化应用程序性能对于在 Android 设备上提供流畅的用户体验至关重要。
- 支持不同的屏幕尺寸:Android 设备有各种屏幕尺寸和密度,因此设计能够适应不同外形尺寸的应用程序非常重要。
- Android 中的权限:Android 应用程序需要权限才能访问某些系统资源,例如相机、联系人等。出于安全原因,用户在运行时授予这些权限。
- Android JetPack 组件:Jetpack 是库、工具和指南的集合,可帮助开发人员更轻松地编写高质量的 Android 应用程序。
- 依赖注入:依赖注入是一种设计模式,用于通过消除组件之间的直接依赖关系来提高应用程序的模块化和可测试性。
- 网络和多线程:Android 应用程序通常需要在后台执行网络操作以从服务器获取数据。多线程用于并发执行任务并保持 UI 响应。
- WorkManager:WorkManager是一个 Android 库,用于管理需要在特定时间运行或满足某些约束的后台任务。
- Material Design:Material Design 是 Google 开发的一种设计语言,强调干净、现代的外观以及流畅的动画和过渡。
- OkHttp (Retrofit):OkHttp 是一个适用于 Android 和 Java 应用程序的开源 HTTP 客户端。 Retrofit 是适用于 Android 和 Java 的类型安全 HTTP 客户端,可简化使用 RESTful Web 服务的过程。
- 异常和错误处理:正确的错误处理对于健壮的 Android 应用程序至关重要,可以优雅地处理意外情况并提供良好的用户体验。
- Gradle 和调试:Gradle 是用于 Android 应用程序开发的构建系统。调试涉及在开发过程中识别和修复代码中的问题。
- 后端集成:与数据库、API 或云服务等后端服务集成是 Android 应用程序的常见要求。
- 检索、解析和发布数据:Android 应用程序通常需要从服务器检索数据,将其解析为可用格式,然后将数据发送回服务器。
- RxJava:RxJava 是一个流行的库,用于使用可观察序列编写异步和基于事件的程序。
四、架构体系
- MVC、MVP 和 MVVM:这些是 Android 开发中常用的设计模式,用于构建代码和分离关注点。 MVC 代表模型-视图-控制器,MVP 代表模型-视图-呈现器,MVVM 代表模型-视图-视图模型。
- 清洁架构:清洁架构是一种软件设计理念,促进关注点分离和框架独立性。它强调使用具有明确职责和边界的层。
- Git & GitHub:Git 是一个用于跟踪代码更改的版本控制系统,而 GitHub 是一个用于托管 Git 存储库并与其他开发人员协作的平台。
- Gitlab 与 BitBucket:GitLab 和 Bitbucket 都是 GitHub 托管 Git 存储库的替代方案。它们提供类似的功能,但在定价、集成和附加工具方面可能有所不同。
- Firebase:Firebase 是 Google 开发的用于构建移动和 Web 应用程序的平台。它提供各种服务,包括身份验证、实时数据库、云消息传递和分析。
- SQLite、RoomDB、RealmDB 和 DataStore:这些是 Android 应用程序中本地数据存储的不同选项。 SQLite是一个轻量级关系数据库,RoomDB是Android Jetpack提供的SQLite的抽象层,RealmDB是一个移动数据库,DataStore是Google推出的新数据存储解决方案。
- CI/CD:持续集成(CI)和持续部署(CD)是软件开发中用于自动化测试和部署代码更改过程的实践。 CI/CD 管道有助于确保软件版本的质量和可靠性。
- 敏捷方法论、Scrum 和看板:敏捷是一种强调迭代开发、协作和客户反馈的软件开发方法论。 Scrum 和看板是敏捷中用于管理和组织工作的特定框架。
五、Android 单元和 UI 测试
- Espresso:Espresso 是一个测试框架,用于为 Android 应用程序编写简洁可靠的 UI 测试。它提供用于与 UI 组件交互并验证其行为的 API。
- Robolectric:Robolectric 是一个单元测试框架,允许您直接在 JVM 上运行 Android 测试,而无需物理设备或模拟器。
- Mockito:Mockito 是一个流行的 Java 和 Android 开发模拟框架。它允许您创建模拟对象来模拟单元测试中的行为和依赖关系。
- JUnit:JUnit 是一种广泛使用的测试框架,用于用 Java 和 Kotlin 编写单元测试。它提供用于编写和执行测试的注释和断言。
- UI Automator:UI Automator 是 Google 提供的一个测试框架,用于编写模拟 Android 设备上多个应用程序之间的用户交互的功能 UI 测试。
六、安全
- 加密/解密:加密和解密是用于保护敏感数据的技术,方法是将其转换为不可读的格式,然后在需要时恢复为其原始形式。
- ProGuard 规则:ProGuard 是一个用于收缩、优化和混淆 Java 字节码的工具。 ProGuard 规则是用于自定义其行为的配置指令,特别是 Android 应用程序中的代码混淆和优化。