快手24秋招 客户端二面面经

8.8号下午面试,面试时间在1个小时左右,二面主要围绕项目展开,从架构到源码,框架设计,数据结构设计,算法题。

问的确实比较深入,平时还是要多去了解学习,不能太在乎皮毛。

  1. 实习过程中用的什么架构?
  2. MVVM架构
  3. MVVM架构的优势,为什么不用其他的,调试的时候会有哪些缺点?
  4. 优点:MVVM解耦好,方便测试,重复使用方便等
  5. 缺点:性能开销等;面试官提示:约束性弱,数据流混乱
  6. MVVM中用的是什么处理数据流?
  7. 实习项目用的是DataBinding,优缺点
  8. 为什么没用Livedata,Rxjava了解吗?优缺点是什么?
  9. Databinding 是在view层的事情,是数据的绑定
  10. LiveData是一种可观察的数据存储器类,当底层数据发生变化时,LiveData 会通知 Observer 对象
  11. LiveData在数据对于组件生命周期的表现更加优秀,且兼容更多类型的数据
  12. 看到实习使用Opengl ES库,说一下它的执行流程(用OpenGl当时实习只是了解一点点,没想到面试官是做个方向的,撞枪口上面了
  13. 常用的渲染管线有了解吗?
  14. 顶点处理阶段:
  15. 顶点输入:从应用程序中传入原始的顶点数据,包括顶点位置、法线、纹理坐标等。
  16. 顶点着色器:执行与顶点相关的变换和计算操作,将顶点从模型空间转换到观察空间,并应用投影变换。
  17. 图元装配:将顶点组织成几何图元,例如点、线、三角形等。
  18. 光栅化阶段:
  19. 光栅化:根据图元的几何信息,将其转换为像素片元,确定片元的位置和属性。
  20. 片元着色器:对每个片元进行着色计算,包括光照计算、纹理采样和颜色计算等。
  21. 片元操作:执行深度测试、模板测试等操作,确定哪些片元应该保留,哪些应该被舍弃或混合。
  22. 输出阶段:
  23. 帧缓冲:将最终的片元数据写入帧缓冲中。
  24. 显示设备:将帧缓冲中的像素数据传送到显示设备上,呈现给用户。
  25. 那绘制的时候输入的是什么?
  26. 顶点坐标,位置,颜色,绘制命令等
  27. 那这些数据是哪来的?
  28. 老老实实说,是调用之前3D组的SDK,前面的不知道
  29. 聊聊view绘制,有看过源码吗?
  30. 巧了,正好看过这块的源码,一顿输出~
  31. view刷新绘制触发过程,调用requestLayout()方法,什么时候会重修绘制?
  32. 下一次的布局周期
  33. 那布局一周期是多少?
  34. 一脸懵逼,是真的不知道,面试官告知是16ms,因为是60hz刷新!
  35. Android move事件有几个坐标?
  36. 回答有两个,移动前和移动后
  37. 面试官告知和屏幕采样率有关
  38. 设计一个Android网络库任务调度,其中执行请求的设计
  39. 参照Okhttp,有一个拦截器,然后内部有线程池
  40. 核心线程量为0,非核心线程量为定量

  • 算法
  • 10000000个数字的int数组,要求对前10000个小的数字进行排序
  • 面试官说堆排可以,但是你真的能无错的写出来大顶堆吗?
  • 我最后写了一个快速选择排序,就是只要选择左边的部分

结束,后约三面

#快手面经##安卓##快手##面经##客户端面经#
面试集合专栏 文章被收录于专栏

个人的面试集合,具有时效性

全部评论
这也太牛了
点赞 回复 分享
发布于 2023-08-24 11:18 天津

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
1 21 评论
分享
牛客网
牛客企业服务