安卓工程师精选面经合集
11家公司
27篇面经
最新 热门
/feed/main/detail/7dd22b72b37740618dc860c960cdd217
字节十三面(附面经),终于战胜...(下)
字节客户端,流转番茄、剪映、抖音、飞书等多个部门,历经十三次面试,终于拿下。前六面面经见上篇,记录下后续面经:七面(1h45min)1. 自我介绍2. 实习项目3. 介绍下实习的项目架构4. 讲讲对Compose声明式的理解5. java强引用和弱引用的区别6. 还有其他引用类型吗7. ThreadLocal8. 你平常有什么遇到的ThreadLocal的应用场景9. java集合类型(介绍各种集合,吟唱List、Map、Set)10. 集合多线程访问数据竞争问题怎么解决11. synchronized的用法12. LeakCanary检测内存泄漏的机制13. MVVM、MVP、MVC三种架构的区别14. 算法:搜索旋转排序数组总结:知识点知识面掌握挺不错的,基础知识的细节也了解得比较清楚,实习经历对于一个还没毕业的本科生来说还是不错的。过八面(1h)1. 项目拷打2. 不使用ksp开发的监测组件有什么办法定位Compose组件执行耗时3. LeakCanary原理机制4. OKHttp和Retrofit设计模式(答了七八个主要的)5. 责任链好处是什么6. 包大小优化措施,提升了哪些性能7. 线程和协程的区别8. 鸿蒙调用cpp是怎么做的9. 了解什么跨端框架10. flutter为什么比原生慢11. flutter和react native在渲染机制上的区别是什么(自绘引擎独立绘制和原生组件映射)12. kmp是怎么实现跨端的(逻辑层统一编写,UI等原生层各自实现)13. view事件分发cancel事件什么情况会触发14. view事件分发流程15. Binder机制16. lc.215 数组中第k个最大元素(要求先讲几种不同方法,再实现代码最复杂那个)(1) 直接排序 O(nlogn)(2) 优先队列(最小堆)O(logn)(3) 快速选择 O(n) 写这个的代码总结:没什么问题,秒过,进入hr面(最后倒在审批,原因是手头的offer不够多很难争取)九面(hr面45min)压力很大,像是在面技术面1. 自我介绍2. 为什么选择就业而不是考研3. 工作室有什么项目需要做4. 项目为什么做了一年(业余时间开发)5. 项目的动机、背景6. 还在实习吗(转正离职了)7. 挑一个实习工作讲一下背景和做了哪些事情8. 技术优化是谁提出来的,leader提出的还是自己找到的9. 做完需求的成长和进步体现在哪里10. 独立开发sdk提效是谁给你的建议吗11. 除了技术问题还有遇到其他困难吗(联调沟通)12. 一开始不使用联调的原因是什么,打乱工作节奏吗13. 做好一个程序员,除了技术上扎实,还需要基本什么样的素质和能力14. 沟通上有什么心得,可以提高工作效率15. 有遇到矛盾和分歧吗,怎么解决的16. 在团队中工作影响你产出的阻碍和困扰有什么17. 新的UI框架你是花多久学清楚的18. mentor对你的评价是什么19. 组内几个实习生,都转正通过了吗20. 和其他实习生相比你的优势在哪里(来得早,知识面多)21. 你有想过未来规划怎么样长期保持自己的优势吗(自驱力,持续学习)22. 跨端方面你觉得哪家公司做得比较好(腾讯视频)23. 你们组的跨端方案跟腾讯视频比有什么差距吗24. 对字节校招面试的感受是怎么样的25.  你是从其他部门流转过来抖音搜索的,对该部门面试的感受是什么26. 有反思该部门二面没通过的原因吗27. 会有失落和挫折的感受吗28. 怎么排解失落的心情29. 现在手头有哪些offer30. 看你也投了其他非互联网公司,对发展的不同方向有倾向性吗审批一周还是倒下了,流转其他部门,后续免hr面后面的面试不怎么问八股了,更多是项目、场景、智力题十面(30min)1. 自我介绍2. 有了解鸿蒙如何与Kotlin通信吗3. Compose对比常规view的优势是什么4. Compose局部重组的原理,标脏机制5. 对最近比较火的ai编程工具有了解吗,像claude这些6. 了解ai编程的原理吗7. 现在还在实习吗8. 什么时候接触安卓的?写过ios,前端吗9. 你会怎么快速上手ios10. 编码算法就不考察了,之前面试都写出来了11. 为啥有微信offer还面其他的总结:从二面开始,通过了就是三面,大概率也不考算法。过十一面(1h)1. 自我介绍2. 实习介绍3. Compose局部重组是怎么实现的4. ai工具你是怎么用的5. 有没有用过claude code、cursor(需要付费,没用过)6. agent是怎么实现的,工作原理是什么7. 你觉得自己比同阶段的同学优势在哪里8. 最近在学什么9. 最近比较感兴趣并且学得深一点的是什么10. Compose什么时候会跳过重组11. 自己后面有什么规划吗12. Compose组件封装得更通用有什么思路吗13. 组件点击事件的响应是怎么扩展的14. 9枚硬币有一枚是假的,假硬币会轻一点,有一个天平,最少称几次可以找到假硬币15. 100层楼,有两个瓶子,怎么扔,最坏情况下扔几次可以用最少次数找到瓶子会不会碎的临界楼层(想了几种方案最终只优化到18次的最坏情况)16. 为什么apk体积比较小了还要优化17. apk优化方案总结:客户端经验很丰富,ai了解不够多。一周后挂十二面(1h)1. 自我介绍2. 实习亮点介绍3. 跨端方案的背景4. 跨端方案很多,为什么使用c++?写起来方便吗?5. java和c++是怎么通信的6. 还了解哪些其他跨端技术7. 怎么判断哪些代码可以下沉到逻辑复用层8. 在跨端过程中你做了哪些9. 举个例子说明哪些代码放在原生层,哪些代码放在复用层10. 底层数据发生变化是怎么通知上层的?数据驱动是怎么做的11. 原生层的viewmodel和底层的viewmodel的区别是什么12. 使用什么手段可以主动发现线上的性能问题(流水线)13. MVVM的设计思路是什么,和传统MVC、MVP的区别14. LiveData相对于传统观察者模式有什么优势(生命周期集成)15. 性能优化的整体思路是什么16. 优化的收益怎么衡量17. 怎么分组快速发现新改动的性能问题(AB实验)18. 安卓内存泄漏的场景19. kotlin协程的理解20. 多线程读取数据可能会有哪些问题,可以通过什么方式避免21. 100瓶水,有1瓶是毒药,喝了1天后会毒发,最少多少只小白鼠和最短几天可以测出来(二进制编码)22. 之前考了很多笔试了,就不考了,开始反问依然是从二面开始。过十三面(1h10min)1. 自我介绍2. 实习介绍3. 介绍几个技术上挑战比较大的,提升比较多的4. 介绍下java和c++通信的细节5. 数据转换有性能上的问题吗6. C++和Kotlin/Java的差异有哪些7. SQLite使用有遇到存储和删减导致数据库文件庞大的情况吗8. 数据库索引是怎么提高查询速度的,原理是什么9. 除了xml解析还有没有看过其他三方库的源码10. okhttp的架构是怎么设计的,有哪些印象深刻的设计,哪些觉得设计得不够好的11. 场景:微信朋友圈滑动卡顿,会怎么分析12. 卡顿是由于什么引起的13. 图片加载过多为什么会引起卡顿(频繁gc)14. 怎么解决频繁gc的卡顿问题15. 设计一个图片缓存库,会怎么设计(三级缓存)16. 不同尺寸、分辨率的图片怎么标识(key怎么设计)17. 不同尺寸的同一张图片怎么关联起来18. 内存缓存图片的淘汰思路19. 图片在磁盘的存储思路(包括图片命名,文件夹命名,图片查找策略等等)20. 图片在磁盘的淘汰策略(包括使用频率记录方法、关联其他图片、删除方法、直接删一半空间的策略等等)最后的场景被拷打麻了。。。已经不知道自己是谁了最终等了一周还是通过了。谨以此贴记录字节面试经历,也希望能带给后来人一些参考
字节求职进展汇总
点赞 评论 收藏
分享
/feed/main/detail/90350bbd3c724f4e93a6f5352dc19e33/discuss/820075410946867200/feed/main/detail/612d7f8a038e4965b1ff9142ca8c7d4a/feed/main/detail/ca293f2360c7452e8133e9770d30c31b/discuss/818058898790699008/feed/main/detail/237d9f1418df4f0d9ceb7d542fbb09e4/feed/main/detail/e65d77a58c5a49459c5b53f70a47b9fb/feed/main/detail/01486cb90d344ab19ece03c88944e8da/feed/main/detail/f8bce62b914e45f7a48f1ffa3cc4825a
26秋招新浪微博安卓开发一面
1.挑一个项目介绍2.mad(model android development)了解吗3.java版本,1.8和21的区别,有没有使用过java21的新特性4.梳理java collection5.hashmap扩容机制,引入红黑树的目的6.什么条件hashmap进化为红黑树7.如何保证hashmap的线程安全8.concurrenthashmap和用sync的hashmap有什么区别,官方提供的concurrenthashmap是怎么保证线程安全的9.cas内部如何保证版本号的正确性10.场景:如果一个数量为10的列表,大量线程读,少量线程写,如何保证效率和读写安全11.这个列表更新之后,用户在界面如何快速的看到变化12.假设列表变大了,方案会有什么变化吗13.假设变成了一个读少写多的场景呢?14.sync和可重复锁的关系是15.reentrantlock可以实现而sync不能实现的功能是?16.如何把并行的多线程变成串行的流程17假设线程a的执行时间长,b等a的时候需要有一个超时时间,比如5s后a还没执行完,b也需要执行,如何实现18.future超时机制可以被打断吗,报什么异常19串行的问题可以用现成的工具or第三方库实现吗20.vm比activity的生命周期长,这是怎么实现的,为什么activity销毁后,vm保证不销毁21.正常的退出和销毁重建在是怎么区分的22.vm中的safe state handle是干嘛的23.内存峰值降低是如何实现的,优化了什么24.热点封面的缓存是如何实现的25.常见的内存泄漏的case26.如果改成静态内部类,执行完之后怎么回调给外边27.开发过程中用过什么ai工具吗28.ai开发遇到的问题,有没有总结解决的方法29.有没有精简token的小技巧30.反问
查看29道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/a6f15b1988654ce18abdbd4a3267ba0b
网易安卓开发二面面经60min
1.项目介绍2.leak canary检测出来什么类型的内存泄漏3.leak canary检测内存泄漏的核心原理是?4.真正检测的对象是哪个(这里没get到什么意思5.lc检测的过程中,怎么判断是哪一种情况导致的内存泄漏6.lc从检测到内存泄漏,到弹出提示引导开发者修复,这个链路是如何实现的7.lc什么时候触发内存泄漏检测的8.场景:如果在activity中创建来handler并post了一个消息,此时activity被销毁,但handler的消息仍在队列中等待处理,lc能检测到内存泄漏么9.刚刚的情况,一般的处理方式是在activity destroy的时候remove message,但是已经发送的message无法被remove,怎么处理10.刚刚的情况,lc告诉我们内存泄漏,开发者怎么验证排查这是不是一个真实的内存泄漏11.内存峰值降低百分之18,有没有分析是哪一些类型的对象的优化12.动态换肤的使用场景和遇到的问题13.有没有用过总线类的框架14.mvvm除了在数据视图绑定中用到,还有其他使用的场景吗15.在activity横竖屏切换或者夜间模式切换的时候,除了销毁重建还有其他的方法吗16.项目中有了解过半屏怎么适配吗17.启动模式了解过吗,单任务的使用场景18.retrofit和okhttp的拦截器机制的区别,有没有在实际开发中用拦截器实现具体功能19.java和c如何实现跨语言交互,java调用c的链,c调用java的链呢(没懂20.跨端框架了解过吗21.反问
查看20道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/499171d15e564e40acab6780c8aaf8bb/discuss/814820308757610496/feed/main/detail/0a95707205874f23bd5b2a872f27a52a/discuss/814850507809325056/discuss/814802692764696576/feed/main/detail/9008bf77d6f14774a482ebab2e57e92a/feed/main/detail/5e4a609e233247a3b42a0df8d7cfe51d/feed/main/detail/2f0777d95e974ce686abc063a75f5349
抖音电商-客户端开发一面
查看22道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/83a324ea3a1c45d3a865d9c61ec78564
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

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