Need help with AndroidAll?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

chiclaim
723 Stars 195 Forks Apache License 2.0 386 Commits 1 Opened issues

Description

Android 程序员需要掌握的技术栈:数据结构算法、程序架构、设计模式、性能优化、插件化、热更新、Kotlin、NDK、Jetpack,以及常用的开源框架源码分析如 Flutter、Router、RxJava、Glide、LeakCanary、Dagger2、Retrofit、OkHttp、ButterKnife 等

Services available

!
?

Need anything else?

Contributors list

No Data

最全的 Android 技术栈

内容涵盖绝大部分 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网络编程:

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 核心概念等:

#设计原则与模式

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

#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性能优化

#NDK开发

#跨平台开发

Flutter: - (一)Flutter学习之Dart变量和类型系统 - (二)Flutter学习之Dart展开操作符 和 Control Flow Collections - (三)Flutter学习之Dart函数 - (四)Flutter学习之Dart操作符、控制流和异常处理 - (五)Flutter学习之Dart面向对象 - (六)Flutter学习之Dart异步操作详解 - (七)Flutter学习之开发环境搭建 - (八)Flutter 和 Native 之间的通信详解 - (九)Android 项目集成 Flutter 模块 - (十)Flutter FutureBuilder 优雅构建异步UI - 更新中...

#经典书籍

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.