流程总览
客户端校招流程与后端相近:笔试(算法为主)→ 一面(语言+平台基础)→ 二面(项目+客户端架构)→ HR 面。算法题量通常略少于后端,但平台原理问得更深。
一面高频题
- 内存管理:引用计数与可达性分析各自的原理与坑(循环引用怎么产生怎么破)?
- UI 渲染流程:从数据变化到屏幕像素经历了什么?掉帧的常见原因?
- 主线程为什么不能做耗时操作?子线程更新 UI 会发生什么?
- 生命周期:页面切后台/被回收/转屏时状态怎么保存恢复?
- 网络:HTTP 缓存策略在客户端怎么落地?弱网下怎么做体验兜底?
- 手写:LRU 缓存、多线程顺序打印、字符串处理题。
二面高频题
- 项目深挖:启动优化/包体积优化/卡顿治理做了什么?用什么工具定位?数据前后对比?
- 客户端架构:模块化拆分怎么做?组件间通信与依赖管理方案?
- 跨端:用过 Flutter/RN 的会被问渲染原理与原生桥接机制。
准备清单
- 每个项目准备一组性能数字:启动从 Xms 降到 Yms、帧率从 X 提升到 Y。
- 平台官方文档的性能章节至少通读一遍,工具(Profiler/Instruments)实际用过。
- 简历技术词自查:写了「熟悉多线程」就要能讲线程池参数与死锁排查。