写在前面
记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6、7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈,所以有了这文章。
本文是我对自身的Android编程技能的总结、思考和反省,意在系统地、深入地学习Android的重难点,使自己的能力上一个台阶。下面我将会罗列Android知识体系中比较高频、重要或难懂的知识点,并未来会基于此文章列出的知识点一个一个学习研究,并写成一系列的文章,当做自己的学习总结笔记,也希望童鞋们和我一起学习和交流~
说明:本文不是面试经验谈,而是自我总结。我也不打算像网上很多文章那样只列出点,说出结果,而没说原因,然后死记硬背,知其所以然而不知其然。而我是打算对下面的知识点深入学习,并对每个知识点从源码或举例来写成文章,从而即知其然又知其所以然。我也不知能否做到,但我会坚持努力,当作立个flag吧~
在体系化的学习过程中,博客、书籍、视频课程都是较好的学习手段。
鉴于Android也是基于java语言的,因此很多与java相关的基础也是必须掌握的,比如《深入理解Java虚拟机》、《Effective Java》等相关书籍也是必读的。
Android相关的书籍包括《Android权威编程指南》、《Android开发艺术探索》等,进一步的还可以去阅读Android相关源码,配合《Android源码设计模式解析与实战》等书籍,对阅读源码大有裨益。
如果你觉得自己看书太慢而且难以全部理解,博客不够系统,可以找一套进阶视频学习。没有的话我可以免费分享一套给你
那么如何构建完整的知识体系,深挖Android技术?
很多工作了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:
毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
NDK开发;
未来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
最后看一下**《Android框架体系架构(高级UI+FrameWork源码)》**学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!
学习效率,那么这份学习笔记绝对是你的秘密武器!
[外链图片转存中…(img-1Xu3qRDp-1620577286276)]