得物 iOS一二三面 面经

据说发面经能有好运,祝福各位小伙伴一波!offer多多!

---
得物app ios开发电面: 30min

简历项目balabala
Any 和 AnyObject 有什么区别?
逃逸闭包 vs 非逃逸闭包?
闭包在什么场景用?举几个例子;
互斥锁和非互斥锁有什么不同?应用场景说一说?
怎么理解runloop?
Charles抓包了解吗?
ARC模式下:autorelease pool 有什么用?可解决什么问题?
有ABCD四个任务,要求ABC异步执行,全部完成后,才能执行D,有几种方法实现?
cocoapod 的 install vs update 有什么区别?
git 的 rebase 和 merge 说说?
组件化怎么做的?
Http vs Https?具体区别?
TCP握手,在http 和 https 时有什么不同?
如果视频文件太大,要怎么上传?怎么断点续传?
你有什么想问的;
---

二面(0721): 60min

自我介绍
coredata 是什么?怎么用的
sqlite 是什么?优缺点
上面这两比较,各自的特点
app启动太慢要怎么优化
app体积太大要怎么优化
那如何优化第三方包体积
动态lib和静态lib区别?原理说说
动态lib和静态lib是如何影响启动速度的
category 是如何影响启动速度的?extension呢?
图片压缩与视频压缩有做过吗
你简历项目里最有挑战的是什么,说一个
手撕快排;
有10w个数字,现在只要找出最大的1k个并将这1k个排好序,怎样又快又省空间

---
三面(0722): 30+min

详细说说项目做了什么
app怎么检测卡顿?用什么工具
项目如何做优化,想到的都说说
如何保证app运行流畅
离屏渲染说说
对互联网公司加班怎么看?你习惯吗?
你有什么想问的


#iOS面经##社招##得物app##iOS工程师#
全部评论

相关推荐

算是这岗位里屈指可数的面经了,看牛客几乎没有这块。### 猿辅导 framework1. 自我介绍,正在做的,做了什么?项目,模型,方案开发,维护,移植。开始了解模型是干啥的,模型的定义,做了什么后,开始问我在模型里的角色:我的角色,参与业务逻辑的开发,对接systemUI和launcher等部门; 模型的搭建是大佬做的2. linux中的epoll机制没回答上来,转向kernel调度,内存3. 一个应用是如何绑定到具体的核cgrouptaskset——sched_setaffinity问的很细节,具体到代码,————cgropu, echo 写pid到对应的组, 或者是settaskprofiles函数4. 问cgroup,聊到的很多一些cpuset等等,都会问到,很细节sf设置cgroup,在源码,问到具体的源码和函数————其实就是SetTaskProfiles,cgroup提供的api;aosp原生的就有;只需要修改组即可5. 系统提供的接口,如何绑定pid到某个核taskset——sched_setaffinity6. mtk厂商的调度算法,没回答上来,这个确实答不上来,kernel原生的都没搞明白7. 转而问mtk的powerhal,sbe其实也是我自己提到的,上一个没答上来;简单介绍了powerhal,但是不感兴趣,就简单说了下,过去了8. 开机过程的cpu调度这个问题,我没明白问的啥,**开机的性能优化,开机时间优化,开机后卡顿优化** 重点了,经常被问到9. 开始问我开机的过程优化的方案,我没搞过,说了preIO预读的,但是没说清除**这里说了很久,给自己挖坑,方案还是要清除到每一行代码和逻辑原理**更多的思考: 面试官思路很清晰,和我聊这个方案,从设计出发,比如是如何得到应用的耗时的,哪些应用的耗时。这个其实是公司里的工具打出来的,但是听者不清楚,所以后续的方案;如果是非手机厂商,建议从一个方案如何设计的开始聊起。聊到了空载负载,面试官疑问,负载下,io预读方案去加载到内存,岂不是引起了更高的负载;以及我临时发挥了,io预读方案是解决高负载,高io下的问题, 面试官的疑问,是如何知道机器是处于高io下的;10. 显示模块的流程被指出说的很笼统,**需要挑一个模块,看代码,详细的说出来机制原理,如何做到的**11. 我说了比较熟悉的Choreographer,问我的机制,原理,承上启下我没说清楚SBE的埋点,急拉策略和Choreographer的配合**这里面试官其实懂很多,也知道Choreographer,但是只知道承上启下这些,如果说了面试官不懂的细节,就很加分;急拉 插帧**12. 反问总结整体回答的都太笼统,不能和面试官聊出细节出来,指出这些项的话,比如sf模块很底层如果能聊到细节,是如何和绘制线程配合给buff相互传递的,都会很加分。### 极氪汽车1. 介绍2. 应用冷热启动如何分析,优化方案(io预读)————我说了PreIO读取多少资源,odex、vdex读取的动作是怎么读的,开一个线程?在哪里开的内存很低的情况下,继续读取,是否存在问题?内存更低了?收益是如何拿到的?3. 应用启动优化的其他策略————我回答 绑核和提频; 但是这里策略有点少了子线程的耗时会影响到主线程的UI线程,如何解决?4. input流程**事件分发流程学习**耗时点会在哪,有什么优化方案————我这里没啥优化方案说的5. 开机流程如何分析开机耗时,以及开机耗时的优化6. 卡顿问题如何分析———— 主要就是看traec如何定义出卡顿,识别卡顿了,没有竞品参照?**这里感觉msg是车机的确实没竞品的担心**如果是应用自身卡顿,有什么解决(应用层优化了,书籍有)———— 应用自身没办法解决7. cgroup问了其他的绑核能力,一个亲核的api,需要了解cgroup如何实现的绑核**cgroup的setTaskprofiles的函数固定核的原理,cgroup原理有没有了解**用户写入 cpuset.cpus → 内核解析并更新 cpuset 的 allowed_cpus → 遍历 cgroup 中所有进程 → 调用 update_tasks_cpumask() → 更新进程的 cpus_allowed → 触发调度器重新决策8. 进程优先级机制———— 没了解9. 多窗口下的焦点,这个是车机常见场景;多窗口模式———— 不是很了解10. 低内存查杀的机制和原理,lmkd———— 只说了水位,原理没看11. 内存优化参数的修改方面———— gc的参数修改修改阈值的优化参数方案应用频繁触发gc的原因,如何调整阈值gc的占用资源很高,如何优化————结合管控12. lowmemorykiller原理?lmkd是如何知道系统的内存的16. dfx17. 模型的搭建18.### 得物1. 逮着方案问,没啥技术含量,应用和系统做的事情不一样,会关注方案的细节,为什么这样,为什么不那样,怎么衡量出来的。每一步说不好,都是给自己挖坑。有算法题## 商泰汽车1. 自我介绍2. 如何分析启动耗时——应用启动过程,哪些地方会存在耗时3. 开机问题分析——开机流程——开机过程做的优化方案4. 改过什么参数我说了gc参数,这里我说了gc参数,需要多加一些调优参数5. 黑屏问题如何分析6. 和sf相关的问题7. 应用保活机制8.## 小米汽车1. input流程,wq rq aq2. 应用启动和动画流程3. handle机制4. 锁文件pinner、mlock5. 应用启动流程6. epoll7. pagecache原理8. 内核 公平调度原理 ,如何实现的公平机制9. 方案深挖6. 埋点,监控都问的十分细节, 丢帧的开始点,结束点,trace能力支持,system-server如何实现的
点赞 评论 收藏
分享
评论
10
32
分享

创作者周榜

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