中高级工程师不会系统学习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项目学习篇
实战项目学习
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为主)
- 数据结构与算法部分
- 常用的开源库部分
- 计算机网络认识
最后
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!
面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)