最全的 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 虚拟机
  • 跨平台

    • Flutter
    • ReactNative
    • Weex
  • 团队

    • 如何提高整体的团队水平?
    • 如何提高提高团队内代码质量?
    • 如何提高团队积极性?

#Java核心技术#

为了能够开发高质量的 Android App,首先要求我们具备扎实的 Java 基础。

不仅需要熟练使用 Java 各项 API。如 Java 网络编程、多线程并发、集合框架等。

还需要掌握常见 API 的底层原理。如 集合框架的实现原理,要求我们掌握常用的数据结构与算法。

除此以外,还需要我们对 Java 执行机制有一定了解,这个时候可要求我们对 Java 虚拟机有一定的掌握。如 class 字节码、类加载器、垃圾回收机制等。

关于这方面的知识,可以学习参考我之前的一些总结:

Java基础:

  • Java 反射技术详解
  • Java XML 解析方式汇总
  • Java ClassLoader 类加载器详解

Java网络编程:

  • Java 网络编程详解(一)
  • Java 网络编程详解(二)

JavaIO:

  • Java I/O 流操作(一)System Properties Runtime 类
  • Java I/O 流操作(二)字节流与缓冲流
  • Java I/O 流操作(三)File 文件操作、PrintWriter、SequenceInputStream
  • Java I/O 流操作(四)对象的序列化

Java多线程:

  • Java 多线程(一)线程间的互斥和同步通信
  • Java 多线程(二)同步线程分组问题
  • Java 多线程(三)线程池入门 Callable 和 Future
  • Java 多线程(四)ThreadPoolExecutor 线程池各参数的意义
  • Java 多线程(五)Lock 和 Condition 实现线程同步通信
  • Java 多线程(六)Semaphore 实现信号灯
  • Java 多线程(七)CyclicBarrier 同步的工具类
  • Java 多线程(八)CountDownLatch 同步工具类
  • Java 多线程(九)Exchanger 同步工具类
  • Java 多线程(十)ArrayBlockingQueue 阻塞队列
  • Java 多线程(十一)JDK 同步集合

Java集合框架:

  • 数据结构与算法(十四)深入理解红黑树和JDK TreeMap和TreeSet源码分析
  • 数据结构与算法(十三)平衡二叉树之AVL树
  • 数据结构与算法(十二)并查集(Union Find)及时间复杂度分析
  • 数据结构与算法(十一)Trie字典树
  • 数据结构与算法(十)线段树(Segment Tree)入门
  • 数据结构与算法(九)Set集合和BinarySearchTree的时间复杂度分析
  • 数据结构与算法(八)二分搜索树(Binary Search Tree)
  • 数据结构与算法(七)树和二叉树
  • 数据结构与算法(六)二叉堆、优先队列和Java PriorityQueue
  • 数据结构与算法(五)深入理解递归
  • 数据结构与算法(四)队列和 Java ArrayDeque 源码剖析
  • 数据结构与算法(三)栈和 Java Stack 源码分析
  • 数据结构与算法(二)线性表之链式存储和LinkedList实现
  • 数据结构与算法(一)线性表之顺序存储和 ArrayList、Vector 源码剖析
  • ArrayBlockingQueue 阻塞队列

Java虚拟机:

  • 深入理解 Java 虚拟机(一)~ class 字节码文件剖析
  • 深入理解 Java 虚拟机(二)~ 类的加载过程剖析
  • 深入理解 Java 虚拟机(三)~ class 字节码的执行过程剖析
  • 深入理解 Java 虚拟机(四)~ 各种容易混淆的常量池
  • 深入理解 Java 虚拟机(五)~ 对象的创建过程
  • 深入理解 Java 虚拟机(六)~ Garbage Collection 剖析

数据结构与算法:

  • 数据结构与算法(十四)深入理解红黑树和JDK TreeMap和TreeSet源码分析
  • 数据结构与算法(十三)平衡二叉树之AVL树
  • 数据结构与算法(十二)并查集(Union Find)及时间复杂度分析
  • 数据结构与算法(十一)Trie字典树
  • 数据结构与算法(十)线段树(Segment Tree)入门
  • 数据结构与算法(九)Set集合和BinarySearchTree的时间复杂度分析
  • 数据结构与算法(八)二分搜索树(Binary Search Tree)
  • 数据结构与算法(七)树和二叉树
  • 数据结构与算法(六)二叉堆、优先队列和Java PriorityQueue
  • 数据结构与算法(五)深入理解递归
  • 数据结构与算法(四)队列和 Java ArrayDeque 源码剖析
  • 数据结构与算法(三)栈和 Java Stack 源码分析
  • 数据结构与算法(二)线性表之链式存储和LinkedList实现
  • 数据结构与算法(一)线性表之顺序存储和 ArrayList、Vector 源码剖析

