客户端(安卓)面试,看这一篇就够了!

叠个甲:不是劝进客户端,客户端确实不如后端,但是既然找不到大厂后端选择走客户端这条路了,那也需要好好准备,剩下就看命了。

面试无非几种情况,一是零基础,二是有相关的实习经历,三是本身就是学安卓的(那也没必要看了相信你都已经滚瓜烂熟了)

首先是零基础,也就是别的方向(比如java后端)去转。因为以前安卓本身就是用java写的,后面才用kotlin写,并且两者是兼容的,会java的话上手kotlin很快。一般是找实习的时候居多,这种情况你的简历应该是不包含任何客户端相关的东西的,面试官默认你是一张白纸,这个时候是最容易找到客户端实习的,面试官会针对你简历去问,正常准备就行。一般就是问java+网络+操作系统+简历上的项目,mysql、redis、spring框架之类的东西因为客户端涉及不到所以不会问。(不排除问的可能,只能说概率非常小)

本文主要针对第二种情况,也就是有了客户端实习经历后,秋招打算继续找客户端的岗位,实习期间主要还是面向完成任务,很多理论是用不到的,但是有了实习经历后,秋招面试官就会去问你安卓相关的八股。一般就问实习+java/kotlin+网络+操作系统+安卓,简历上写的后端项目不会再问了。

我面了26场技术面试,其中问了安卓八股的有14场,发现问来问去就那么多的知识点。我室友每次在边上帮我记录面经,后面他说安卓的八股他都会了,下次也能去面面了。

非常高频!!!

四大组件:能说是哪四个就行,基本只问activity,另外三个几乎不问

activity的生命周期 7次

activity的启动模式 4次

安卓线程间通信方式(handler)6次

安卓进程间通信方式(binder)5次

view的绘制流程 4次

触摸事件的传递 4次

下面只问过一次的,很多是从上面的高频问题中引申出来的:

activityA启动后打开activityB,两个activity的状态经历了哪些周期?

可以在子线程里面刷新UI吗?如果我非要在子线程里刷新了UI呢?会怎么样?会抛出什么异常?

ANR是什么?ANR产生的根本原因是什么?多久会出现这个异常?所有的情况都是 5s 吗?Service里面也是5s吗?

application的oncreate和activity的oncreate有什么区别?

Ibinder了解吗?

一个点击事件点击结束后是怎么被销毁的?

looper的睡眠机制对应linux的哪个操作?

looper最多能开几个线程?

handler的一个postDelay()方法知道吗?

如果创建了两个handler,如何知道哪个消息对应哪个handler?

上下滑动事件和左右滑动事件的冲突如何处理?

recyclerView了解吗?它是如何复用视图的?

activity和fragment之间是如何进行通信的?

以上就是整个秋招面试过程中我被问到的所有关于安卓的问题,如果觉得对你有帮助的话,可以给我送个小花

#牛客激励计划#

全部评论
感谢答疑解惑
1 回复 分享
发布于 01-16 15:33 陕西
点赞 回复 分享
发布于 01-17 10:56 北京
m
点赞 回复 分享
发布于 01-21 12:36 广东

相关推荐

父亲的键盘声:塞班时代的光与影小时候的我,对父亲的职业充满了好奇。他是个塞班客户端开发者,那时的我并不理解什么是开发者,父亲总是说他从事的是下一个时代的工作,会时常对这一台陈旧的电脑埋头工作,键盘声中透着焦虑与对未来的期望。那个时候,他总说:“Symbian就是未来。”家里的大大小小橱柜上总是摆放着父亲参与过的项目,那是他用C++和Symbian框架编写的辉煌记录。小时候的我,常常趴在他旁边看,听他说“要做客户端,性能优化才是王道!”那时,我暗下决心,长大后也要成为像他一样的客户端程序员。噩梦的开始:和安卓的不解之缘时间来到10年代初,移动客户端全面转型,塞班慢慢没落了,此时此刻iOS和Android崛起,成了移动市场的新王,由于家境贫寒,买不起iOS设备,我如愿以偿地成为了一名客户端开发者。初入职场,我充满干劲。我们团队忙着适配各种机型、调试各种崩溃问题,尤其是要搞定五花八门的UI兼容。还记得某个晚上,我为了修复一个ANR(应用无响应)问题熬到凌晨四点。那天晚上,我觉得自己好像理解了父亲当年的疲惫。他敲下每一行代码时,或许也曾怀疑过:“这真的值得吗?”几年过去,安卓和iOS的生态都趋于成熟,我从一个代码小兵变成了项目负责人,甚至参与了一些底层优化工作。可随着行业的内卷化,收入开始不再涨,技术红利消散,每天加班的我,逐渐对“客户端”这两个字丧失了激情。三十而立:未来又在何方如今,我已过而立之年,有了自己的家庭。婚姻状况也每况愈下,可生活却不如想象中的稳定。客户端岗位逐渐饱和,新技术层出不穷,跨平台框架更是如雨后春笋般出现。Flutter、Compose的兴起,让我们这些原生开发者倍感焦虑。每当夜深人静,我看着镜子里逐渐稀疏的头发,问自己:“当初的选择对吗?”客户端开发这条路,走了十年,好像越走越窄。更令人痛苦的是,收入的增速远赶不上房贷和奶粉钱。和家人交流的也越来越少,整个家都濒临崩溃。新的噩梦今天正在查线上崩溃,儿子趴在桌前,好奇地问我:“爸爸,你在干嘛?”我愣住了,半天没抬头。屏幕上的崩溃日志像一片深不见底的泥沼,我盯了许久,却不知道该从哪里下手。脑袋里一片混乱,工作任务堆成了山,未来却看不到一丝光亮。儿子用稚嫩的声音又问了一遍:“爸爸,这个是什么?”我抬头看着他,那双充满好奇的小眼睛像极了曾经的我。可是,眼前的一切让我说不出话来。曾经我对着父亲的屏幕满怀向往,而现在,我却只想告诉他:“别靠近这台电脑,别走上这条路。”我轻轻合上了笔记本,掩盖住屏幕上那些凌乱的日志和未解的Bug,长长地叹了一口气。房间里很安静,只有外面的呼啸的风声在提醒着我,这条路已经让我筋疲力尽。那一刻,我的绝望不是因为软件工程本身,而是因为客户端我已经看不到任何值得坚持的理由。三代人的守望与传承 好想重来,一切都是因为客户端。可惜,生活没有重来的机会,市场和人生也不会给客户端任何机会。 #客户端#  #软件开发薪资爆料#  #你上一次加班是什么时候?#  #如果再来一次,你还会选择这个工作吗?#  #牛客创作赏金赛#
点赞 评论 收藏
分享
评论
15
29
分享

创作者周榜

更多
牛客网
牛客企业服务