喜马拉雅拉拉京东新鲜爱奇艺Android(喜马拉雅线程流程原理源码)「喜马拉雅 京东 爱奇艺」
2024-08-14 05:09:24 空调知识 0
作者:08_carmelo面试经历面了一些上海的互联网公司,例如爱奇艺、京东、喜马拉雅、得物、B站、某安、美团等等,记录了部分面试真题。大部分都可以自行搜索到答案,有疑问的可以留言交流~【爱奇艺】一面handler里面的nativepollonce 为什么不会anr?对称加密和非对称加密的区别。布局嵌套过深会导致什么问题?java为什么跨平台?c是跨平台吗?app打包过程。协程挂起和线程阻塞的区别。so文件加载流程。AIDL怎么实现?字节码是什么?【爱奇艺】二面和一面间隔时间太久了,放弃。【B站一面】一句话描述协程。协程只在主线程使用,怎么实现挂起和切回的?协程的轻量级怎么体现的?ViewModel源码实现,它在Activity重启后为什么恢复数据?数据保存在哪里?和onsaveinstancestate有啥区别?LifeCycle源码实现。LiveData源码实现,先后setValue两次,都能收到吗?简述View的刷新机制,屏幕刷新信号从哪里发出来的?硬件加速是否了解?SurfaceView的工作原理是否有了解?组件化相关,WMRouer为什么可以这么方便实现组件之间通信,背后原理。【某安一面】多线程同步有哪些方式?sycnized和lock区别,分别用于什么场景?线程池原理。线程池拒绝策略怎么自定义?怎么实现线程加入线程池的优先级?volatile底层原理?是否线程安全?死锁怎么发生?怎么防止死锁?介绍下apm,怎么捕获crash和native crash?腾讯matrix怎么统计app启动时间,页面加载时间。gc回收算法有哪些?分别用于什么场景?jvm有哪些区域?栈的作用。算法 三数之和。【某安二面】问项目 httpdns相关:为什么要httpdns?怎么处理握手问题,ip直连能否避免dns挟持?问项目 首页弹窗优先级。做过哪些内存优化。怎么全局捕获app所有异常,并且保证app不崩溃,不卡死。如何获取app的所有线程信息?怎么查找anr?安卓有哪些进程间通信?为什么使用binder?mmap发生在哪个阶段?怎么找到目标进程?leakcanary怎么检测内存泄露的?算法 两个栈实现一个队列。【某安三面】gradle生命周期,怎么自定义插件?统计编译耗时插件,运行在哪个阶段?描述从编译到apk的过程,以及gradle有哪些task参与其中?如何实现字节码插桩?子线程更新ui会报什么异常?从哪里抛出来的?子线程怎么更新textview不会crash?activity window view显示出来,全流程源码解析,精确到类和核心方法。数据库用的什么库,熟悉sql语句吗?mmkv为什么比sp高效,存储的数据结构是什么样?mmap为什么比io高效,说下实现原理。sp存在哪些问题?hashmap put流程源码解析,链表和树转换时机?扰动函数的作用?为什么hashcode & n-1?扩容时机?gcroots有哪些?activity有个内部类handler,描述下引用关系链路,并说明为何gcroots能访问到activity。加载xml和动态创建view哪个高效?为什么加载xml效率低?如何减少布局嵌套?jetpack compose的原理。recycleview缓存实现?开发中怎么优化?算法 给定一个字符串,输出所有不同字符组合。【京东一面】简述LinkedHashMap源码实现。说下Handler流程。handler用于线程间通信,怎么保证线程安全?界面有个Button,手指放上去慢慢移到Button外的区域,描述事件分发的流程。说下View的绘制流程,包括渲染和绘制。算法 两个单链表合并成有序链表,说下思路。组件化的实现,WMRouter调用其他模块的对应方法怎么实现的?【京东二面】完全忘了。【京东三面】问项目细节,你主要负责的模块,怎么设计?算法 N宫格,从左上角A出发只能向右或者向下走,求所有不同路径的条数总和。手写伪代码(用递归就可以)。【京东四面】平时的上下班时间点。有没有使用过咱们的app,有什么建议。前面的3次技术面有什么感受。职业规划。【京东HR面】平时的上下班时间点 balabala【货拉拉一面】简述https的握手流程,私钥加密谁都可以破解,那么有什么意义?oom能否try catch?公钥和私钥的区别。客户端怎么安全保存私钥?怎么加载一张超大图?采集app启动时间原理。exception分类。oom属于哪种分类?弱网 无网优化。【货拉拉二面】说下项目中怎么运用MVVM?viewModel的源码实现。设计一个图片加载框架(包含内存缓存和本地缓存),参考Glide回答就行了。简述hashMap put方法的流程,一些细节追问:什么时候链表转树?为啥要转什么时候树再次转回链表?英语口语如何(我面的是国际化业务)。【货拉拉HR面】办理了居住证积分吗?balabala【喜马拉雅一面】有了解过直播吗?有哪些常见协议?说下自定义View的一般流程。多个线程异步执行任务,主线程需要等待它们都完成再继续,有哪些实现方式?说下handler的流程,异步消息是什么?Android中哪些场景会发送异步消息?我们在代码中可以手动发异步消息吗?弹幕怎么实现?比如直播中的流星雨特效,跑车这种怎么实现出来?说下你开发中做过的一个动画。了解过SurfaceView的原理吗?有没有接触过Socket编程,简单说下代码实现。加载一张超大图怎么实现?补间动画和属性动画各自的原理。内存优化有哪些手段?开放性题目 开发中怎么提升整个app的稳定性?【喜马拉雅二面】动态代理是怎么实现的?你熟悉哪些设计模式?画一下动态代理的类图。说下插件化原理。说下热修复的基本原理?比如QQ空间的方案和Tinker。算法 判断两个单链表是否相交及找到第一个交点。【喜马拉雅HR面】对公司感觉怎么样,之前有了解过吗?是否愿意承担一些管理角色。【得物一面】狂问Kotlin相关,比如委托的实现原理,协程原理,kotlin的好处,kotlin编译流程,常用的kotlin技巧。app的打包流程。View的渲染绘制流程。【得物二面】inflate加载view过程。简述okhttp源码,请求怎么管理,它的线程池怎么实现?apt原理。viewmodel为什么可以恢复数据?livedata可以保存多个数据吗?aac架构有什么优势?mmkv了解吗?算法 单链表找到倒数第K个元素。算法 单链表找到中间的元素(2个题都用快慢指针就可以了)。组件化怎么做的?WMRouter编译期间做了什么?【得物HR面】没问什么特别的。经验tips1、必考题一定要掌握
【必问】Handler的工作流程,源码要记牢,细节要理解透,比如怎么唤醒主线程的,while为啥不会阻塞主线程。【必问】View的绘制流程,包括渲染和View本身的绘制3部曲。【必问】MVVM的含义,ViewModel+LivaData+LifeCycle的源码实现。【必问】自定义View的一般实现流程。【必问】内存泄漏怎么排查,OOM怎么排查?【必问】你做过哪些性能优化?【必问】Retrofit的实现,动态代理。【必问】组件化相关,WmRouter的原理。【高频】ANR怎么排查,有哪些原因?【高频】APP打包流程。【高频】kotlin常见知识点的原理,如协程,委托,扩展函数,编译流程。【高频】Android有哪些跨进程通信,AIDL的代码实现。【高频】怎么加载一张超大图?【高频】OkHttp的线程池实现,Java线程池原理,拒绝策略怎么自定义?2、算法准备有时间就刷剑指offer66道题目,没时间就掌握一般的套路,回答一些常见题目基本够了。参考这个:https://zhuanlan.zhihu.com/p/386785887https://zhuanlan.zhihu.com/p/1094314593、关于性能优化你做过哪些性能优化?这个点也是经常被问到,我的建议 不要随意把别人博客的性能优化当成自己做过的,很多都是纯KPI项目,他们可能自己都没去实践。面试官一听就知道你在瞎说,挑一些相对靠谱的结合自己项目说下,然后拓展一下还未实现但是准备去做的。最后在这里还分享一份由大佬亲自收录整理的学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。当然,你也可以拿去查漏补缺,提升自身的竞争力。真心希望可以帮助到大家,Android路漫漫,共勉
如果你有需要的话,只需私信我【面试】即可获取