背景介绍
本人从事安卓五年有余,近期工作有变动,面试了很多深圳/广州的公司(腾讯,百度,滴滴,快手,平安,吉比特,TCL,有赞,虎牙,酷狗等),也拿到了几家大厂offer,记录下最近面试遇到的一些问题,后面方便复习,查看。
面试题包括的内容
涉及Android基础,Java基础,数据结构与算法,埋点插桩,音视频
面试题记录
yuv的数据格式?
视频画面怎么采集?
openGL的多层纹理什么意思?
硬编码/软编码什么时候使用,怎么推流?
http是怎么链接的?
okhttp底层怎么实现的?
美颜怎么实现的?
美颜算法中只有高斯模糊吗?
全埋点sdk传递的数据的包大小是多大,怎么控制大小?
全埋点sdk有没有可能传递失败,怎么处理的?
recycleView实现原理?
handler为什么没有堵塞,底层是什么?
finally的作用,怎么使用它?
手写lruCache?
Android的绘制流程?
ideHandler的原理,用处,什么时候执行?
viewModel能多个类公用吗,怎么公用?
卡顿优化,统计方法打点具体在哪些位置?
systemtrace怎么用?
内存回收机制讲讲?
viewRoomImpl 绘制流程讲讲?为什么子线程绘制会异常,可以不异常吗?
子线程设置控件图片会抛出异常,为什么子线程中settext为什么没有异常,怎么渲染?
启动优化?
glide原理?
图片错位怎么导致的,怎么解决?
列表卡顿怎么解决?
内存泄露有哪些,怎么解决?
bitmap存储内存存储在哪里?不同的版本?
组建化数据相互访问怎么处理?
路由进程间消息通讯怎么处理?
路由初始化,编译耗时怎么处理?
message回收复用机制,复用原理?
messageQueue消息插入按照什么规则插入?
handler堵塞机制原理,handler多进程怎么处理通讯?localThread怎么保证线程数据单一?
vsync的handler处理队列的优先级?
oom还有哪些?除了大图片?
glide缓存内存存在哪里的?更改内存目录怎么做?更改内部网络怎么更改
data class能不能继承?
线程池原理?无穷大线程池怎么维护四个线程运转?
liveData原理?liveData怎么处理初始化会加载一次旧数据,导致观察者接受数据重复?为什么会导致这种问题?
kotlin协程原理?多个请求不同返回值,协程怎么处理?
recycleView缓存原理?共享一个布局怎么处理?
m3u8格式?
设计模式六大原则?熟悉的设计模式有哪些?retrofit设计模式用了哪些?
okhttp怎么做ssl检验?怎么做dns优化?怎么做超时,读时动态配置根据不同请求可变的处理?