闭卷重建View测量、布局与绘制的对象、公式、算例、算法与失败边界。
移动计算与安卓系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建Compose重组与状态快照的对象、公式、算例、算法与失败边界。
闭卷重建帧预算、VSync与卡顿的对象、公式、算例、算法与失败边界。
闭卷重建输入分发、手势与冲突的对象、公式、算例、算法与失败边界。
闭卷重建屏幕密度、单位与资源的对象、公式、算例、算法与失败边界。
闭卷重建可访问性语义与焦点的对象、公式、算例、算法与失败边界。
闭卷重建窗口、旋转与自适应布局的对象、公式、算例、算法与失败边界。
对象:声明式UI由状态生成;读取状态的组合范围决定重组,稳定性和key影响复用。;公式:UI=compose(state),recomposition should be scoped to readers。;算例:列表100项只有1项状态变,稳定key与局部读取应避免全列表重组。;边界:在composition执行网络副作用;可变集合原地改不触发观察。。
对象:传统View经历measure/layout/draw;父子约束和请求重布局会影响帧成本。;公式:frame work=measure+layout+draw+GPU composition。;算例:四阶段3、4、5、2ms,总14ms,低于60Hz约16.67ms预算。;边界:在draw中分配大量对象;嵌套权重触发多次measure。。
对象:触摸事件经命中、拦截和手势识别,多个识别器需协调阈值、取消与可访问替代。;公式:gesture decision uses movement,time,pointer count and ownership。;算例:滑动阈值8dp,移动5dp仍可视为点击候选;移动12dp进入拖动。;边界:消费DOWN却不处理CANCEL;手势只有视觉无读屏动作。。
对象:60Hz帧预算约16.67ms,120Hz约8.33ms;超预算造成掉帧或延迟。;公式:budget=1000/refresh_rate ms。;算例:120Hz预算8.33ms,某帧12ms超约3.67ms。;边界:只优化平均FPS;在debug/profile错误环境测渲染。。
对象:控件需名称、角色、状态、动作和合理焦点顺序,触控与键盘/开关控制任务等价。;公式:accessible task pass=discover∧operate∧feedback∧recover。;算例:图标按钮可点击但无content description,发现性条件失败。;边界:把装饰图都读出;自绘控件无语义节点。。
对象:dp表达物理近似尺寸,sp尊重字体缩放,px用于实际像素;资源按配置选择。;公式:px=dp×density。;算例:48dp在density=3设备为144px。;边界:用px固定触控目标;位图只提供一档导致缩放模糊。。
对象:手机、平板、折叠、分屏和外接窗口要求按可用窗口尺寸/姿态布局而非设备型号。;公式:usable=window bounds−insets−hinge/occlusion。;算例:窗口1200px,左右inset各40,中间铰链80,可用宽1040px。;边界:只锁竖屏回避问题;用screen size缓存后不更新。。