闭卷重建主线程、Looper与消息队列的对象、公式、算例、算法与失败边界。
移动计算与安卓系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建线程安全、锁与不可变状态的对象、公式、算例、算法与失败边界。
闭卷重建协程结构化并发的对象、公式、算例、算法与失败边界。
闭卷重建Flow、背压与冷热流的对象、公式、算例、算法与失败边界。
闭卷重建WorkManager与持久后台任务的对象、公式、算例、算法与失败边界。
闭卷重建Alarm、Job与时间语义的对象、公式、算例、算法与失败边界。
闭卷重建后台限制与前台服务治理的对象、公式、算例、算法与失败边界。
对象:共享可变数据需要串行所有权、锁、原子操作或不可变快照;volatile不保证复合原子性。;公式:counter++ is read-modify-write, not atomic。;算例:两线程都读0再写1,预期2却丢更新得到1。;边界:只因偶尔测试通过就认为线程安全;大锁覆盖慢I/O。。
对象:Android主线程通过Looper串行处理输入、生命周期和绘制;长任务会阻塞所有后续消息。;公式:response delay includes queue wait+handler work。;算例:前面任务80ms,当前点击处理10ms,至少等待后总响应约90ms。;边界:主线程sleep等待结果;后台线程直接改View。。
对象:冷流每订阅执行,热流独立存在;缓冲、合并与collectLatest改变背压和取消语义。;公式:producer rate>consumer rate causes backlog unless policy。;算例:生产100项/s、消费60项/s,1秒积压约40项。;边界:重复collect发多次网络;无限buffer导致内存增长。。
对象:子协程生命周期绑定scope,取消和异常按监督关系传播,避免孤儿任务。;公式:parent completes after all children or cancellation policy。;算例:两个子任务100ms与200ms并行,父任务最早约200ms完成。;边界:GlobalScope泄漏页面任务;吞掉CancellationException。。
对象:精确闹钟、作业和普通定时器适用不同,设备休眠/时区/重启会改变触发。;公式:elapsed realtime for durations; wall clock for civil appointments。;算例:“30分钟后”应基于单调时钟,用户改系统时间不应改变间隔。;边界:周期轮询用精确闹钟耗电;本地时间计算跨DST错误。。
对象:可延迟且需保证最终执行的任务用持久调度,约束和退避由系统协调。;公式:eligible=constraints satisfied∧backoff elapsed∧not cancelled。;算例:要求充电和联网,仅联网时任务仍不应执行。;边界:用精确实时任务做WorkManager;任务副作用不幂等。。
对象:后台启动、网络、定位和执行受系统限制;前台服务只用于用户可感知持续任务。;公式:background work must fit allowed window or approved foreground type。;算例:静默遥测上传不应长期前台服务;可合并为约束网络任务。;边界:用前台服务保活所有任务;通知无实际用户控制。。