#深入理解Kotlin#

随着 Kotlin 在 Android 开发的过程中的普及,以及 Kotlin 本身的一些优势。要求我们对 Kotlin 也需要有很好的掌握。

为了更好的更快更深入的学习 Kotlin,我们可以在学习 Kotlin 的过程中,深度对比 Java,让我们对 Kotlin 的掌握程度快速达到对 Java 的掌握程度。

关于这 Koltin 相关的资料大家可参考我下面的文章,其中包括:类型体系、Lambda 表达式、高阶函数、泛型、集合、操作符重载、协程等 Kotlin 核心概念等:

  • Kotlin 基础入门详解
  • 从 Java 角度深入理解 Kotlin
  • Kotlin 操作符重载详解

#设计原则与模式#

设计原则对我们设计出高内聚、低耦合的可维护代码起着至关重要的作用。设计原则与模式很简单,但是如何很好的应用到实际工作中,显得不那么简单。需要我们不断的去琢磨与思考,在这方面我也有一些心得与体会,和大家一起探讨:

  • 设计模式 ~ 面向对象 6 大设计原则剖析与实战
  • 设计模式 ~ 模板方法模式分析与实战
  • 设计模式 ~ 观察者模式分析与实战
  • 设计模式 ~ 单例模式分析与实战
  • 设计模式 ~ 深入理解建造者模式与实战
  • 设计模式 ~ 工厂模式剖析与实战
  • 设计模式 ~ 适配器模式分析与实战
  • 设计模式 ~ 装饰模式探究
  • 设计模式 ~ 深入理解代理模式
  • 设计模式 ~ 小结

#Android架构#

随着我们对设计原则与设计模式的理解与实践,我们也会对程序的一些架构提出一些问题,例如如何去解决我们项目中已存在的一些架构问题,关于这方面的内容可以参考:

  • Android MVP架构改造~如何重用顶层业务
  • 二维火Android云收银模块化架构实践
  • Android架构—MVP架构在Android中的实践
  • Android-MVVM架构-Data Binding的使用
  • 使用 repo 管理 Android 组件化项目

#Android开源框架#

使用 Android 开源框架,避免我们重复创建轮子。使用高质量的开源框架,能够帮助我们快速构建高质量的程序。

与此同时,我们了解其被的实现原理,知其然也知其所以然。我们也可以学到很多代码设计上的技巧,同时也能够帮我们快速排查问题。

这方面的内容,大家可以参考我的一些分析文章:

Jetpack:

  • Android Jetpack(一)Lifecycle 组件原理剖析
  • Android Jetpack(二)ViewModel 组件原理剖析
  • Android Jetpack(三)LiveData 组件原理剖析

RxJava:

  • RxJava create操作符的用法和源码分析
  • RxJava map操作符用法详解
  • RxJava flatMap操作符用法详解
  • RxJava concatMap操作符用法详解
  • RxJava onErrorResumeNext操作符实现app与服务器间token机制
  • RxJava retryWhen操作符实现错误重试机制
  • RxJava 使用debounce操作符优化app搜索功能
  • RxJava concat操作处理多数据源
  • RxJava zip操作符在Android中的实际使用场景
  • RxJava switchIfEmpty操作符实现Android检查本地缓存逻辑判断
  • RxJava defer操作符实现代码支持链式调用
  • combineLatest操作符的高级使用
  • RxJava导致Fragment Activity内存泄漏问题
  • interval、takeWhile操作符实现获取验证码功能
  • RxJava线程的自由切换

Retrofit:

  • Android Retrofit 源码系列(一)~ 原理剖析
  • Android Retrofit 源码系列(二)~ 自定义 CallAdapter
  • Android Retrofit 源码系列(三)~ 整合 RxJava、Coroutine 分析
  • Android Retrofit 源码系列(四)~ 文件上传
  • Android Retrofit 源码系列(五)~ 设计模式分析

Dagger2:

  • Android Dagger2(二)源码分析-对象是如何被注入的
  • Android Dagger2(一) Dagger使用详解

ButterKnife:

  • Android开发之手把手教你写ButterKnife框架(三)
  • Android开发之手把手教你写ButterKnife框架(二)
  • Android开发之手把手教你写ButterKnife框架(一)

#Android性能优化#

  • Android 性能优化 ~ 内存优化
  • Android 性能优化 ~ 包体积优化实战

#NDK开发#

  • C++ 程序设计
  • Android NDK ~ 基础入门指南
  • Android NDK ~ Java 和 Native 交互

#跨平台开发#

