安卓工程师精选面经合集
11家公司
27篇面经
最新 热门
/discuss/798579162993672192/discuss/798282428728066048
小红书 Android客户端校招一面
2025 年 9 月 17 日自我介绍 / 项目背景1. 自我介绍。2. 你的 App 在哪些应用商店上架?当前用户规模是多少?3. 这个 App 分了哪几个主要模块(功能)?社交 / 即时通讯相关1. 社交功能是什么样的?有没有即时通讯/聊天?2. 聊天功能是怎么实现的?消息发送/接收的流程是什么?3. 聊天消息怎么存储(server / DB / 消息队列 等)?群组、好友列表、通讯录是怎么管理的?4. 消息推送你接入了哪些厂商(如 APNs、小米等)?到达率和典型延迟是多少?技术选型 / 跨平台1. 为什么选择 Flutter 做跨平台开发?优点和限制是什么?2. 如果需要用到原生平台能力,如何在 Flutter 中与原生通信(如何实现、常用方案)?3. 你了解 Flutter 的渲染流程吗?和 Android 原生渲染有什么差异?具体的渲染树(Widget/Element/RenderObject/Layer)是如何协作的?Dart / 并发 / 内存1. 你了解 Dart 的 Isolate(或类似并发模型)吗?什么时候适合用 Isolate?内存是否隔离?2. 在多线程/并发场景中,如何保证线程安全?synchronized 和 ReentrantLock 有什么区别?公平锁与非公平锁是什么?3. 线程池(ThreadPool)创建时有哪些核心参数?每个参数的作用是什么?(例如:核心线程数、最大线程数、队列等)Android / 底层机制1. Android 的进程间通信(Binder)原理是什么?除了 Binder,还有哪些进程间通信方式?各自适用场景是什么?2. 为什么 Linux 已经有很多跨进程通信方式了还要用 Binder3. Android 自定义 View 的绘制流程(create → measure → layout → draw)了解多少?自定义组件通常怎么实现?4. Handler 的作用?图片 / 缓存 /网络1. 项目中用到哪些图片库?图片加载库一般有几级缓存(内存/磁盘/协商/强缓存)?缓存的淘汰策略如何实现(LRU、LFU 等)?2. 网络层你用的是什么(如 dio 等)?GC / 内存回收1. Java 的垃圾回收(GC)策略你了解多少?分代回收(新生代/老年代)基本思想是什么?常见回收算法有哪些?算法 / 编程题1. 请写出一个算法:求二叉树的最大深度(并说明思路)。其他 & 反问1. 团队主要是做什么?(动态化/小程序容器,RN,WebView)2. 有没有用到在 App 内动态加载 APK(用到了动态加载class)天呐我感觉这个面试官超级无敌厉害,符合我对安卓大佬的想象,好多没答上来的……应该没有二面了
查看23道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/73cc3e5a32ae48d79b40c3060909ca21
09-16 16:53
门头沟学院 C++
最长的面试,拷打一个半小时
微派一面 安卓客户端先拷打了项目1.retrofit底层2.okhttp请求有同步和异步,两种有什么区别3.拦截器是通过什么设计模式实现的(责任链模式)4.责任链模式是什么,和平常使用的什么数据结构比较像5.okhttp底层原理,比如连接复用和缓存6.okhttp的缓存是用哪种数据结构存储的7.为什么要三次握手和四次挥手8.http属于tcp/ip协议里的哪一层9.http底层是用哪种传输协议10.tcp属于哪一层11.tcp和udp有什么区别12.为什么觉得游戏适合使用udp13.如果网络非常差,udp的优势岂不是发挥不了14.retrofit如何通过注解实现网络请求15.如果有两个接口会生成不同的实例对象吗16.动态代理有什么优势17.http的get和post方法有什么区别18.get想查询,数据是怎么携带的19.post如何携带20.拷打了一嘴项目21.recyclerview和listview的区别22.recyclerview和adapter有什么关系23.recyclerview底层的缓存机制24.这种缓存是通过什么数据结构实现的25.listadapter26.notifyDataSetChange()和notifyItemInserted() 、 notifyItemRemoved()有什么区别27.diffutil28.diffutil暴露给用户最重要的两个接口29.glide比其他的有什么优势30.glide如何绑定生命周期31.activity和fragment的生命周期在glide里有什么区别32.onstop和onpuase有什么区别33.依旧拷打项目34.比如列表里有很多item,我想把livedata绑定到viewholder里,实现要注意什么35.livedata有监听和取消监听,为什么要取消监听36.在viewholder的bind的时候注册了观察者,应该在什么时机取消监听37.mvvm和mvi38.协程和线程有什么区别39.协程底层是线程吗40.协程的挂起和恢复41.挂起的本质是什么(异步回调)42.handler原理43.handler和looper是1对1还是n对144.handler底层是用什么数据结构存储looper的45.数组和链表46.单链表和双链表47.栈和队列48.leakcanary底层原理49.什么是内存泄漏50.长生命周期和短生命周期对象,持有activity泄漏是属于长生命周期对象还是短生命周期对象51.leakcanary监控什么安卓组件52.leakcanary监控viewmodel是怎么注册的,有了解吗53.算法:给一个字符串数组,计算数组里不包含相同字母的最大长度乘积值,如果字符串里有相同字符,相乘的值为0
发面经攒人品
点赞 评论 收藏
分享
/feed/main/detail/9599d9592ca2419c97d76593bf7c1a2b/feed/main/detail/a8b78134394042ec868da55ddfe01582/discuss/797066691023736832/feed/main/detail/c47c458d9eb14a0b889ee0d26e608b8f/feed/main/detail/2a8bff106e6f44bfa1100a156fffb1e0/discuss/793217965054316544/feed/main/detail/ecf220ca78a04702bf74f923ca6404c2/feed/main/detail/5e2ce3f326cc41e485f8f330c30c8ef3/discuss/792703324016431104/discuss/792693258114568192/feed/main/detail/021c4c6f0d48426c8a3eec1c67abe9c4/discuss/788593538240954368
虾皮Android开发工程师一面面经
1.上来一道算法题,旋转链表,给你一个链表和数字 k ,让你把链表的节点往后移动k位,如 head = [1,2,3,4,5] ,int k = 2, 结果:head = [4,5,1,2,3](比较简单,写一个方法就行,面试官会看,你也可以讲一下自己的思路)2.让我说一下我的项目(校园交易电商系统,我说了我的学习思路)3. jdk,jre,jvm的区别(可以看那个很知名的图,可以说一下细节,细节方面我没说)4.==和equals的区别(牛客的面经练习有,说那个就行)5.hascode和equals的关系(牛客面经)6.String为什么不可变(我回答了牛客上面的String,StringBuffer,StringBuilder的那个,加上自己的理解)7.我们怎么保证线程安全(回答了锁和线程安全集合,可以回答多一点,细节一点)8.volatile了解吗(牛客面经,这个问题的原问题是:多线程安全环境下更轻量级的使用有哪个)9.进程和线程的关系(如果可以,自己补充一下协程)10.进程间的通信方式(我回答了三个,有点忘记了)11.TCP三次握手(回答更细节一点最好,SYN包,ACK包,seq,ack都可以说一下)12.对安卓知识有没有了解(不了解,基本不会哈,回答了一些之前看过的关于安卓的文章知识)13.了解Kotlin吗(不会捏,最好安卓开发方向的小伙伴学一下相关知识,面试官说安卓里面Kotlin和Java用的最多,常见)面试官人挺好的,问的问题也很基础,大家找工作也别太灰心,有些公司确实会问的问题很难,但是大家多面多积累经验反问:不打了,无关紧要的,然后一般是三面,然后是hr决定反馈时间
查看13道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/f61c39337ea94eba8e19c5514f22f9ba/feed/main/detail/56be23c601e243129fec472b4a87ec85/feed/main/detail/7e07f72ff37742859912c86653838e39/feed/main/detail/27a7ae1e969245c295f1f193ec725583/feed/main/detail/2ee1c9b188a94e06af92836830b0af3d
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

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