最全的 Android 技术栈
这个大佬写的非常好,并且整理了所有相关的知识和内容到github上,需要的盆友可以按照自己的需求去嫖。感谢大佬,后面会按照这个文章整理自己的不足,补齐短板知识点。 内容涵盖绝大部分 Android 程序员所需要的技能:「数据结构算法」「程序架构」「设计模式」「性能优化」「组件化」「插件化」「热修复」「NDK技术」「自定义View」「性能优化」「Android源码分析」「深入理解Kotlin」「Java核心技术」「Jetpack」「Router」「Flutter」「RxJava」「Glide」「LeakCanary」「Dagger2」「Retrofit」「OkHttp」「ButterKnife」「GreenDAO」「经典书籍」等。如果您有任何问题或建议欢迎 Issues 。 核心知识脉络:
-
Java核心技术
- Java 集合框架原理
- Java 网络编程
- Java 多线程、线程池、并发库
- Java I/O,覆盖绝大部分 I/O 类
- JVM 虚拟机技术
-
深入理解Kotlin技术
- Kotlin 类型体系
- Kotlin 面向对象
- Lambda 表达式
- 高阶函数
- 彻底搞懂 Kotlin 泛型
- Kotlin 集合
- 操作符重载
- Kotlin 协程
-
Android基础
- 四大组件
- Activity 启动模式
- 数据存储
- 异步操作
- IPC
- 熟悉常用框架的使用
-
Android进阶
- UI 原理
- 性能优化
- 常用的开源框架实现原理](#Android开源框架)
- Android 架构(MVC、MVP、MVVM、Clean、Jetpack)
- 设计模式、6 大设计原则](#设计模式)
- AOP、IoC、DI
- APT、Gradle Plugin、ASM、Javassist、AspectJ
- 组件化、插件化、热修复
- NDK 技术
- Android 虚拟机
-
跨平台
-
团队
- 如何提高整体的团队水平?
- 如何提高提高团队内代码质量?
- 如何提高团队积极性?
#Java核心技术#
为了能够开发高质量的 Android App,首先要求我们具备扎实的 Java 基础。
不仅需要熟练使用 Java 各项 API。如 Java 网络编程、多线程并发、集合框架等。
还需要掌握常见 API 的底层原理。如 集合框架的实现原理,要求我们掌握常用的数据结构与算法。
除此以外,还需要我们对 Java 执行机制有一定了解,这个时候可要求我们对 Java 虚拟机有一定的掌握。如 class 字节码、类加载器、垃圾回收机制等。
关于这方面的知识,可以学习参考我之前的一些总结:
Java基础:
Java网络编程:
JavaIO:
Java多线程:
Java集合框架:
Java虚拟机:
数据结构与算法:
#深入理解Kotlin#
随着 Kotlin 在 Android 开发的过程中的普及,以及 Kotlin 本身的一些优势。要求我们对 Kotlin 也需要有很好的掌握。
为了更好的更快更深入的学习 Kotlin,我们可以在学习 Kotlin 的过程中,深度对比 Java,让我们对 Kotlin 的掌握程度快速达到对 Java 的掌握程度。
关于这 Koltin 相关的资料大家可参考我下面的文章,其中包括:类型体系、Lambda 表达式、高阶函数、泛型、集合、操作符重载、协程等 Kotlin 核心概念等:
#设计原则与模式#
设计原则对我们设计出高内聚、低耦合的可维护代码起着至关重要的作用。设计原则与模式很简单,但是如何很好的应用到实际工作中,显得不那么简单。需要我们不断的去琢磨与思考,在这方面我也有一些心得与体会,和大家一起探讨:
#Android架构#
随着我们对设计原则与设计模式的理解与实践,我们也会对程序的一些架构提出一些问题,例如如何去解决我们项目中已存在的一些架构问题,关于这方面的内容可以参考:
#Android开源框架#
使用 Android 开源框架,避免我们重复创建轮子。使用高质量的开源框架,能够帮助我们快速构建高质量的程序。
与此同时,我们了解其被的实现原理,知其然也知其所以然。我们也可以学到很多代码设计上的技巧,同时也能够帮我们快速排查问题。
这方面的内容,大家可以参考我的一些分析文章:
Jetpack:
RxJava:
Retrofit:
Dagger2:
ButterKnife:
#Android性能优化#
#NDK开发#
#跨平台开发#
Flutter:
#经典书籍#
|