闭卷重建Activity生命周期与可见状态的对象、公式、算例、算法与失败边界。
移动计算与安卓系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建Fragment、导航与返回栈的对象、公式、算例、算法与失败边界。
闭卷重建Intent、显式与隐式调用的对象、公式、算例、算法与失败边界。
闭卷重建Service、绑定与前台服务的对象、公式、算例、算法与失败边界。
闭卷重建Broadcast与系统事件的对象、公式、算例、算法与失败边界。
闭卷重建进程死亡与Saved State的对象、公式、算例、算法与失败边界。
闭卷重建组件状态机与非法转移的对象、公式、算例、算法与失败边界。
对象:Fragment视图生命周期短于Fragment对象;导航栈定义返回行为与状态恢复。;公式:view references valid only between onCreateView/onDestroyView。;算例:Fragment仍在back stack但视图已销毁,持有旧binding会泄漏/崩溃。;边界:观察Fragment生命周期却更新已销毁view;嵌套栈返回错误。。
对象:Activity在创建、启动、恢复、暂停、停止和销毁间转换;回调不是业务状态机本身。;公式:UI resources active only within declared lifecycle state。;算例:进入后台从RESUMED经PAUSED到STOPPED,回前台再STARTED/RESUMED。;边界:在onPause做长阻塞保存;假设onDestroy总会执行。。
对象:Service不是独立线程;started/bound生命周期不同,前台服务需可见通知和受限用途。;公式:service work must move off main thread and obey background policy。;算例:onStartCommand里同步执行5秒会阻塞应用主线程而非自动后台。;边界:用常驻前台服务逃避调度限制;忘记解绑导致泄漏。。
对象:Intent携带动作、数据、类别和extras;显式指定组件,隐式由过滤器解析,外部输入不可信。;公式:resolved set={components matching action,data,category and policy}。;算例:隐式分享Intent匹配3个应用,用户/系统可选择其中之一。;边界:把Parcelable extra当可信对象;敏感Intent被恶意应用截获。。
对象:系统可杀停止进程;Saved State适合小型UI恢复线索,持久业务数据需数据库/文件。;公式:recovery state=durable data+small UI reconstruction key。;算例:列表滚动位置和草稿ID存state,草稿内容存数据库;重建可恢复两者。;边界:把大对象塞Bundle触发事务过大;ViewModel当持久存储。。
对象:广播可显式/隐式、动态/静态注册;后台限制、权限与顺序会影响接收。;公式:delivery set depends on registration,export,permission,system policy。;算例:动态receiver只在STARTED注册,停止后不应接收UI更新事件。;边界:receiver中长I/O导致超时;导出receiver信任extra。。
对象:业务流程应独立建模状态和事件,生命周期只触发保存/暂停;非法事件明确拒绝。;公式:next=δ(state,event),undefined transition→error/no-op by contract。;算例:上传状态Pending→Running→Success;Success收到Start是非法转移。;边界:用多个布尔变量产生矛盾组合;重复事件造成双提交。。