欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

荐 Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

程序员文章站 2022-10-25 13:32:09
寒冬年后疫情爆发,不出所料,我被公司优化了。原因大概要追溯到年前,10月底的时候,公司项目经理跳槽了,职位空了出来。当时我是项目组长。这家不大不小的公司已经做了有三四年了。在技术层面上,至少在公司里已经是数一数二了。本以为空出来的项目经理理应是我上,我的组员也都觉得肯定是我了。公告出来的时候,我直接懵13了,另一个组长上了经理的位置。他技术层面大不如我,而且在我看来是个玩弄人际吃饭的“老油条”。公司上上下下的人似乎都对他印象挺好,而我对他一直是有点“不屑”的。可能是每个程序员都有的一个天真的“误区....

荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

寒冬

年后疫情爆发,不出所料,我被公司优化了。

原因大概要追溯到年前,10月底的时候,公司项目经理跳槽了,职位空了出来。当时我是项目组长。

这家不大不小的公司已经做了有三四年了。在技术层面上,至少在公司里已经是数一数二了。本以为空出来的项目经理理应是我上,我的组员也都觉得肯定是我了。

公告出来的时候,我直接懵13了,另一个组长上了经理的位置。他技术层面大不如我,而且在我看来是个玩弄人际吃饭的“老油条”。公司上上下下的人似乎都对他印象挺好,而我对他一直是有点“不屑”的。可能是每个程序员都有的一个天真的“误区”:程序员是个纯技术职业。技术至上,比我菜的都是“辣鸡”。

我天真的像个傻13一样,去找老板理论。凭什么啊?给他上?老子来的比他早,经验比他久,技术甩他几条街。当时老板办公室有客户在谈合作,我说完就走了。

后来我还比较奇怪,老板也没有找过我,好像什么都没有发生过一样。我还是个小小的组长,干活,加班,上版本。

直到疫情爆发,公司宣布要优化。在优化名单里,不出意外的看到了我的名字。

在这个疫情肆虐的寒冬里,我收到了这个宛如一根冰针的消息,扎进了我心里。全身冰凉。

老婆肚子里是快要分娩的孩子,想赶上春暖花开的季节让他来到这个世界。作为家里唯一的经济来源,每天睁眼想的便是房贷车贷、茶米油盐。我几近崩溃。

荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

复苏

让我宽慰的是,父母、包括我的岳父母和我的妻子,都给了我最大程度的鼓励和支持。让我找回重新开始的信心。疫情封城、隔离的期间,我在家复习、准备面试找工作。岳父岳母来到了家里照顾我妻子(妻子家里是杭州本地的,我的父母回了乡下过年)

面试经历

复习了两个月左右。四月中旬开始边投简历边进行复习扫尾、巩固,大大小小的公司投出了大概三四十份简历。收到面试大概20场。下面我挑了几个较好的和一些大厂的真题面经分享一下。

小建议:
面试某家公司前,最好是要先了解你所面试的工作岗位,公司的业务,主要是做哪个方面的,这样可以更加具有针对性的复习和准备。

华润集团下某借贷子公司(借贷公司,肯定对APP安全方面比较着重)

  • Activity 的启动过程
  • Broadcast 注册方式与区别
  • 磁盘缓存怎么实现
  • 进程间通信原理、Binder 机制原理
  • APK加固、dex文件加密实现、原理
  • 说一下类加载的过程、机制,为什么要这样设计?
  • 谈谈你对安卓签名的理解。
  • 对于提高app的安全性,你有哪些建议或方法?

腾讯新闻(大概就是UI、页面流畅度、适配这些方面吧)

  • 如何将一个Activity设置成窗口的样式。
  • Android中跨进程通讯的几种方式
  • 屏幕适配的处理技巧都有哪些?
  • ListView卡顿原因及处理
  • 广播传输的数据是否有限制,是多少,为什么要限制?
  • 如何防止过度绘制
  • View的回执流程
  • 说说对Context的理解
  • 卡顿的一整套解决方案是怎么做的?

某知名外卖APP(布局、页面、高级UI之类的)

  • View的绘制过程,onMeasure方法中两个参数的含义;
  • 你在做布局优化的过程中用到了哪些工具?
  • 做完布局优化有哪些成果产出?
  • 看过哪些源码
  • 混合开发有没有做过
  • 大致说一下自己做过最满意的项目吧

字节跳动抖音部(音视频、算法)

  • 静态注册和动态注册的原理分别说一下吧
  • JNI是如何访问java中的方法和字段的?
  • JNI规范中定义了哪些引用,区别是什么
  • 算法:获取单链表倒数第k个元素
  • 单例实现线程的同步的要求?
  • LaunchMode应用场景
  • 计算一个view的嵌套层级

算法:
荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

某上市公司(母婴类产品)

  • 请介绍下ContentProvider是如何实现数据共享的。
  • android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
  • 算法:复制含有随机指针节点的链表
  • Android系统中GC什么情况下会出现内存泄露呢?
  • 三次握手四次挥手说一下吧
  • HashMap 、HashTable原理?
  • Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理
  • 进程保活怎么做

