背景

坐标广州,五年iOS开发经验。

最近面试了一位工作12年的程序员,

这位老哥有3年java开发经验,2年H5,7年iOS开发经验,简历上写着精通Java,iOS,熟悉H5开发。没有具体的技术点。

说实话我很期待这位老哥的面试,于是让人事邀约了他。

老哥面试的气场很足,我也很尊敬他,一大波的自我介绍之后,我们进入了正题。

我问了他Runloop,他说几乎没用过Runloop,于是我给他举了个小例子,老哥给我的答案是百度可以解决。

于是我有问了他KVC,老哥还是说不清楚,于是我问了最基础的copy,weak等几个关键词,依旧说不清楚,老哥依旧那么强势霸气,他给到我的感觉就是“为啥都会做,你别问这些没用的”。

看着他简历上写着,精通安卓iOS开发,熟悉跨平台开发,js交互,我问了一句了解Flutter吗?他说不知道没听过,最后问了一句期望薪资他说25k,我不知道问什么了,于是匆匆结束了面试。

所以,今天,我将献上一份《Android知识图谱》,以自身的经验 & 所见所闻,旨在告诉大家,学习Android,实际上需要学习什么内容,希望你们会喜欢。

核心分析内容

面向Android初、中级开发者,对于要学习的Android理论知识,我认为主要包括:

Android基础 & 常用
Android进阶
与时俱进、热门技术
编程语言
计算机基础
下面,我将对上面的理论知识逐一介绍。

1. Android基础 & 常用

针对Android基础&常用知识,我认为对于初级开发者来说,按照优先级最主要的知识点主要包括:四大组件、布局使用、多线程 & 动画;
具体介绍如下:
安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_android

2. Android进阶

针对Android进阶知识,按照优先级最主要的知识点主要包括:自定义View、性能优化,具体介绍如下:
安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_android_02

3. 与时俱进、热门技术

除了基础日常使用的Android知识,我们还需时刻关注行业动态,与时俱进的学习新技术,如近些年来较为热门的Android新兴技术包括:Flutter、热修复、插件化等;
同时,了解 & 学习常用的开源库也十分重要,常用的开源库主要包括图片加载、网络请求、异步处理的开源库,具体类型如下:
安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_flutter_03

4. 编程语言:Java与Java虚拟机

Android是基于Java的,所以学习Java和Java虚拟机(JVM)十分重要
对于学习Java,我们移动端开发学习Java不需要后端那么深入,我认为作为Android开发者,学习的内容包括:语言特性、基础使用、集合类&机制。具体介绍如下:
安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_android_04

近年来新兴的Kotlin大家也可以了解一下,但我认为短时间内是不会完全取代Java

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节

安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_android架构_05

在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。

安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得_flutter_06

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。