最近面试了一位五年的 Android 开发,一问三不知!还反怼我

面试时我打算聊点基础的,先打开一下话题,结果发现他们都对于开发中很基础的原理问题很不清楚,比如说:

  • Activity 的启动流程?

  • Handler通信原理?

  • 进程的优先级?

上面几个问题没有一个是**“造火箭”**的吧,结果发现,这些很基本的问题,他们普遍都答得很模糊,或者支支吾吾。其中,一个候选人的反问,令我印象特别深刻,他说:

上面的问题我虽然都不懂,但是我都工作五年了,如果我不能胜任工作,那你告诉我,我这5年经验是怎么来的?

再说了,做 Android 开发,说到底,还不是对着产品项目输出原型,然后CRUD吗?

遇到问题网上搜索一下,再不行就群里问一下,而且我又不找什么百万日活APP的Android开发,面试题不都是这样吗,还能有什么别的花样?

听完我沉思了很久,想着做为一个高级开发,如果连Activity的启动流程都说不清楚、Handler机制的原理都不理解,只会对着产品原型CRUD,测试不提bug,代码都不想复盘多看一眼的话,试问谁又愿意和这样的“Android高级大佬”一起干活?

其实我想了一下,他之所以有这样的想法,很大程度取决于他的经历,长年在传统行业,或者“小作坊”,平时就两三个 Android 开发,大家都是“难兄难弟”的水平。让他认为,Android 开发,就是对着产品原型CRUD,年限上去了,就是高级开发。

思维一旦形成,就很难改变。但是,互联网是个瞬息万变的行业。

从BAT等各种大厂的应届生招聘薪水就可以看得出,现在应届生的水平越来越6,如果还以为大家都是一样的,都是对着原型CRUD,有问题就把报错信息网上一搜,群里一丢等回复这种方式,迟早给淘汰。即使不做framework开发,基本的原理、源码还是要了解的!

不制造任何焦虑,学习需要的也不是一腔热血,需要的是长期的规划,这里分享一个 Android 架构师成长学习路线,大家可以自行进行查漏补缺和规划:

下面我详细介绍成为架构师必须要学习的知识点:

一、Android 架构师内功心法

Java

  • Java序列化

  • Java泛型

  • Java反射

  • Java并发原理

  • 线程与多线程

  • 线程通信

  • 线程池

  • JVM底层源码

  • GC垃圾回收器

  • 类加载器

  • 内部类

  • 接口

  • Hashmap底层框架

  • Hashmap底层源码

  • Arraylist源码分析

Android基础

  • Activity:启动流程、启动模式、启动周期

  • Fragment:生命周期、通信

  • Service:启动模式、生命周期

  • View:事件滑动、事件分发、自定义View

  • 进程:生命周期、多进程、进程存活、进程保活方案

  • Bitmap:配置、常用操作、BitmapFactory

  • 适配:屏幕适配(今日头条)方案、屏幕适配(刘海屏)方案

  • 消息机制:Handler、工作原理、Looper、AsyncTask、线程池、RecyclerView优化方案

  • 内存泄漏

Android进阶知识

  • ART:预(AOT)编译

  • Apk包体优化:流程、整体、代码优化

  • Hook:流程

  • 架构:MVC、MVP、MVVM

  • Jetpack:Data Binding组件、ViewModel & LiveData组件、流程

  • NDK:JIN基础、NDK开发的基本流程

  • 类加载器

性能优化

  • 启动优化

  • UI渲染优化

  • 崩溃优化

最后

愿你有一天,真爱自己,善待自己。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值