合资外企

  • LeakCanary 原理
  • OOM 场景及规避
  • App 安装过程的怎样的
  • ANR是什么?怎样避免和解决ANR
  • MVC MVP MVVM原理和区别
  • 算法:2000万个整数,找出第五十大的数字?
  • App 是如何沙箱化,为什么要这么做?
  • flutter用过吗?
  • Flutter 如何与 Android iOS 通信?

志安科技(类似于华为海思,对底层很看重)

  • HashMap 原理
  • andorid的Binder机制是怎么样的
  • Linux的原理有了解吗
  • 有看过哪些源码,有深入到C++中吗,C++熟练吗?
  • 熟悉framework哪些模块的源码,对图像性能优化有了解吗
  • 以后的技术发展方向是如何的

阿里巴巴P6岗

  • HTTP2.0与3.0的区别
  • 项目中常用的设计模式
  • https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
  • 了解过Android虚拟机有哪些?
  • 对Dalvik、ART虚拟机有什么了解?
  • Gradle自动补丁包生成原理
  • Hybrid 通信原理是什么,有做研究吗?
  • 来介绍下你最成熟的一个项目是哪个?
  • 能简单的画一下你这个项目的架构图吗?
  • 除了MVP,MVC,MVVM外还有什么其他的架构方式?
  • 动态编译和反射相比,除了性能方面外还有什么区别?
  • 死锁如何避免、处理?
  • Flutter中的Widget、State、Context 的核心概念?是为了解决什么问题?
  • 卡顿 {如何检测卡顿,卡顿原理是什么,怎么判断页面响应卡顿还是逻辑处理造成的卡顿} ,BlockCanary 的原理
  • 算法:双链表翻转、写出你所知道的排序算法及时空复杂度,稳定性

荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

阴霾尽散

最终比较顺利的收获了阿里P6的offer,虽说开的工资并不是最高的,但毕竟*大厂的履历可以写进简历,而且也就在杭州。

在祖国强有力的措施下,疫情得到了显著有效的控制,生活也逐渐、基本恢复了正常。

老婆快到预产期了,很幸运,年前的阴霾也基本散去了,宝宝可以在这个春暖花开的季节来到世间。真好

在这我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料(主要是我把其他杂乱的不成体系的都删了~)

总之也是在这里帮助大家系统的学习提升进阶,也节省大家在网上搜索零散资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,我把他放在石墨文档了:【Android学习PDF+架构视频+面试文档+源码笔记】

荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

学习技巧

应该关注哪些技术?

这些问题,每天都会有人在群里议论,也会有人经常在群里求工作职位坑。那么我的看法是不要纠结学什么,先学了再说,与其抓住变量(新的技术手段)还不如好好学习,我特别喜欢《暗时间》的一段重视知识的本质:对于程序员来说这一点尤其重要,程序员行业的知识芜杂海量,而且总是在增长变化。很多人感叹跟不上新技术。应对这个问题的办法只能是:抓住不变量。

底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。

我在刚入行时,一直在追逐最新最热的技术,几年过去了,才发现在,新的知识永远在增长,技术在不断迭代。感觉自己很无力,有一天无意间在网上看到Google的面试问题类型,我惊讶的是在面试题中没有最新的技术,甚至不是在某一种语言下的知识,而是通用的知识,算法数据结构,设计理论,编码规范,那时我懂了,想起刚出来的时候去一些公司面试被问到算法,一脸懵逼,并且还理直气壮和面试官说“开发用到算法的地方不多呀,记不住也很正常。”,现在回想起来当初的想法真是给自己找借口,因为算法本身比调用API要难,你连难的东西都学好了,还学不会简单的API调用吗?本质上面试官是想看看你的学习能力和逻辑能力。

如果学好底层不变量,现在的大数据,云计算, AI 学习起来都是事半功倍,你以为你没有基础就能学好大数据,云计算,AI?我们不要拘泥于某一门语言而是先修炼好内功,你的在这门语言的造诣是否高深,最终还是由你的内功深厚程度来决定的。

应该如何学习?

我们知道该学习什么了,那么如何学习了?

在这个信息爆炸时代,我们每天阅读大量的信息(微信公众号、微博、简书、今日头条、微信读书、得到 …),阅读过后总感觉自己学习到了很多新知,但是一周过后我们能说出来的收获又有多少呢?

这不禁让我想起塞内加的《论生命之短暂》中的一句话“如果一个人出海遇到狂风暴雨,被变换肆虐的风吹得团团转,你可能会觉得他航行了很远。其实航行得并不远,只是浮沉动荡的时间长而已。”,没错如今的知识就像出海时遇到的狂风暴雨,我们只是被吹的原地团团转而已,并没有在知识的海洋航行很远。

所以系统化、体系化的学习就尤为重要,这也是我一直所坚持的方向。

最后,祝大家都能在这花开的季节里,拥有自己向往的生活!
荐
                                                        Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

本文地址:https://blog.csdn.net/chuhe1989/article/details/107160229