
中国移动高级Android面试:从「会用」转向「懂原理、能治理」。咪咕视频、掌厅亿级用户对稳定性要求极高,OOM、卡顿、ANR 是绕不开的硬指标。面试官不考你背概念,他要你讲清完整的「监控-定位-治理」闭环,并用数据证明收益。Q1:内存泄漏常见场景和排查手段?五类场景:非静态内部类隐式持有 Activity;未反注册的系统监听(传感器、广播、EventBus);单例或静态变量长期持有 Context;Handler 延时 Message 持引用;大对象(Bitmap、大集合)未及时释放。排查分三层:本地 LeakCanary 看引用链,Profiler 看支配树定位谁握住大对象,线上靠 OOM 堆栈+崩溃聚合看大盘。治理原则是先建监控再定点清理,别凭手感。曾有一个页面泄漏率 0.8%,接入 LeakCanary 定位到未反注册的传感器监听,修复后降到 0.1%。LeakCanary.install(application) // 自定义监听:onLeakDetected(heapAnalysis){ 上报引用链 }深度解析:高级岗要讲清「指标-工具-根因-收益」闭环。易踩坑是只在测试机复现、没看线上大盘,结果发了新泄漏自己都不知道。面试官常追问:支配树和引用链有什么区别?支配树看的是谁活着导致它无法回收,比单纯引用链更能定位根因。Q2:卡顿/掉帧怎么定位与优化?先量化再动手。定位:Choreographer 监控每帧耗时,超过 16.6ms(60fps 单帧预算)即掉帧;Systrace/Perfetto 看每帧各阶段耗时、CPU 调度、锁等待、Binder 调用、GPU 合成。优化: