按时间顺序目前面试了cvte,吉比特,小米,字节跳动,阿里,腾讯WXG,七牛云,拿到七牛云HR,腾讯的offer,阿里offer。
面试情况
学习情况
-
Android的入门主要学习了《第一行代码》
-
Android进阶学习《Android开发艺术探索》,面试必读,重点知识我反复看了好多遍。
-
Android的面经学习简书厘米姑娘,也是我腾讯的内推人,非常感谢她。
-
java基础学习了《java编程思想》,看源码。
-
java总结学习《码出高效》,这本书对知识点总结的很好,面试回答的时候我都是根据这本书的总结来回答的。
-
jvm学习《深入理解java虚拟机》,必读,我是背了重点的内容,对于安卓来说,只需要熟悉重点章节就可以了。
-
计算机网络:《计算机网络》谢希仁的,熟悉重点部分就可以了
项目两个
-
自己做了一个学校驾校的小应用
-
针对阿里面试,寒假之前做了语雀的app
奖项
–
acm奖牌0,算法超级渣,《剑指offer》都没刷完
省里面超级水的应用开发比赛三等奖,二等奖
腾讯一面
(一面面试官很nice,但是发短信约时间之后,鸽了我4个小时,我上课时打过来,约晚上,结果鸽了我三天,之后我主动发短信约时间,答应了之后结果又鸽了我。。。orz)
-
自我介绍
-
自我介绍时说过自己看过EventBus源码,然后让我谈谈事件总线的理解。
-
EventBus会有什么问题吗?
-
EventBus、接口回调、观察者模式的使用场景说一下。
-
项目什么地方用到数据的持久化,说一下。
-
Activity的生命周期,弹出dialog和一个activity的dialog生命周期有什么区别?
-
Activity的启动模式,应用场景,然后举了很多微信的场景,让我去选择用那种启动模式,说下理由。
-
Activity进程的优先级。
-
如何防止微信不被系统杀死?
-
service两种启动模式,区别
-
两种启动模式,如果我在退出Activity的时候没有退出service会怎么样。
-
设计一个图片浏览框架,(线程池,lru缓存,brabra的说了一堆)。
-
有一个很大很大的图片加载到内存上,不能降低清晰度和压缩图片你怎么解决?(提示我局部显示?我没懂)
-
如何适配不同厂商的手机,然后设计模式,brara又说了一大堆,最后还说到jetkins自动部署上面去了
-
AsyncTask源码分析,每个方法在哪个线程执行的?
一面面试官真的很好,有些你不懂的他还举例教你,一面我觉得难度比较大,常规的背题肯定会不满意的,题目比较少,引申出来的知识点却很多,大部分时间都是我在谈自己的解决思路然后分析到知识点的源码上面去,比如说像如何防止微信不被杀死这种,其实我说了常用的进程保活思路,它还要我分析其他情况
面试官说我不错,叫我明天准备二面,电话一挂,我就愉快地去吃饭,吃着饭看状态灰了,这谁顶得住啊~
回去看完电影之后,再查一下状态,变成了复试,估计之前是到时间简历被释放了。
腾讯二面
(二面总监/面委,由于开会,鸽我半个小时)
-
上来大数相乘,我做的眼泪都快流出来了。
-
put和post的区别,应用场景。
-
看了我的flutter项目,我改了一个框架,问我这个框架。
-
让你设计一个跨平台的框架,你怎么设计(这里我谈了flutter的架构)。
-
https的流程。
-
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 变量里面?
-
详细介绍第二个项目
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
我搜集整理过这几年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算