构建自己的Android知识体系

2021-01-18  本文已影响0人  潇风寒月

0. 背景

构建一个属于自己的知识体系,能够让我们学到的知识体系化.让自己清楚哪块是自己的知识盲区,哪块已经构建起根基.然后根据实际情况,有针对性的进行模块学习.让自己成为一个合格的Android工程师.

平时看博客或者学知识,学到的东西比较零散,没有独立的知识模块概念,而且学了之后很容易忘.于是我建立了一个自己的笔记仓库 (一个我长期维护的笔记仓库,感兴趣的可以点个star~你的star是我写作的巨大大大大的动力),将平时学到的东西都归类然后放里面,需要的时候呢也方便复习.过了段时间,我觉得这样还是不够好,于是我最近花了点时间,整理了一下Android中的常见知识,画了一张思维导图.更清晰地认识自己的知识边界到底在哪里,哪些东西还不足.

图片看不清楚朋友的可以访问图片源文件,或者查看幕布笔记链接: Android知识体系最新

1. 计算机基础.png 2. Java基础.png 3. Java并发.png 4. JVM虚拟机.png 5. 数据结构与算法.png 6. Android基础.png 7. Android进阶.png 8. 领域专家.png 9. 其他Android相关.png

此知识体系呢只是一个参考,大家可以根据自己的实际情况进行增删(先将笔记保存到幕布,然后就可以进行修改了).然后进行查漏补缺,提升自己~

1. 计算机基础

1.1 计算机网络

1.1.1 计算机网络概述

1.1.2 应用层

1.1.3 传输层(⭐⭐⭐)

1.1.4 网络层

1.1.5 数据链路层

1.2 操作系统(⭐⭐⭐)

1.2.1 操作系统基本功能

1.2.2 Linux系统

1.2.3 补充

1.3 数据库(⭐)

2. Java基础(⭐⭐⭐)

2.1 面向对象

2.2 设计模式

2.3 集合原理

2.3.1 ArrayList

2.3.2 Vector

2.3.3 Stack

2.3.4 LinkedList

2.3.5 HashMap

2.3.6 Hashtable

2.3.7 TreeMap

2.3.8 LinkedHashMap

2.3.9 HashSet

2.3.10 TreeSet

2.3.11 CopyOnWriteArrayList

2.3.12 ConcurrentHashMap

2.3.13 LinkedBlockingQueue

2.3.14 SynchronousQueue

2.3.15 SparseArray

2.3.16 ArrayMap

2.4 反射

2.5 泛型

2.6 注解

2.7 其他

3. Java并发

3.1 线程基础

3.1.1 实现多线程

3.1.2 启动线程

3.1.3 停止线程

3.1.4 线程的6种状态

3.1.5 wait/notify/sleep/join等重要方法

3.1.6 守护线程,优先级等属性

3.1.7 线程安全

3.2 线程安全

3.2.1 各种各样的锁

3.2.2 并发容器

3.2.3 atomic包,6种原子类

3.2.4 ThreadLocal

3.3 管理线程,提高效率

3.3.1 线程池

3.3.2 Future获取运行结果

3.3.3 Fork/Join模式

3.4 线程配合

3.4.1 CountDownLatch

3.4.2 CyclicBarrier

3.4.3 Semaphore

3.4.4 Condition

3.4.5 Phaser

3.5 底层原理

3.5.1 Java内存模型

3.5.2 CAS原理

3.5.3 AQS框架

4. JVM虚拟机

4.1 内存区域

4.2 内存模型

4.3 内存分配回收策略

4.4 Java对象的创建、内存布局和访问定位

4.5 GC

4.5.1 引用计数及可达性分析

4.5.2 垃圾回收算法

4.5.3 G1及ZGC

4.6 类加载机制

4.7 双亲委派模型

4.8 编译器优化

4.8.1 方法内联

4.8.2 逃逸分析

4.9 虚拟机相关

4.9.1 HotSpot及JIT

4.9.2 Dalvik

4.9.3 ART及AOT

4.10 JVM执行方法

4.11 JVM实现反射

4.12 JVM实现泛型

4.13 JVM实现异常

4.14 JVM实现注解

5. 数据结构与算法

5.1 数据结构

5.1.1 栈

5.1.2 队列

5.1.3 数组

5.1.4 链表

5.1.5 Hash表

5.1.6 二叉树

5.1.7 基础排序算法

5.1.8 字符串操作

5.2 算法

5.2.1 分治算法

5.2.2 动态规划

5.2.3 贪心算法

5.2.4 分支限界法

5.3 刷题

