Android知识体系总结(全方面覆盖Android知识结构,面试&进阶 Version-1.0.1 时间:2018.09)
基本内容 :
- Android基础知识:基础涵盖Android知识体系,四大组件,Fragment,WebView,事件分发,View绘制…
- Java基础知识&高阶知识点:基础部分不谈了,高阶部分:泛型,反射,Java虚拟机…
- 算法与数据结构:链表,堆,栈,树…
- Android常用框架:异步,网络,图片加载,内存优化,依赖注入,数据库等框架
- Android前沿技术:Android组件化,热更新,插件化,消息推送,AOP面向切面编程,Flutter(谷歌的移动UI框架)…
- 源码分析:Android源码分析,启动一个app的源码分析,常用框架源码分析,Java源码分析,集合源码分析…
- 网络基础:五层网络模型,三次握手&四次挥手,请求头&响应头,Socket&WebSocket…
内容实在太多,这里列不完,请接着往下看吧 -_-
版本1.0.1更新日志:
更新内容:这一次更新改动非常大,Java高阶知识点,Android几乎涵盖所有知识点,算法与数据结构变得更加完善了,详细内容请下载文章中2018年9月份更新的脑图。
更新说明:笔者正在更新升级当中,请耐心等待笔者的这一次升级,希望不会让你失望!谢谢你的关注。如果对你有帮助,请您点个赞,谢谢!还有些内容还没有更新,但知识体系图已经更新完毕,这需要笔者利用下班时间或者放假时间进行整理,请体谅,欢迎持续关注。你或许感到很疑惑,面试会问这么多吗?为了不断完善自己的Android知识体系,笔者也只能这么干了,我也考虑到对于一些即将面试的同学而言这份面试总结内容过多,但是木有关系,笔者会在每一个知识点后面加上是否属于面试范围的标记,其实笔者写这篇文章的初衷确实是为了面试,但是在版本1.0.0中有很多学者反映,只把总结的结论丢在那里,真的是摸不着头脑,有点懵逼,所以为了让这一份总结容易理解,适应面试,适应学习,适应进阶,所以笔者索性把Android知识体系全部概括出来,对于面试者,不只是把结论放在那里,重在理解,才能流畅答出面试官问的内容,对于学习进阶Android的学者,争取将知识点概括完善,当然那是不可能的,但是尽量做吧。对于那些要面试的知识点,笔者会带上面试的标记,不带面试的标记,那么就是属于学习和进阶的知识点。下个版本(Version-1.0.2),笔者将针对面试的知识点在末尾列举出高频率面试题,这需要很多时间,要看很多博主的面试经历总结整理出来,估计今年过年的时候整理吧。
本篇文章有以下目的:
【1】Android程序猿的面试(初级,中级,高级,资深),拿到满意的offer。
【2】Android程序猿学习进阶。
注意:因为笔者是列出所有的Android知识点,因此面试不需要看那么多内容,如果是面试的知识点。笔者会加上标记Face,而如果不是面试的知识点,笔者会加上No标记,它是要学的东西;然后笔者将Android面试者或者面试者分为4个等级,初级A1,中级A2,高级A3,资深A4,如果这个知识点是所有等级的范围,那么笔者将会以all标记上。因此进阶路线就是A1->A2->A3->A4。也是面试者挑选的复习范围,假如你是中级程序员,那么你面试要看的内容就是包含A2&Face的标记。如果笔者觉得文章更新的还不够完善,笔者会添加Update标记,当然,这是给笔者自己的,目的是快速定位此Android知识总结中的要改进的地方,但是那些Update标记还是会值得一看,你也可以查查类似的资料看看,不一定非得看笔者的;笔者给的一份脑图应该是涵盖Android基本上所有的知识点,如果你觉得笔者总结很辛苦,那么你去下载笔者上传到CSDN的那份脑图,给笔者积分作为奖励,当然你还可以去百度云下载,自由选择。
- all : 所有的Android工程师都看。
- A1: 初级Android工程师。
- A2: 中级Android工程师。
- A3: 高级Android工程师。
- A4: 资深Android工程师。
- Face: 是面试的知识点。
- No: 面试基本遇不到。
- Update: 还可以总结的更加完善,不过得等到下个版本。
以下是Android面试系列文章知识体系图以及文章的具体链接:
Android面试系列文章知识体系图:
2018年3月份(Version-1.0.0):
- 链接:pan.baidu.com/s/1qoyOI14b… 密码:4qv9、
- CSDN下载链接:download.csdn.net/download/cl…
既然选不了0积分下载,最低需要2积分下载,CSDN官方规定最少2积分,对不起读者了
2018年9月份(Version-1.0.1):
- 链接:pan.baidu.com/s/1g7WE-FoX… 提取码:mg78
- CSDN下载链接:download.csdn.net/download/cl… (5积分,这次积分高了些,就算对笔者辛苦整理的奖励吧,但是你没有积分的话,去百度云下载吧,就在上面)
当然这次升级添加了很多东西,你可能疑问面试为什么会有这么多东西,其实笔者的这份不仅仅可以用来面试,当作是进阶路线也是可以的,理论上讲这份完全是可以应付面试的,希望对你有所帮助。关于这份面试知识体系的说明请看后面。
以下是知识体系图的部分:
脑图非常大,这里列不完,请读者下载笔者给的脑图链接,然后在详细看每一个知识体系结构。
详细内容,读者可以下载上述百度云分享链接的那个文件,并使用Xmind8打开。
注意:对于正在入门学习Android的同学,请看笔者另外一篇文章:blog.csdn.net/clandellen/… (里面介绍了如何去自学Android,有Java视频教程,Android Studio版本的Android视频教程),Android基础部分对你来说可以去看一看,对于1到2年开发经验的读者,基础部分,必须掌握和明白,而有些部分,你可以选择性去看和掌握,比如:Android源码部分,你不必去弄清android系统的启动过程,只需要了解init进程什么,Zygote进程是什么,AMS是什么,作用是啥即可,而常用框架源码部分呢,如果你面的公司是有严格要求的,我指的是类似于BAT,你要选择其中3,4甚至5,6个着重去学习,其它的作为了解粗略看一下就行了,http自然不用我说了吧,Java设计模式等,数据结构与算法部分,也不必太耗时间去整明白,知道多线程环境下最安全的单例模式,而且知道一些框架中采用了何种设计模式,比如RxJava采用的观察者设计模式等,能手写冒泡,二分法,最好会快排,知道堆和栈,链表,队列等的特性即可,也要注意合理安排时间,有些链接里文字过多的,粗略的看看,达到能自己说出来重点即可,比如:Android基础部分,对于Context的理解,你需要知道Android中有几种上下文,它们的作用分别是什么即可,而对于3年经验甚至更多的读者,对我而言你已经是个大佬了,首先我要跟你打声招呼:大佬你好,基础部分,经验部分对你而言已经不再是难题,你应该去明白Android系统的启动流程的源码分析,一个app是如何启动等,常用框架的源码至少得弄懂大半,深入源码,并有自己的一套分析思维模式。最后总结:如果你对自己有严格要求,希望你找到offer后,把这篇文章里你不懂的部分还是去好好学习,只有不停的学,才可以让自己更加去胜任平时的工作。
Android基础部分:
1.Android知识体系总结之Android部分之Activity篇(已更新,all&Face)
blog.csdn.net/clandellen/…
2.Android知识体系总结2之Android部分之Broadcast篇(已更新,all&Face)
blog.csdn.net/clandellen/…
3.Android知识体系总结之Android部分之ContentProvider篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
4.Android知识体系总结之Android部分之Service篇(已更新,all&Face)
blog.csdn.net/clandellen/…
5.Android知识体系总结之Android部分之Fragment篇(已更新,all&Face)
blog.csdn.net/clandellen/…
6.Android知识体系总结之Android部分之WebView篇 (已更新,all&Face)
blog.csdn.net/ClAndEllen/…
7.Android知识体系总结之Android部分之Binder机制篇 (已更新,A3&A4&Face)
blog.csdn.net/ClAndEllen/…
8.Android知识体系总结之Android部分之Handler机制篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
9.Android知识体系总结之Android部分之AsyncTask篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
10.Android知识体系总结之Android部分之HandlerThread篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
11.Android知识体系总结之Android部分之IntentService篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
12.Android知识体系总结之Android部分之View绘制机制篇(龟速更新中…可以看看,all&Face)
blog.csdn.net/ClAndEllen/…
13.Android知识体系总结之Android部分之事件分发机制篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
14.Android知识体系总结之Android部分之ListView篇(已更新,all&Face&Update)
blog.csdn.net/ClAndEllen/…
15 Android知识体系总结之Android部分之RecyclerView篇(已更新,all&Face&Update)
blog.csdn.net/ClAndEllen/…
16 Android面知识体系总结之Android部分之ViewPager篇(已更新,all&Face&Update)
blog.csdn.net/ClAndEllen/…
17 Android知识体系总结之Android部分之动画机制篇(待更新…,all&Face)
blog.csdn.net/ClAndEllen/…
18 Android知识体系总结之Android部分之自定义View篇(待更新…,A2&A3&A4&Face)
blog.csdn.net/ClAndEllen/…
19 Android知识体系总结之Android部分之Android中的布局篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
20 Android知识体系总结之Android部分之网络数据解析篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
21 Android知识体系总结之Android部分之Android中的序列化篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
22 Android知识体系总结之Android部分之Android系统版本特性篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
23 Android知识体系总结之Android部分之JNI和NDK篇(已更新,A2&A3&A4&Face)
blog.csdn.net/ClAndEllen/…
24 Android知识体系总结之Android部分之Android本地存储篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
25 Android知识体系总结之Android部分之Intent篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
26 Android知识体系总结之Android部分之对话框篇(已更新,all&No)
blog.csdn.net/ClAndEllen/…
27 Android知识体系总结之Android部分之通知篇(已更新,all&No)
blog.csdn.net/ClAndEllen/…
28 Android知识体系总结之Android部分之Application类篇(已更新,A2&A3&A4&Face)
www.jianshu.com/p/f665366b2…
29 Android知识体系总结之Android部分之Context的理解篇(已更新,A2&A3&A4&Face)
www.jianshu.com/p/94e0f9ab3…
30 Android知识体系总结之Android部分之Window的理解篇(待更新…,A2&A3&A4&Face)
blog.csdn.net/yhaolpz/art…
31 Android知识体系总结之Android部分之系统结构与系统源码目录篇(已更新,all&Face)
blog.csdn.net/itachi85/ar…
32 Android知识体系总结之Android部分之冷启动&热启动篇(待更新…,A2&A3&A4&Face)
33 Android知识体系总结之Android部分之Andrid中的锁屏篇(待更新…,all&No)
34 Android知识体系总结之Android部分之悬浮窗篇(待更新…,all&No)
blog.csdn.net/ClAndEllen/…
35 Android知识体系总结之Android部分之蓝牙&相机篇(待更新…,all&No)
36 Android知识体系总结之Android部分之音视频开发篇(待更新…,all&No)
37 Android知识体系总结之Android部分之手机定位篇(待更新…,all&No)
38 Android知识体系总结之Android部分之点九切图篇(待更新…,all&No)
39 Android知识体系总结之Android部分之Material Design篇(待更新…,all&No)
40 Android知识体系总结之Android部分之Android Drawable篇(待更新…,all&No)
41 Android知识体系总结之Android部分之内存优化&布局优化篇(待更新…,all&Face)
42 Android知识体系总结之Android部分之屏幕相关知识&屏幕适配篇(待更新…,all&Face)
43 Android知识体系总结之Android部分之进程间通信篇(待更新…,A2&A3&A4&&Face)
44 Android知识体系总结之Android部分之图片开发&Bitmap&高清大图显示篇(待更新…,all&Face)
Java部分
45 Android知识体系总结之Java部分I/O流篇
blog.csdn.net/ClAndEllen/…
46.Android知识体系总结之Java部分多线程流篇
47.Android知识体系总结之Java部分异常篇
blog.csdn.net/ClAndEllen/…
48.Android知识体系总结之Java部分注解篇
blog.csdn.net/ClAndEllen/…
49.Android知识体系总结之Java部分类加载器篇
blog.csdn.net/ClAndEllen/…
50.Android知识体系总结之Java部分反射机制篇
blog.csdn.net/ClAndEllen/…
51 Android知识体系总结之Java部分泛型篇
52 Android知识体系总结之Java部分集合框架篇
53 Android知识体系总结之Java部分设计模式篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
54 Android知识体系总结之Java部分Java虚拟机篇
算法和数据结构部分(注意面试的时候回答不上来,千万别放弃,因为Android对算法的要求是次要的,也就是说算法能力并不能决定你拿不拿得到offer,当然也必须具备一些基本的算法能力,比如:冒泡,选择排序,二分查找啊等)
55 Android知识体系总结之算法与数据结构部分之算法的效率篇
56 Android知识体系总结之数据结构之链表篇
blog.csdn.net/lishuzhai/a…
57 Android知识体系总结之数据结构之队列篇(已更新,all&Face)
blog.csdn.net/javazejian/…
58 Android知识体系总结之数据结构之栈篇
blog.csdn.net/javazejian/…
59 Android知识体系总结之数据结构之堆篇
blog.csdn.net/wypblog/art…
60 Android知识体系总结之算法之排序算法
blog.csdn.net/happy_wu/ar…
61 Android知识体系总结之算法之查找算法
blog.csdn.net/three_man/a…
62 Android知识体系总结之数据结构之树篇
blog.csdn.net/u011240877/…
63 Android知识体系总结之算法与数据结构部分之其它算法篇(待更新)
操作系统
64 什么是进程?什么是线程?进程和线程之间的区别
65 Windows剪切板的和Android的进程间通讯是不是类似
实战经验部分:
66 Android知识体系总结之实战经验部分之Android Stdio目录结构篇
blog.csdn.net/ClAndEllen/…
67 Android知识体系总结之实战经验部分之代码版本控制篇
blog.csdn.net/ClAndEllen/…
68 Android知识体系总结之实战经验部分之Android构建流程篇
blog.csdn.net/ClAndEllen/…
69 Android知识体系总结之实战经验部分之gradle篇
blog.csdn.net/ClAndEllen/…
70 Android知识体系总结之实战经验部分之proguard混淆篇
blog.csdn.net/ClAndEllen/…
71 Android知识体系总结之实战经验部分之Android屏幕适配篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
72 Android知识体系总结之实战经验部分之Android多渠道打包与apk签名篇
实战经验部分之常用框架部分
73 Android知识体系总结之常用框架之网络框架篇
blog.csdn.net/clandellen/…
74 Android知识体系总结之常用框架之异步框架篇
blog.csdn.net/ClAndEllen/…
75 Android知识体系总结之常用框架之图片加载框架篇
blog.csdn.net/ClAndEllen/…
76 Android知识体系总结之常用框架之依赖注入框架篇
blog.csdn.net/clandellen/…
77 Android知识体系总结之常用框架之内存优化框架篇
blog.csdn.net/ClAndEllen/…
78 Android知识体系总结之常用框架之数据库存储框架篇(已更新,all&Face)
blog.csdn.net/ClAndEllen/…
实战经验部分之网络理论基础
79 Android知识体系总结之Android所具备的网络基础篇
blog.csdn.net/ClAndEllen/…
实战经验部分之调试能力
80 Android知识体系总结之异常处理ANR异常篇
blog.csdn.net/ClAndEllen/…
81 Android知识体系总结之异常处理OOM异常篇
blog.csdn.net/ClAndEllen/…
82 Android知识体系总结之内存管理之Bitmap的加载篇
blog.csdn.net/ClAndEllen/…
83 Android知识体系总结之内存管理之UI卡顿篇
blog.csdn.net/ClAndEllen/…
84 Android知识体系总结之内存管理之内存泄漏篇
blog.csdn.net/ClAndEllen/…
85 Android知识体系总结之内存管理篇
blog.csdn.net/ClAndEllen/…
86 Android知识体系总结之内存管理之冷启动过优化及其他优化篇
blog.csdn.net/ClAndEllen/…
87 Android知识体系总结之Android代码分析工具:Lint检查
blog.csdn.net/ClAndEllen/…
88 Android知识体系总结之Android代码编程规范
89 Android知识体系总结之实战经验部分之调试能力之测试篇
实战经验部分之架构搭建篇
90 Android知识体系总结之之架构搭建之MVC模式篇
blog.csdn.net/ClAndEllen/…
91 Android知识体系总结之之架构搭建之MVP模式篇
blog.csdn.net/ClAndEllen/…
92 Android知识体系总结之之架构搭建之MVVM模式篇
blog.csdn.net/ClAndEllen/…
93 Android知识体系总结之之架构搭建之谷歌官方推荐架构TODO-MVP篇
www.jianshu.com/p/8b81493d1…
前沿的技术篇
94 Android知识体系总结之前沿的技术之Android组件化开发篇(待更新,A2&A3&A4&Face)
95 Android知识体系总结之之Android插件化&热更新篇
插件化
热更新
96 Android知识体系总结之前沿的技术之进程保活篇(待更新,A2&A3&A4&Face)
blog.csdn.net/ClAndEllen/…
97 Android知识体系总结之Kotlin语言面试篇
blog.csdn.net/ClAndEllen/…
98 Android知识体系总结之Android消息推送篇:
www.jianshu.com/p/b61a49e02…
99 Android知识体系总结之面向切面编程AOP篇:
blog.csdn.net/innost/arti…
100 Android知识体系总结之谷歌最新跨平台UI框架Flutter篇
谷歌的移动UI框架Flutter
由于笔者没有写源码分析文章的习惯,只是看源码的时候,自己大脑转了一遍,但没关系,我这里会贴出一些高质量大神写的源码分析的文章,希望读者被面试官问道的时候能够从容应答。
##Java 源码篇
101 Android知识体系总结之LRU算法有关的集合LinkedHashMap的源码探究
blog.csdn.net/justloveyou…
102 Android知识体系总结之Java常用集合源码探究
ArrayList:
blog.csdn.net/gulu_gulu_j…
…不止这些,还有很多,请读者耐心等待笔者总结
Android源码篇
103 启动一个app的源码分析
104 Android中的main()方法在哪里?
…
弄懂Android源码,你需要理解什么是init进程,什么是Zygote进程,SystemServer,AMS等等,这是需要时间去理解的:
init进程的启动流程:
blog.csdn.net/itachi85/ar…
Zygote(受精卵进程)的启动流程:
blog.csdn.net/itachi85/ar…
SyetemServer进程启动过程:
blog.csdn.net/itachi85/ar…
Launcher启动过程与系统启动流程:
blog.csdn.net/itachi85/ar…
程序启动的流程:
blog.csdn.net/itachi85/ar…
blog.csdn.net/itachi85/ar…
源码分析也不能完全按照大神的角度去看,有时候自己尝试去理解,就会发现不一样的地方,觉得世界一下被打开了,笔者在研究广播机制的源码的时候,就有这样的感觉,研究的时候,笔者终于知道为什么系统广播不安全,而本地广播那么安全高效,因为系统广播的通信机制使用的Binder,而Binder是走的系统,通过AMS注册的传播广播信号,而本地广播是通过Handler机制实现的通信,这就意味着,本地广播的信号肯定不会发送到应用之外,由于采用的Handler机制,所以高效就不足为奇了。 笔者曾被一个学弟提问道,研究源码有什么好处?除了平时能装逼,应付面试,还有什么?其实研究源码好处不止有这些,因为源码是比我们还要厉害的大神写出来的,我们可以学习这些源码里的一些实现逻辑,把这些实现逻辑搬到自己的代码中,这就厉害啦,有时候我们碰到难以实现的模块,我想源码或许会无形当中会提供一些解决方案,GitHub上那些Star比较多的项目的博主,我想他们肯定有看源码的习惯。
Android框架源码篇
105 Android知识体系总结之网络框架OkHttp源码分析篇
www.jianshu.com/p/27c1554b7…
106 Android知识体系总结之网络框架Retrofit源码分析篇
www.jianshu.com/p/0c055ad46…
107 Android知识体系总结之图片框架Glide源码分析篇
blog.csdn.net/yulyu/artic…
108 Android知识体系总结之图片框架Picasso源码分析篇
blog.csdn.net/woliuyunyic…
109 Android知识体系总结之内存分析框架LeakCanary源码分析篇
blog.csdn.net/cloud_huan/…
110 Android知识体系总结之依赖注入Butterknife源码分析篇
blog.csdn.net/ta893115871…
111 Android知识体系总结之依赖注入Dragger2源码分析篇
www.jianshu.com/p/eef7fa813…
112 Android知识体系总结之异步框架EventBus源码分析篇
blog.csdn.net/ljd2038/art…
113 Android知识体系总结之异步框架RxJava源码分析篇
gank.io/post/560e15…
114 Android知识体系总结之图片框架ImageLoader框架源码分析
blog.csdn.net/xiaanming/a…
以下知识不是纯面试知识
高级进阶之高并发编程
高级进阶之Java虚拟机探究
一个GitHub受欢迎的Android第三方库整理的网站,读者可以收藏一下,高效率开发:
hndeveloper.github.io/2017/github…
笔者上面没能将Java,Kotlin,算法与数据结构总结完善,当然这也在笔者的规划之中。
Java知识体系
算法与数据结构知识体系
Kotlin知识体系(待整理)
Python知识体系(待整理)