码个蛋(codeegg)第 605 次推文

作者: Android架构分享

原文:https://juejin.im/post/5c952b5a6fb9a0710c7039b5

作为去年裁员大军中的一员,为了准备今年的面试真的是勤勤恳恳诚惶诚恐啊。简单介绍一下,目前5年半开发经验,二本毕业,工作地点在上海,面的是Android高级岗,有一个认识前辈内推的。面试之前也对华为做了大量的了解,而且反复刷了不下300道面试专题,面试的时候才发现这些题真是没白刷!

华为的面试基本流程就是群面,技术面,综合面,不同的是华为最后还有英语面

1.群面

群面是分两组讨论汇报。汇报时面试官不会只让一个人说,会指派其他1~2位同学汇报。然后就是补充发言了,这时候要主动说,被面试官叫到回答问题的一般是比较危险的。还有就是挑人评价组内表现情况,被评价表现不好的求生欲一定要强。群面主要是筛差的过程,只要对小组有贡献就行,不能不说话。

2.技术面

第一轮面试大概一个半小时。我们过了一面的一起去吃了个必胜客

做开发的最重要的就是技术面这一关!技术面是与面试官一对一的聊。首先会有3~5分钟的自我介绍,大家在自我介绍的时候一定要挑自己简历以及简历外的亮点说,做过哪些项目,带过团队经历等。重点是!敲黑板!在最后一定要说自己为什么要进入华为,以及对华为的看法!

问过的面试题;

自定义 View!(重点!)

  1. View 的绘制流程。

  2. 自定义View的步骤。

  3. PhoneWindow 实例是在哪个类哪个方法中实例化的?

  4. Selector 是怎么实现的?

  5. View的事件分发机制

  6. 为什么移动后点击事件还在原来的位置?

这是我之前收集的很多面试相关的专题资料,确实很多都问到了。不过这次面试遇到的问题我并没有单独整理出答案来,一方面是时间精力有限,一方面是每次面试都不会是同样的几个问题。不过技术面肯定是一样的,所以梳理出来给大家一个参考,希望对还在找工作的朋友能有帮助。

Android 系统源码方面

  1. 事件拦截和分发进程间的通信方式

  2. 应用的创建启动流程

  3. Handler 是怎么导致内存泄露的

  4. 第三方库的源码,Glide、OkHttp 和 Retrofit MVC,MVP和 MVVM 开发模式优缺点

  5. 常用设计模式理解

  6. Binder 驱动和虚拟机

数据结构和算法,Java 的常用集合和实现原理

  1. ArrayListLinked

  2. HashMap 的实现原理

  3. 缓存淘汰策略

  4. 红黑树和二叉树

  5. 最短路径规划

  6. 海量数据筛选

  7. 手写算法!

性能优化

  1. 如何检测一段代码的执行时间?

  2. 界面卡顿如何修复?

  3. 滑动不流畅怎么处理?

  4. 50fps 有什么办法可以提高到 60fps?

  5. 内存泄露怎么检测?

  6. leakcanay 的原理?

线程和线程池

  1. wait() 和 sleep() 的区别?

  2. 同步锁线程池的参数详解?

  3. AsyncTask 源码参数详解?

.......

我能记得的大概就这些了。再啰嗦一下,简历写的好很重要!多写点干货。面试官根据简历提问,面试官会死抠简历!超级细致!

这些都是我认真刷过几遍的面试题!文末链接会分享给大家;

对于我们做技术的来说,往往接触越深,就越感觉自身的不足。每一天都小心翼翼就怕哪天学不动跟不上发展了

3. 综合面和英语面

综合面可以理解为是技术面的plus版本,还是会死抠简历,只是抠的更细了,也会问一些与工作岗位相关的问题,比如你对这个岗位有什么看法什么的,所以提前要做一些功课了。

还有些朋友会遇到boss面,这个就是聊聊天,比如“你最近遇到什么挫折?”“用英语聊一下今天的面试经历”。

英语面:这个很多普通研发类岗位的面试应该是没有的,但层级高一点的一些岗位就会有了。英语测试分为3部分,测试完需要20min。

(1)句子跟读5个,每个就15个词吧,20秒的时间,时间很充裕。

(2)听力单选测试15个,英语4级水平吧。

(3)话题讲述。

整体的难度偏低。虽然我英语口语很蹩脚,但是对方也没怎么在意这块,毕竟又不是面的客户经理之类需要沟通的岗位。后面蛮开心的收到通知顺利通过了面试考核,等下一步录用签约

4. 如何告别迷茫和焦虑?Offer治百病!

我干这行有5年了,在前公司待了三年了,年薪才20w,还有两年就满三十岁,我以后去干啥?转行是不可能的,干这行再差也能混个20w,干其它行业我不确定能否让挣得足够多

一月份看到了腾讯课堂的【Android架构师系列】免费直播课。犹如醍醐灌顶,整整5年,我当了5年的cv工程师!

然后我开始主动去深入学习源码原理,也反复去巩固java,数据结构算法,设计模式等基础知识。

金三银四,疯狂刷大厂的面试题。刚刚好看到群里有几个大厂的内推机会,根据自己的方向投了华为。

如果你有两三年以上的Android开发经验,希望系统深入的提升技术,可以每周抽时间去腾讯课堂学习Android高级架构技术,这里分享一周课题;

腾讯课堂《Android架构师系列》直播课

适听人群:3-5年Android开发者

4.22-4.28 为期7天每晚8点准时直播

4/22.AES 加密,让我们的app无法破译(有录播)

4/23.爱奇艺高级工程师分享组件化架构框架原理

4/24.Google JetPack中正在改变我们开发模式的数据驱动机制

4/25.无法阻挡的android通信原理手写实现

4/26.Android App保活机制项目实战

4/27.全球首批Android 开发者,分享gradle如何提升android开发效率

4/28.手写一个属于自己的Handler 是一个什么样的体会?

免费参与学习方式;加【腾讯课堂@Android高级】QQ群830344345

为什么免费?

这份视频对很多人的帮助特别大,但是直播课不像书本那样容易传播,收费会造成很多人失去了解和学习的机会。

还没结束!免费参与后还可以领取以下两大架构师助力大礼包!

礼包一; 一线互联网Android面试题含详解(初级到高级专题)

礼包二; 腾T3级Android高级进阶往期视频

希望成为架构师的小伙伴可以加入QQ群830344345,一起学习,相互讨论。

Android架构师之路很漫长,一起共勉吧!