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

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

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

首先是零基础,也就是别的方向(比如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之间是如何进行通信的?

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

#牛客激励计划#

全部评论
客户端六年了,觉得客户端挺好的呀。不用24小时 on call。
1 回复 分享
发布于 2025-02-21 09:56 广东
感谢答疑解惑
1 回复 分享
发布于 2025-01-16 15:33 陕西
mark
点赞 回复 分享
发布于 2025-07-31 23:11 江苏
什么bg佬
点赞 回复 分享
发布于 2025-06-26 18:23 北京
如果是前端被捞到客户端这种情况呢
点赞 回复 分享
发布于 2025-04-24 01:58 广东
佬,您好,我是属于你文中安卓零基础的(第一种)情况,请问有没有什么适合写到简历里的安卓入门项目吗?可以推荐几个吗?感谢
点赞 回复 分享
发布于 2025-03-14 19:00 江苏
点赞 回复 分享
发布于 2025-03-10 13:20 江苏
m
点赞 回复 分享
发布于 2025-01-21 12:36 广东
点赞 回复 分享
发布于 2025-01-17 10:56 北京

相关推荐

开头正常自我介绍linux1.关于 Linux, 那 Linux 的话,你用哪?用过哪些发行版本?2.如何看 Linux 系统里面有多少个核吗?或者是这个硬服务器的一些那个 CPU 的信息呢?3.Linux 系统上面有哪些网络端口在处于监听状态呢?4.怎么统计一个文本文件的那个行数呢?Docker1.怎么看正在运行的 Docker 容器?镜像呢2.Dockerfile写过吗?3.我怎么进入容器内部呢?去看看一些容器的里面的信息?4.你有做过那个 Docker 镜像的一些操作吗?比如说我怎么把镜像导出来,然后再导到另外一个环境里面去?5.Docker的核心组件有哪些呢?k8s1.ETCD 在 K8S 里面起什么作用吗?2.那你知道 kube-controller-manage 它是做什么的?3.能说一下那个 Deployment 跟 StatefulSet  有什么区别?4.那 DaemonSet  它的作用是什么呢?5.service 有哪些类型呢?6.如果说一个pod,它处于一个失败的状态,那你有哪些手段去分析一下。7.ConfigMap 和 Secret它有什么作用呢?区别是什么?项目:1.Ansible 的使用2.这个监控的一些系统软件熟悉吗?你怎么用他们?3.你既然在开发这里用过Prometheus ,能说一下它,因为你它这个系统起来之后,它不可能说我去监控一个系统的时候,我要去手动去配置一下怎么去监控它,它应该有个自动发现的一个东西,这个自动发现的一个原理能说一下吗?4.用过Ceph吗,是怎么部署的?是几个节点?几个副本?5.讲一下 Jenkins 的功能总的来说这次面试问的问题也不太复杂,不过依然有问题还没回答出来;HR人很好,反问阶段还是因为经验不知,问的都是无关紧要的东西,继续加油吧!
查看21道真题和解析
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
04-04 09:03
神州信息 java 8k 本科其他
点赞 评论 收藏
分享
04-13 22:27
门头沟学院 Java
一、 实习相关二、 MySQL 数据库原理5. 除了 LIKE 这种模糊查询,还有什么情况会导致 MySQL 索引失效?6. MySQL 的索引有哪些类型?7. 要查看一个 SQL 的执行性能应该怎么看?8. MySQL 的表数据量达到什么量级之后性能可能会急剧下降?为什么?9. SQL 里面的 UNION 和 UNION ALL 有什么区别?三、 个人项目与 Redis 核心原理10. 你的项目里面用 Redis 做了什么?11. 为什么用 Redis 做缓存?(为什么 Redis 执行得这么快?)12. 为什么 Redis 单线程能有那么高的并发量?除了主线程,Redis 还有其他子线程吗?13. Redis 单机的 QPS 一般能达到多少?14. 简单介绍一下 Redis 的 IO 多路复用是一个什么样的机制?15. Redis 里面常见的基础数据结构和高级数据结构有哪些?16. 为什么要用 Lua 脚本?17. Redis 里的 TTL 是个什么概念?四、 分布式架构基础18. 分布式的概念是什么?为什么在分布式场景下单机的 JVM 锁解决不了一人一单的问题?19. 微服务架构和分布式架构有什么不一样?20. 单体架构和分布式架构各自有什么优劣?五、 Java 基础与 JVM 原理21. 什么是 Java 的双亲委派机制?22. 为什么要用双亲委派机制?(如果不使用会导致什么样的安全问题?)23. 你了解哪些垃圾回收算法?24. JVM 里面年轻代和老年代一般的垃圾回收机制是怎样的?(分代回收思想)25. 怎么识别哪些对象是需要回收的垃圾?26. 列举几个常见的 GC Roots。六、 并发编程 (JUC)27. 线程池常用的几个核心参数是什么?28. 核心线程数和最大线程数在任务执行机制上有什么区别?(请描述任务提交到线程池后的流转过程)七、 线上排查与网络协议29. 如果某天发现线上的服务突然卡死了,大概有什么样的分析和排查方式?30. 如果让你人为制造一个 OOM(内存溢出),你要怎么去写代码?31. Java 里面的 Error 和 Exception 有什么区别?32. 如果有用户反馈网站很慢,大概的一个排查和分析路径是怎样的?33. 从在浏览器中输入 URL 打开网页到返回结果,中间经历了哪些步骤?八、 算法手写题34. 两个有序数组的中位数。
查看30道真题和解析
点赞 评论 收藏
分享
评论
45
140
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务