安卓工程师精选面经合集
11家公司
28篇面经
最新 热门
01-02 22:35
门头沟学院 Java
小红书客户端面经
社区工程一面(50min)拷打实习native层怎么调Java层函数。了解Native层和Java层内存模型的差异吗你在字节的工作?Activity的生命周期onStart和onResume的区别你怎么学安卓的了解View的绘制吗ViewGroup里面一些子View,是怎么个绘制流程如果ViewGroup自己有内容呢Layout是怎么做的点击屏幕发生的事具体场景,一个ScrollView里有个按钮,点击按住不动,向上滑动,事件分发过程是怎样的讲讲Java里的集合ArrayList忽然LinkedList的区别是什么Hash集合和Tree集合的区别是什么了解过Java中的并发吗,多线程间并发处理有哪些方法讲讲synchronized的特点讲讲volatile线程和协程的区别他们的上限有区别吗http和https的区别https握手过程算法题先增后降的数组去重并排序二面(37min)讲讲腾讯实习讲讲ClassLoader的双亲委派机制PathClassLoader和DexClassLoader的区别native怎么调javacpp的string转jstring的两种方式讲讲项目为什么用flutterDart是单线程模型,它内部是怎么做多线程并发的继续拷打实习大厂代码你有没有觉得什么很恶心的问题,你怎么看这个问题有什么治理手段吗拷打项目安卓中Binder的原理?你会不会觉得客户端能深钻的技术不多算法题(口答)n个人发糖果,相邻的人高的一定比矮的拿的多,至少要多少颗糖果编程题写一个生产者消费者模式三面(45min)你更喜欢做业务还是sdkJava中new一个String会创建几个对象抽象类和接口有什么区别final关键字有什么用cpp从源文件到可执行文件经历了什么可执行文件在操作系统怎么运行的调用一个函数,栈空间怎么变化返回值是放在哪的看你做过JNI,怎么动态和静态注册JNI?cpp的线程怎么call java的方法需要注意些什么安卓中遇到ui卡顿了你会怎么排查有没有用过一些工具你觉得kotlin和java比有什么优势你刚刚提到了协程,那协程是怎么实现的讲一下Handler的实现原理介绍一个你认为做的比较好的项目讲讲你在字节的工作算法题用两个栈实现队列
查看52道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/45fd6004826e49fa9ae78c0daa24befd/discuss/701106654330273792/feed/main/detail/d6d6cdc665ef45d89cd98ec2da26103c
2024-12-29 21:17
已编辑
门头沟学院 Java
wxg客户端面经
上岸了,回馈社会更新中一面(约1h)拷打项目你的登录怎么做的(WebView回调检测登录成功,html提取用户信息)经过实习你有没有学到别的方法(F12抓包,走一遍登录流程看发了什么请求,返回了什么数据,里面可能有token)之前贴吧中有人发一个链接,用户点击后会自动发一个逆天评论,怎么解决这个问题(请求中带token)token怎么来(登录时服务端返回,保存用户信息,过期时间等信息,可以用token+refresh的双token模式)拷打实习介绍一下实习为什么用到Native Hook(监听登录)Native Hook方式?(PLT hook, inline hook)inline hook原理?(改指令,跳转到代理函数)PLT Hook的原理?(修改GOT表)改什么?(目标函数的绝对地址)PLT Hook使用条件(目标函数为外部引用)怎么保证一定能Hook到?也就是你要在实际执行前hook。(Hook dlopen,加载目标so的时候自动hook)Hook时机?(attachBaseContext)讲讲Java层Hook?(反射修改ClassLoader,优先加载自己的dex)场景题native层怎么监控数组越界(写一个数组工具类)那已有的代码呢(hook malloc)hook了怎么改(不知道,提示了mprotect后说把分配内存后面的区域设为不可访问,这样越界会有异常,能被捕获)设置多大的范围?(不知道)八股安卓中内存泄漏了解吗(Service,ThreadLocal,长生命周期持有短生命周期引用)算法题解决memcpy覆盖的问题二面(约1h30min)拷打实习讲讲替换ClassLoader实习hook的细节PLT Hook的原理有哪些先决条件(外部引用)为什么同一个so里的Hook不到(调用不走PLT和GOT表)还有哪些Hook方式(Inline Hook)什么原理(插跳转指令)还有什么方法(不知道)外部引用地址是怎么填到GOT表中的(加载so的时候会记录已加载函数的地址)so函数地址是怎么来的(支支吾吾)ELF加载过程(dlopen把so加载进内存解析,具体啥结构不记得了)改符号导出表可以吗(哦哦可以,dlsym应该就是通过这个获取函数地址的)编译打包优化展开讲讲AB实验了解吗(没有了解)AB实验原理是什么(对照实验)对照实验原理是什么(控制变量观察结果)观察到B比A点击率高0.1%,可以认为B比A好吗(不能,有偶然性)那要百分之多少才没有偶然性(不知道)拷打项目有啥难点吗(没啥难点)为什么用的人这么多(口口相传)八股请求到服务器到返回结果,经历了哪些事情DNS解析是谁做的(操作系统)场景用过微信网页传输助手吗,怎么做一个消息收发的功能(可以用WebSocket)服务端你会怎么设计(保存最近几十条消息,带id)客户端呢(长轮询,服务端收到消息后如果对方在轮询中就返回消息,客户端上线主动同步消息,告诉服务器本地最新消息id,然后服务器推送后续消息)你是怎么想到的,了解过吗(没了解过,yy出来的)闲聊为什么没转正准备读研吗,为什么不读算法题第k大数位和再数位和三面(约1h 45min)看你简历很优秀,奖项排满了,学习成绩怎么样(一般)为什么不转正在腾讯实习才系统学安卓?(是的)你做了笔记?看看(内部维基上)学了安卓有什么收获?(学到很多,也更了解kotlin了)你提到了kotlin,那说说kotlin协程和线程的区别(语言级线程,有3个调度器决定协程)用Main调度器会创建线程吗(不会)对比普通线程处理上下文,协程是怎么处理的?(也有上下文,但比线程少点)你有没有研究过kotlin协程的底层原理(io操作或suspend函数时通过挂起让出cpu)会挂起线程吗(不会)怎么挂起的(也是保存上下文吧)讲讲怎么实习优化编译打包速度的你觉得实习做的最有挑战的事是什么(native hook)展开讲讲你用PLT Hook的时候也顺便把inline hook也了解了吗(是的,安卓的Hook方式都了解了)有写文章吗(有)(投屏展示)有遇到困难吗(cpp编译成elf时函数名字改写)再讲讲替换ClassLoader的Hook方式?知道Apk包含哪些内容吗(classes.dex,lib,res,assets,resource.arsc索引)有没有用打印log去看过arsc索引文件有哪些东西(有,用mt看过,包含各种id和路径,以及color和string)从你的角度为什么要用这种方式去组织资源(便于访问,图片方便快速定位,color和string这种用的多的每次都从文件里读就慢了)他不会一次性读出来吧,你知道他怎么读的吗(不知道)场景题微信14亿用户信息,不用数据库,设计一个用纯文件去保存的方案(目录+数据)如果要修改信息呢(可以用链表存kv对)你得分页吧,基于这种分页结构,你还会怎么去完善它(同一个用户的信息尽量在同一页)这样每页都会有碎片,你不能每次都开一个新页吧,太浪费了,怎么找空页(用一个链表按顺序记录有碎片的页)这是一个好的设计。那并发读写效率差怎么解决(分表)怎么分(每一百万个用户一个文件)你对flutter的掌握程度怎么样(偏使用)有遇到卡顿的情况吗(有,ListView滑动卡)有没有去优化(没有)你项目中图片上传怎么处理的(压缩)只考虑size吗(是)微信图片考虑的就多了继续挖了点细节。闲聊讲讲竞赛经历玩什么游戏除了竞赛,还有什么能证明你的能力(逆向破解暴力薅某个软件的羊毛)智力题8个球有1个重量不一样要称几次能找出来(2次)如果是n个呢(log3(n))很多公司给你发offer,你会怎么考虑(优先微信)我估计微信给你发offer问题不大。面委(待更新)
查看149道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/56fefa5c0a874b82b200fbdac2af5ecd/discuss/700789924559118336/feed/main/detail/32c99d4b0efe4f13a04fddbd1f2ef564/feed/main/detail/1cd641469ca44ffcbb03c4d54efd330e/feed/main/detail/e9d96e5d290e4d468e8d4aa65a508ca5/feed/main/detail/d41e7f36bca8473ba7b32cae6a113628/feed/main/detail/a7955987f20b41c4b657c08a1ddbeecf/feed/main/detail/d4a3393598d243c18067301c2240a837/discuss/688401088382255104/feed/main/detail/468437c61c8e49a5aaa045f73659abee/feed/main/detail/601d911e9e024250a350d419afad76a6
2024-11-15 16:28
江南大学 Java
理想安卓开发二面
##理想面经####理想安卓##总体评价:面试官有点不走心,总是扣手机,其他没啥问题。1. 首先自我介绍,简单问了下项目,问了spring IOC,以及项目里面常用的三个注解,然后讲了下用法跟实现原理2. 问了JUC包里面锁的实现原理(简历专门突出了下并发编程能力)3. 介绍本科学习的课程(我说学了计网,操作系统,数据结构与算法)4. 让我分别说一下这三个课都是学什么?(我重点讲了下,他说要我完整的讲,第一章是什么内容第二种是什么内容。我:???还带这样的。尽量完整的说了一遍。)5. 说我又是JAVA后端又是深度学习的,为什么最后选安卓开发?(逼着跟你讲实话是吧,后端跟算法我但凡能拿到offer我至于转安卓吗)6. 那你安卓学到什么程度了(老实说了只学了点基础)7. 安卓的四大组件知道吗(寄!其实根本还没学,只知道Activity,然后就被面试官笑了)8. 那以后给你一个项目你怎么能够保证你能够按时交付任务呢?(表示入职前能刻苦学习跟上进度)9. 那你任务安卓开发需要跟那些角色进行交流沟通(就说了测试,然后面试官开始引导说有UI设计,产品等)10. 问了点计网的八股文,输入到URL到网页显示发生了什么?UDP/TCP,TCP的演变11. 学习计算机网络对你的帮助。(理解不同场景使用不同协议)12. 场景提:做一个直播功能app,需要涉及到哪些协议。(就答上来一个UDP,然后开始引导,用户信息用什么比较好,答TCP,弹幕用什么?答UDP,为什么不用TCP?答UDP可以广播。信息丢失怎么办答?可以用UDP实现应答机制,保证可靠传输。面试官总结:所以用户信息用TCP进行传递,直播内容用UDP保证实时性,弹幕用UDP的广播机制实现,用应答机制保证可靠传输是吧?答是的。)13. 没有安卓开发经验,如果你成功入职你打算怎么办?(我会拼命学习的,给个机会吧你)反问:基本感觉寄了,但是还是问了评价。评价就是没有安卓经验有点劝退的意思。反问:需不需要提前实习?不需要,也可以安排实习。可能有兄弟就要问了?明知道要面安卓为什么连安卓四大组件都不知道?因为一面面试官说没有安卓经验也是没问题的,更看重基础能力,所以就没有去特意背安卓八股文,不如好好巩固了下基础(而且一面到二面也没几天)。
查看13道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/811daef1b65d453e8829d7ddfaa78226/feed/main/detail/0b1e4141a4f2469184a413f1acb9a720/discuss/685277606140297216/feed/main/detail/a5b05e5b44eb4cca8789692162518426
2024-11-09 16:03
江南大学 Java
理想安卓开发一面面经,攒人品
什么时候才能拿到offer啊,太难了今年,已经后悔考研了,就一个华勤的意向书被晾了半个月了,焦虑的一批。面了一个多小时,问了很多,记得不是很清楚了,只能凭印象记录点了。面试总体评价:面试官人还挺好的,虽然中途换了一个人,但是气氛还是比较轻松的,不过我还是紧张到发抖就是了,面试的问题除了八股文之外,有很多一些平时写代码不会注意的小细节问题(背八股文的话是根本不会注意到的问题),或者可能就是代码写太少导致的。1. 自我介绍2. 是不是没有安卓开发经验,(是的),那就以JAVA基础为主来考察。3. 了解JAVA的哪些内容?(JAVA集合,Spring,JUC等)。4. Synchronized原理是什么?5. 了解设计模式吗?手撕一个单例(共享屏幕,看着你写,中途面试官说有事情,然后换了一个面试官继续,写了一个双重检测锁,然后跟面试官说最安全的单例应该用枚举类来实现)。6. 继续多线程的问题,大概讲讲JUC有哪些内容7. 项目中用到锁了吗(虽然确实深入学了下JUC但是鼠鼠一来没有实习,二来项目也没做多少,天天被压榨的写煞笔论文,老实说用的不多),然后问JAVA中有哪些锁,有什么区别,JUC中的并发安全的集合类有哪些,ConcurrentHashMap实现原理等等。8. 线程池有哪些参数,项目中怎么用的9. 线程池怎么用,参数设置有哪些参考因素(IO密集,CPU密集)10. 然后出个题,问核心线程有多少个,非核心线程多少个。(事后发现回答错了,是阻塞队列满了才会创建非核心线程,想紫砂了,JUC学了大半个月,啃了好多源码,倒在这种基本问题上了)11. 一个线程用Synchronized获取到了锁,然后在这个线程中又new了一个线程去获取锁,这种情况能调用成功吗(因为前面说了Synchronized与ReetrantLock的不可重入的区别,我说应该不行,因为这样不就死锁了吗)12. 什么情况下会内存泄漏,问的很细,还问了栈溢出算内存泄漏吗(事后发现栈溢出、内存泄漏、内存溢出是不同的,基础漏洞太多了)13. 然后又问了异常相关的问题,然后又问栈溢出是异常吗,那他能被捕获吗?(我想了一会,他又补充到,他是异常吧,我顺势嗯了一声,然后他又说那他可以被捕获吗,我又嗯了一下,他就笑了,仔细一想发现完全被他带到错误的答案了,不过还是自己太菜了。)14. JAVA垃圾回收算法15. 循环依赖了还能回收吗16. JAVA有哪些引用类型(知识盲区了,只记得一点点)17. 问了Redis有哪些作用场景18. MySQL的视图有什么优点19. MySQL慢查询优化20. http与https的区别21. 问leetcode刷的多不多,我说还好,然后就让我写leetcode第一题。。。我哪记得第一题是啥,然后就跟我说是两数之和。然后就用hashMap写了。22. 反问:技术栈是JAVA还是kotlin。kotlin更多JAVA也有。23. 反问:评价。评价是基础还不错原理都能说出来,但是细节把握的不好(光背八股文的缺点,研究生几年确实没怎么写代码,天天炼丹写论文,感觉还不如本科自己,这时候就该骂导师了,还在pua,“发好文章就有好工作啦,要培养科学思维,不然一辈子打工人”,想鲨了他的心都有了)最后面试官说不出意外后面应该还有一面。也不知道是过了还是没过,等了2天了,秋招到现在还是0offer,焦虑的一批。最近也是彻底放弃JAVA后端转安卓了,感觉安卓的岗位门槛还是第一点,面试给的多一些。
查看21道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/47fed3002fcd42cd8d1df16a72f0f713/discuss/685269399464345600
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

牛客网
牛客企业服务