-
fragment的懒加载。
-
一个商场里有一个电影院,你会把厕所建设在哪里,说一下你的理由?
hr面
(鸽了我20分钟,腾讯都是大猪蹄子?哈哈~~开玩笑,面试官真的很忙,有时候换位思考一下,心态好点)
-
自我介绍
-
为什么选择微信?
-
对我们了解吗?
-
愿不愿意来
-
家里的情况
-
什么时候可以来实习,可以实习到什么时候
(入职)
阿里一面
-
自我介绍
-
自己看过的源码,说一下?
-
接下来就EventBus的东西了,还是老问题,优缺点,有没有什么问题,列举了很多场景,我看源码看的比较细,根据自己看过的东西做回答和分析,然后还是,接口回调和观察者模式之间的选择。
-
问我你看过这么多源码,你觉得什么东西最重要?
-
答了源码中看到了大量的反射使用,多线程方面,Collections,数据结构这些。
-
问我多线程,引申出handler,我从handler的源码去解释
-
handler引申出的内存泄漏,为什么静态内部类不会持有外部对象
-
接下来还是场景题,图片框架的实现,涉及到的Lru缓存,线程池,线程池该如何分配线程数量。
-
APP从打开到显示之间发生的事情。
-
为什么java可以调用c/c++的函数,调用jni发生的事情说一下。
-
动画种类,使用动画的步骤,有没有看过动画框架的源码。
(面试官说我在应用层上基础知识很好,懂得去看源码学习,但是android深度不够,应该要往Framework和c/c++那边学习)
阿里二面
1.自我介绍
2.还是自己对EventBus的理解。
3.学习Android的过程
4.项目遇到的问题,怎么解决的
5.回答过程中提到csrf,问原理
6.对公司有什么要求
7.IPC
8.socket的连接过程
(说我这方面的技术和兴趣不错,但是缺少大型项目的经验,考虑不够全面,如果有一个机会给我就很好了。)
阿里三面
-
自我介绍
-
详细说我第一个项目
-
http缓存
-
如何把ip地址存储在一个int 变量里面?
-
详细介绍第二个项目
(30min,面试官说我自己对技术的热情很不错,让我保持下去,口头直接让我过,让我等hr)
阿里HR面
- 上来突然莫名其妙问我一堆与专业无关的,还问我这个专业跟计算机有什么关系(我是软件工程),
我:????
我有点懵(原来看错简历了)
-
从小到大最有压力的事
-
数学怎么样
-
你考上这个学校是正常发挥吗? 我回答的是!/(ㄒoㄒ)/~~ 很凉
-
什么事情让你觉得自己喜欢移动端
-
哪里人,想去哪里
(hr面只有15分钟,感觉不太好)
(后来收到了offer意向书,整个流程横跨两个月)
总结
–
我也不是什么大佬,最后唠叨几句。希望各位没拿到offer的真的不要灰心,可能你之前所有的失败都是你成功的垫脚石,我面头条一面挂的时候也曾经自闭过,但更多的是反思,如何调整自己的复习计划。在复习的时候一定要有自己的强项,能把这个知识点理解的很透彻并且把相关的知识点拓展出去。另一方面就是让面试官看到你对这个岗位的热情,能够自发性地去学习与岗位相关的东西。
讲一下面试一些必备的技能
1. 一般情况下第一轮都是基础面试,需要扎实的基础
-
最常用的Android 基础知识
-
Java 基础知识
-
了解一些 常用东西的原理,例如:handler, thread 等
-
项目中的技术点
2. 第二轮的时候需要了解更深层次的东西
-
Android 事件分发机制原理
-
Android 绘图机制原理
-
WindowManager 的相关知识
-
进程间传输方式
-
Java 内存管理机制
3. 能进入第三轮基本没什么问题,但是要注意以下问题
-
该轮一般是 老大或者部门负责人,问的问题一般都看 深度与广度
-
当问及薪水的时候,要说一个合适的,小公司随意,大公司一定要慎重,当心里没底的时候,可以告诉对方,让对方给一个合理的薪资。一般都是在原工资基础之上增长,听猎头说一般涨幅都在15%-30%,超 NB 的可以要30%及以上,如果感觉自己还不错的,挺厉害的,建议最高20%,一般人就定在15% 左右最靠谱。公司内部一般有一套机制,根据公司情况而定。
-
我们的面试原则就是拿到合理薪资,得到 offer
-
个人发展情况,这个问题很难回答,如果和公司方向不符合,极有可能和公司无缘。建议多试探性的问问公司缺少什么,你能否给予公司对应的东西。当然对于有自我追求的人,那可以放心大胆的提。我的方向就是架构师,哈哈哈,挺极端的,别学我哦。我感觉选择都是双向的,因此我知道自己需要的是什么。
-
你最擅长什么UI 还是其他什么?这个问题更不好回答。你要说你擅长 UI,是不是意味着你其他能力就不行?虽然我不知道面试官的用意,但是我能感觉到,这个问题不是那么好回答,我会回答说自己都行,来什么业务接什么需求。可能回答不太好,总之和公司的职位吻合就行,这样总不至于出错吧。
那么该如何复习?
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些2019-2020BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题
等等,可以很好地帮助我们深刻理解Android相关知识点的原理以及面试相关知识。
这份资料把大厂面试中常被问到的技术点整理成了 PDF ,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
最后
现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!
Android架构师之路很漫长,一起共勉吧!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!