闭卷重建Gradle任务图与增量构建的对象、公式、算例、算法与失败边界。
移动计算与安卓系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建Build Variant、Flavor与配置隔离的对象、公式、算例、算法与失败边界。
闭卷重建依赖、版本目录与冲突的对象、公式、算例、算法与失败边界。
闭卷重建R8、资源收缩与反射边界的对象、公式、算例、算法与失败边界。
闭卷重建供应链、SBOM与构建签名的对象、公式、算例、算法与失败边界。
闭卷重建版本号、灰度与商店发布的对象、公式、算例、算法与失败边界。
闭卷重建崩溃、ANR与线上诊断的对象、公式、算例、算法与失败边界。
对象:build type、product flavor和dimension组合生成variant,环境差异应类型化且不把密钥打包。;公式:variant count=product of dimension choices×build types。;算例:2环境×3品牌×2 build type,共12 variant。;边界:生产端点进入debug测试;用if到处判断渠道。。
对象:构建由任务依赖图、输入输出和缓存组成;不可声明输入会破坏增量正确性。;公式:task reruns if declared inputs/implementation/output state changed。;算例:任务读取未声明环境变量,缓存命中却产出错误构建。;边界:自定义任务永远执行;配置阶段做网络I/O。。
对象:代码/资源收缩依赖可达性分析,反射、序列化、JNI需显式保留规则并用release测试。;公式:size reduction=(before−after)/before。;算例:包100MB收缩到70MB,下降30%。;边界:只测debug;keep规则全局通配失去收缩。。
对象:直接/传递依赖形成图,版本选择、ABI和重复类冲突需要锁定与审计。;公式:resolved graph must be deterministic for same lock and repository state。;算例:A要lib1.0、B要2.0,解析到2.0可能破坏A,需约束/兼容验证。;边界:动态版本+;同名库从不可信仓库抢占。。
对象:versionCode单调、versionName面向用户;分阶段发布需停止指标、兼容后端和可恢复方案。;公式:exposed users=rollout fraction×eligible users。;算例:100万用户10%灰度,约10万用户暴露新版本。;边界:移动端无法强制回滚却做破坏性服务变更。。
对象:构建应固定源码、依赖、工具链,生成SBOM/来源证明并保护签名操作。;公式:artifact identity=digest(source,dependencies,toolchain,config)。;算例:同tag依赖漂移产生不同digest,无法复现;锁定后应稳定。;边界:CI日志输出签名秘密;只扫顶层依赖。。
对象:崩溃栈、ANR traces、设备/版本、breadcrumbs和后端trace共同定位线上问题。;公式:crash-free users=1−crashed unique users/active users。;算例:10万活跃用户中500人崩溃,crash-free=99.5%。;边界:只看崩溃次数不看用户;混淆后无mapping。。