95%Android开发者已收藏的十大开源库,瞬间高大上了!
中高级工程师不会系统学习Android开发?看看这份Android知识体系总结(BAT面试&高级进阶)
> 此篇文章是**初中高级工程师**学习文章,知识体系较为完整。有如下特点:
> [1]知识结构全面
> [2]跟随当下技术潮流实时更新
> [3]可用于面试 & 学习
> [4]知识分为文字部分和视频部分,任性选择
> [5]正确的职业规划
> [6]方便工作过程中遗忘知识点快速查询
这份知识体系大纲包括:
### **Android部分:**
* 四大组件篇
Activity
BroadcastReceiver
ContentProvider
Service
* 第五大组件篇
Fragment
* 对话框 & 弹框 & 悬浮窗 & 通知篇
Dialog
PopWindow
DialogFragment
Notification
* Android UI控件篇
基础布局
基础控件
高级控件(ListView,RecyclerView,ViewPager,WebView...)
自定义控件(包含很多其它知识)
?Android坐标系
?Android的角度与弧度
?View绘制机制
?View事件分发
?Android动画机制
?Canvas类
?Path类
贝塞尔曲线
......
原生控件源码分析
* Android系统架构篇
系统架构
系统版本特点 & 区别
* Android通信篇
线程间通信框架Handler
AsyncTask
HandlerThread
IntentService
进程间通信
* Android网络编程篇
网络请求
Token & Session & Cookie三者联系与区别
数据解析[Json,XML]
......
* Android数据持久化篇
文件存储
key-value存储[SharePreference,MMKV(腾讯)]
数据库存储[SQL语句,SQLite]
序列化
* Android 原生音视频图片开发[非JNI]
图片开发(Bitmap)
视频开发[GsyPlayer,JiaoZiPlayer...]
音频开发[MediaPlayer]
* Android特殊知识点【不知道如何分类的知识点】
gradle
蓝牙
定位
SDK开发与接入
Drawable
......
* Android必须掌握的*
异步通信[EventBus,RxJava]
图片加载[Glide,Picasso,Fresco]
内存优化[LeackCanary,BlockCanary]
依赖注入[ButterKnife,Dagger]
数据库*[LitePal,GreenDao...]
* 项目架构篇
MVC & MVP & MVVM
组件化
JetPack
* Android高级进阶篇
UI绘制过程
一个app启动过程
Android 动画机制
View事件分发
热更新 & 插件化
Handler源码分析
......
* Android优化篇
内存优化
布局优化
UI卡顿优化
UI适配优化
apk安全优化
* Android职业方向篇【这是笔者新加入的,对于Andorid开发者而言非常重要,要有自己的职业规划】
资深UI工程师[自定义控件,源码方向]
Android底层开发工程师[C++音视频/图像算法/智能家居]
Android资深架构师[造得一手牛逼的好*,熟悉Framework,Java高级知识等等]
全栈工程师(以Android为核心技术)
* Android工作工具篇
Git/SVN(代码版本控制)
调试工作
测试
* Android工作必备技能篇
玩转Gradle
打包 & 多渠道打包
加固 & 混淆
* Android跨平台开发篇
WebView & 第三方内核
Flutter
* Android项目学习篇
实战项目学习
![](http://www.icode9.com/i/li/?n=2&i=images/20210706/1625585614287286.jpg)
### **Java部分**
**基础部分**
* 操作系统
* 八大基本数据类型&引用类型
* JDK&JRE&JVM篇
* 面向过程&面向对象篇
* 数组
* NIO/BIO/AIO
* Java异常体系篇
* 集合篇
* 多线程篇
* 泛型篇
* Java注解篇
* 反射篇
* Socket
* Java设计模式篇
**高级部分**
* JVM
* AOP
* APT
* 多线程核心知识点
### **Kotlin部分:**
**基础部分**
* 基本数据类型
* 数组
* 集合
* 函数
* 类 & 接口
* 扩展方法
* 空类型安全
* 智能类型转换
......
**高级部分**
* 泛型
* 反射
* 注解
* 协程
### **数据结构与算法部分**
**数据结构部分**
* 时间复杂度 & 空间复杂度
* 数组
* 链表
* 堆
* 栈
* 队列
* 散列表
* 树
**算法部分**
* 排序(8大排序)
* 查找
* 递归 & 回溯算法
* 贪心算法
### **计算机网络部分**
* 五层网络模型
* http[请求头,响应体,三次握手,四次挥手等]
* https
* DNS
* Socket & WebSocket
* 浏览器访问一个url的过程
* Android技术应用【Andorid中能运用的网络知识点】
### **Android面试部分**
* Java部分
* Kotlin部分
* Android部分
* 移动UI框架部分(Flutter为主)
* 数据结构与算法部分
* 常用的开源库部分
* 计算机网络认识
#### **如何做好面试突击,规划学习方向?**
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含**知识脉络 + 分支细节**。
![image](http://www.icode9.com/i/li/?n=2&i=images/20210706/1625585614530596.jpg)
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
![image](http://www.icode9.com/i/li/?n=2&i=images/20210706/1625585614537613.jpg)
**[点击:《Android架构视频+BAT面试专题PDF+学习笔记》](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**即可免费获取~
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。