闭卷重建内存模型、堆与GC的对象、公式、算例、算法与失败边界。
移动计算与安卓系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建泄漏、生命周期与引用的对象、公式、算例、算法与失败边界。
闭卷重建启动性能与初始化治理的对象、公式、算例、算法与失败边界。
闭卷重建帧性能与列表复用的对象、公式、算例、算法与失败边界。
闭卷重建网络与无线能耗的对象、公式、算例、算法与失败边界。
闭卷重建后台唤醒、WakeLock与Doze的对象、公式、算例、算法与失败边界。
闭卷重建热、CPU/GPU与性能降级的对象、公式、算例、算法与失败边界。
对象:长生命周期对象持有Activity/View/Context或未注销监听会阻止回收。;公式:leak path=GC root→…→destroyed object。;算例:单例listener持有已销毁Activity,每旋转一次多1实例,10次可积累10个。;边界:只在onDestroy置null但注册中心仍持有;用application context不等于都安全。。
对象:Java/Kotlin对象在托管堆,原生/图形buffer另计;GC暂停与分配速率影响帧和内存。;公式:live heap=reachable objects; allocation rate drives GC frequency。;算例:每秒分配20MB、堆允许新增100MB,忽略回收约5秒填满。;边界:只看Java heap忽略bitmap/native;缓存无上限。。
对象:掉帧可能来自主线程、布局、图片、GC、GPU;列表需稳定key、合理预取和图像尺寸。;公式:jank rate=janky frames/total frames。;算例:1000帧中50帧超预算,卡顿率5%。;边界:把大图原尺寸解码;只看平均FPS。。
对象:冷启动关键路径包含进程、provider、Application、首屏依赖和绘制;非关键初始化应延迟且不阻塞。;公式:startup critical path=sum serial critical work。;算例:总900ms中分析发现日志SDK300ms可延后,理论关键路径降到600ms。;边界:为分数删除必要初始化却首屏崩溃;只测热启动。。
对象:WakeLock防CPU休眠但需最短持有;Doze批处理网络与任务,后台策略决定可执行窗口。;公式:held time should cover only critical non-interruptible section。;算例:任务总60秒,关键不可中断10秒,不应全程持锁60秒。;边界:异常未release;用wakelock弥补错误线程设计。。
对象:频繁小请求让蜂窝无线多次进入高功耗尾状态;批处理、缓存和推送可减少唤醒。;公式:energy≈transmit energy+radio tail count×tail cost。;算例:10个分散请求造成10次尾能耗,合并2批降到2次,尾次数降80%。;边界:每分钟轮询不管数据变化;为省请求一次下载巨大无用数据。。
对象:持续计算导致温升和thermal throttling,真实性能需长时测并设计质量降级。;公式:sustainable throughput≤thermal-limited capacity。;算例:短测60fps,5分钟后降到40fps,持续吞吐是40而非60。;边界:只跑30秒benchmark;温度高时继续全质量计算。。