Flutter:

  • (一)Flutter学习之Dart变量和类型系统

  • [(二)Flutter学习之Dart展开操作符 和 Control Flow Collections

    ](https://chiclaim.blog.csdn.net/article/details/94617048)

  • (三)Flutter学习之Dart函数

  • (四)Flutter学习之Dart操作符、控制流和异常处理

  • (五)Flutter学习之Dart面向对象

  • (六)Flutter学习之Dart异步操作详解

  • (七)Flutter学习之开发环境搭建

  • (八)Flutter 和 Native 之间的通信详解

  • (九)Android 项目集成 Flutter 模块

  • (十)Flutter FutureBuilder 优雅构建异步UI

  • 更新中…

#经典书籍#

  • 《Android开发艺术探索》
  • 《Android源码设计模式》
  • 《Android自定义控件开发入门与实战》
  • 《Android软件安全与逆向分析》
  • 《Android群英传》
  • 《Java编程思想》
  • 《Java核心技术:卷I基础知识》
  • 《Java8实战》
  • 《重构:改善既有代码的设计》
  • 《Java并发编程实战》
  • 《深入理解Java虚拟机》
  • 《Effective Java 第二版》
  • 《Java与模式》
  • 《代码整洁之道》
  • 《剑指Offer名企面试官精讲典型编程题》
  • 《阿里巴巴-深入探索 Android 热修复技术原理》
  • 《Kotlin In Action》
  • 《HTTP权威指南》
  • 陆续整理网盘开放中…

找到了一个非常好的安卓开发技术栈导航相关推荐

  1. Web前端开发大系概览 (前端开发技术栈)

    前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...

  2. 物联网初探-开发技术栈

    概述 大体上来说,一个典型的物联网项目主要由云.管.端三大部分组成. 端,即终端,它负责真实世界的感知和控制,是物联网的最底层: 管,即管道,它是物联网的网络核心,一切数据和指令均靠管道来传输,它是物 ...

  3. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈...

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先 ...

  4. .Net Web开发技术栈

    有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...

  5. 《程序员》6月精彩内容:物联网开发技术栈

    作为互联网技术的进化,物联网开发并非孤立的技术栈,而是向上承接了互联网,向下统领了嵌入式硬件开发的一个承上启下的全栈开发技术. 作为正在快速进化中的新互联网技术,我们并不能预测物联网技术栈最终的样子: ...

  6. .Net Web开发技术栈 收藏

    原文:http://www.cnblogs.com/1996V/p/7700087.html#!comments 有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎 ...

  7. 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照

    上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...

  8. windows C++客户端开发技术栈(C++应用开发技术栈)

    源于对腾讯招聘要求的思考 下面的岗位职责来源于,腾讯QQ-windows客户端招聘要求,40-70K,16薪 如果你阅读了后面的windows c++客户端开发技术栈,就会知道: 1.了解window ...

  9. web开发技术栈(框架)总结

    原文 web开发技术栈(框架)总结 Bootstrap-Layui-Amazeui-jQuery-vue-react-AngularJS-ci-Thinkphp-Yii-Laravel-Node-Dj ...

最新文章

  1. ROS学习之包的概念
  2. java中synchronized的用法详解
  3. boost::graph模块实现资源受限最短路径算法的示例使用
  4. 通过SSL发送的Java邮件
  5. JAX-RS Bean验证错误消息国际化
  6. STM8 ADC转换模式-------带缓存的连续模式
  7. 嘉楠发布阿瓦隆浸入式冷却矿机A1066I
  8. Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)
  9. 熟悉JDK8新特性,“Lambda表达式与函数式接口”
  10. Mysql查询语句使用select.. for update导致的数据库死锁分析
  11. 费波纳奇数c语言,费波纳切数列用C语言怎么编程
  12. WINCCV7.5入门指南学习简介
  13. 拆解iPhone6S---ESM
  14. 19-离线词典生成原理、图像描述子用BoW转化为BoW向量和FeatureVe
  15. 陈风莲(帮别人名字作诗)
  16. 修改远程计算机 时间,Pubwin服务器时间修改的四种办法
  17. 讯飞AIUI语音初体验
  18. 在word或wps中使用宏代码自动生成手写体
  19. 不知道如何回复审稿人意见?回复模板来了!
  20. 实时空气质量监测解决方案

热门文章

  1. 数据结构学习笔记(0X08)--散列表
  2. android专业相机功能,安卓党别笑!iPhone也能用专业模式拍照!
  3. 企业纷纷迈入数字化转型之路,未来五年数字化发展的趋势是什么?
  4. linux skype安装路径,如何在Linux上安装最新Skype
  5. 我来告诉你OFD格式发票用什么软件打开
  6. 【QQ音乐Api】移花接木 打造自己的音乐电台
  7. Http 历险记之 Nginx、Tomcat(上)
  8. Java、JSP中华美食网网站设计
  9. 摩尔纹的原理与产生条件(写的较好)
  10. 【houdini vex】在LOP网络中创建面与线