金九银十新鲜凉经阿里P7Android研发,十年经验跳槽腾讯遭拒
金九银十到了,很多小伙伴已经在面试或者面试的路上~
最近就有位阿里P7级别的Android研发跳槽腾讯,没想到自己十年的开发经验还没用上就遭到面试官拒绝,到底是怎么回事呢?
经过一番沟通了解到,他是在Framework知识上吃了大亏……
掌握 Framework 有什么用呢?
现在热门的技术热修复,插件化,所需要使用到的「欺上瞒下」都需要对 Activity 启动以及与 AMS 交互等非常精通,自然需要利用 Framework的知识。
此外,一些性能相关兼容,监听 MessageQueue排查卡顿,甚至一些系统更新,例如 Android 9 对 hidden API 的限制,你也需要熟知 Framework 才可能找到突破口。
举个例子,比如常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念: ThreadLocal 做什么的? Thread 和 Handler 的关系 为什么不能在子线程更新 UI? idleHandler 什么时候运行? 主线程为什么循环却不会卡死? ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?
再比如说 Android 的卡顿掉帧问题,很多文章都说卡顿是由于主线程耗时造成的,这其实只是一部分,其他的比如: RenderThread 耗时也会导致卡顿 Binder 通信耗时也会导致卡顿 60 fps 下没问题的 app 90fps或者 120fps 下也可能会卡顿 有时候低内存下你主线程读个文件可能都会导致卡顿
但如果你真正明白了卡顿的原理,再面对卡顿问题就不会那么慌了。
所以问题在于哪里?是你对于底层原理的了解。
相信近期有面试的小伙伴也可以感觉得到:现在面试是越来越难了!别说阿里、头条、腾讯这些大厂,就连很多中小公司面试问的都全是原理,其中Framework层相关的知识非常多!
Binder和Handler就更是其中的必问项,绝对是必须要掌握的知识点!
像下面这些面试题就全是高频问题,来看看自己能不能全答上来: Handler 相关面试题:View.post 与 Handler.post 有何不同? 主进程的 Looper 是何时创建的? 线程关联的Looper 是如何与 Handler 绑定的? MessageQueue 中如何提升消息的优先级? 系统中的同步屏障机制是怎样的? Binder相关面试题:Activity 启动时与 AMS 交互,binder 交互的细节是怎么样的? ActivityThread 中的 ApplicationThread 是什么作用? binder 交互过程中涉及到多少个线程? 启动过程中如果想监控 binder 交互的频率,怎么做? binder 交互过程中,想要监控传输数据的大小,防止数据过大造成崩溃怎么做?
既然知道经常会碰到这些问题,那么我们该怎么答才可以获得面试官的青睐呢?
在这里我就分享一套非常系统的开发进阶资料,帮助大家在技术的道路上更进一步。
如果你有需要的话,只需私信我【进阶】即可获取
你可以拿去查漏补缺,提升自身的竞争力。
另外还分享一份由大佬亲自收录整理的学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
当然,你也可以拿去查漏补缺,提升自身的竞争力。
真心希望可以帮助到大家,Android路漫漫,共勉!
如果你有需要的话,只需私信我【进阶】即可获取