5.3.1 CS-Notes剑指Offer题解

5.3.2 CS-NotesLeetCode题解

5.3.3 JsonChao高频题集

6. Android基础

6.1 核心知识点

6.1.1 四大组件

6.1.2 布局和控件

6.1.3 自定义View/ViewGroup

6.1.4 动画和手势

6.1.5 网络

6.1.6 图片加载

6.1.7 文件和数据库

6.1.8 Handler

6.1.9 异步线程池

6.1.10 Resources

6.1.11 Android各版本新特性

6.1.12 adb常用命令

6.2 开源库使用

6.2.1 Retrofit/OKhttp

6.2.2 RxJava

6.2.3 Glide

6.2.4 注解框架

6.2.5 Jetpack

6.3 代码管理

6.3.1 Git

6.3.2 Codereview

6.3.3 代码风格

6.3.4 单元测试

6.4 性能优化

6.4.1 快-流畅的体验

6.4.2 稳-稳定

6.4.3 省-省电/流量

6.4.4 小-安装包小

7. Android进阶

7.1 核心知识点

7.1.1 多进程

7.1.2 View绘制

7.1.3 事件分发

7.1.4 消息队列

7.1.5 Activity难点

7.1.6 Service难点

7.1.7 BroadcastReceiver难点

7.1.8 ContentProvider难点

7.1.9 AsyncTask原理

7.1.10 RemoteViews

7.1.11 Window和ViewRootImpl

7.1.12 刁钻问题汇总

7.2 开源库原理

7.2.1 OkHttp

7.2.2 Retrofit

7.2.3 RxJava

7.2.4 Glide

7.2.5 LeakCanary

7.2.6 GreenDao

7.2.7 ARouter

7.3 Gradle

7.3.1 前置知识

7.3.2 Groovy

7.3.3 Gradle构建流程

7.3.4 GradlePlugin

7.3.5 Gradle构建优化

7.3.6 App构建过程

7.3.7 差异化打包

7.4 初级架构

7.4.1 设计模式

7.4.2 MVC,MVP,MVVM

7.5 JNI

7.5.1 JNI基础

7.5.2 NDK基础

7.6 安全

7.6.1 dalvik沙盒机制

7.6.2 逆向工具:dex2jar,jadx,jd-gui

7.6.3 smail&apktool

7.7 动态化

7.7.1 前置知识

7.7.2 热修复:nuwa&Tinker

7.7.3 插件化:VirtualAPK

7.8 组件化

7.8.1 好处

7.8.2 跨组件通信

7.9 编译插桩

7.9.1 AOP

7.9.2 ASM

7.10 Framework

7.10.1 系统服务

7.10.2 应用进程

7.10.3 四大组件启动原理

7.10.4 UI体系

7.10.5 进程通信

7.10.6 线程通信

7.10.7 其他

8. 领域专家

8.1 性能优化方向

8.1.1 1.稳定性优化

8.1.2 2.启动速度优化

8.1.3 3.绘制优化

8.1.4 4.内存优化

8.1.5 5.包体积优化

8.1.6 6.网络优化

8.1.7 7.IO优化

8.1.8 8.存储优化

8.1.9 9.耗电优化

8.2 基础架构方向

8.2.1 Android工程实践

8.2.2 Gradle自动化构建

8.2.3 编译插桩技术

8.2.4 Android架构

8.2.5 Android热修复

8.2.6 Android插件化

8.2.7 Android核心源码

8.3 NDK、音视频

8.3.1 C

8.3.2 C++

8.3.3 NDK基础

8.3.4 顶级公司核心技术

8.3.5 Android音视频

8.3.6 图像处理技术

8.3.7 计算机视觉处理技术

8.4 大前端

8.4.1 前端基础

8.4.2 Flutter(⭐⭐)

8.4.3 ReactNative

8.4.4 小程序

8.4.5 性能优化

9. 其他Android相关

9.1 Koltin(⭐⭐)

9.1.1 基础部分

9.1.2 高级部分

9.2 Python(⭐)

9.2.1 基础

9.2.2 函数

9.2.3 高级特性

9.2.4 函数式编程

9.2.5 模块

9.2.6 面向对象编程

9.2.7 错误,调试,测试

9.2.8 IO编程

9.2.9 进程和线程常用内建模块

9.2.10 常用第三方模块

9.2.11 网络编程

9.2.12 数据库

9.2.13 异步IO

写了个python脚本,将幕布思维导图转成markdown并标上序号. 有兴趣的可以在这里看源码

参考资料

感谢以上几位大佬

上一篇 下一篇

猜你喜欢

热点阅读