十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Impeccable 原生 Android 设计基准:用 Material 3 约束 AI 产出可信 Android 体验的完整指南

Impeccable 原生 Android 设计基准:用 Material 3 约束 AI 产出可信 Android 体验的完整指南 Impeccable 原生 Android 设计基准用 Material 3 约束 AI 产出可信 Android 体验的完整指南【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccable导读android.md是 Impeccable 设计技能中面向原生 Android 平台的一张规则参考卡它定义了当 AI或你为一个会真正安装到 Android 设备上的应用做设计、重设计、审计或改造时必须遵守的 Material Design 3 基线——从导航结构、触控目标、字体排印、颜色主题到构建验证的 adb 截图取证方法。读完本文你将掌握 Impeccable 如何把原生可信翻译成可执行的规则含每条规则的机器可读锚点并能在真机/模拟器上按规范完成截图取证与暗色、字体缩放检查。相关参考文档位于.rovodev/skills/impeccable/reference/android.mdskill 目录下有同源副本 skill/reference/android.md。1. 这份文档在 Impeccable 体系中的角色在 Impeccable 技能中参考文档按平台拆分web、ios.md、android.md以及自适应场景两者都读。android.md是一个**什么时候会被载入的强制约束**而不是可选项运行context.mjs做会话初始化时如果加载到原生平台指导会遵循其指令载入本文件init.md 在把平台记录为ios/android/adaptive之后before any design work 就要加载对应的平台参考这是唯一能学到平台答案的地方audit.native.md 明确说它按平台参考打分Score against the platform reference(s): ios.md / android.md并在 0–4 的评分标准里把0Web port没有任何原生特征列为最差档adapt.native.md 做跨上下文适配前要求先读目标平台的参考animate.md 规定原生平台动效必须遵循 ios.md/android.md 的 Motion 一节包括平台级的 Reduce Motion 行为而不是套用 web 那套工具。换句话说android.md 是原生 Android 任务的准入规则书web 检测器detect.mjs 等只读 HTML/CSS对原生代码没有裁决权所以这份文档连同 finish-reviewer 的底限检查是 Android 上唯一的 slop 闸门见 new-work.md 中关于 native 平台跳过后台检测器的说明。1.1 文档的适用范围界定For native Android apps: Jetpack Compose, Android Views, React Native, Expo, Flutter shipping to Android hardware.适用范围覆盖所有真实运行在 Android 硬件上的技术栈Jetpack Compose、传统 Android Views、React Native、Expo、Flutter。移动端 Webmobile web不属于这里——那是 web 参考的领域用原生壳包一个网站也不会让你的设计语言变成原生。1.2 三条总纲On native, the visitor mode narrows what expression may override.Impeccable 的 visitor modePersuade / Operate / Read / Experience见 SKILL.src.md在原生平台上只决定品牌表达能在哪些层发挥不能推翻平台自身的结构约定。Material Design 3 governs structure, navigation, and interaction in every mode.无论哪种模式结构、导航、交互都由 Material 3 统辖品牌通过 Material 的主题体系来表达——color roles颜色角色、type scale字体尺度、shape形状、motion动效。跨平台仍要对每块硬件负 OS 责任。一个Material 无处不在的跨平台应用如果同时发布到 iPhone在 iOS 硬件上依然欠它 iOS 的系统保证safe-area insets、Reduce Motion、edge-swipe back。这与 ios.md 的规则互为镜像。2. Android slop 测试一眼识别套着 Android 皮的 iOS 应用文档给出了一个非常实用的自检问题Would a fluent Android user trust this app, or trip on off-spec components?一个熟练的 Android 用户会信任这个应用还是会在一堆不符合规范的组件上绊倒最常见的tell露馅信号恰恰是一个披着 Android 皮肤、内核却是 iOS 的应用从 iPhone 照搬过来的仅底部导航无视系统 Back 手势的自绘返回箭头Cupertino 形状的开关和对话框。结论直截了当Material 3 就是规则书rulebook——跟着它的组件走再通过它去主题化品牌。对照 audit.native.md 的评分只要出现3–4 种违规就属于 Heavy violations说明 fluent 用户已经无法信任界面。3. 布局与结构Layout structure3.1 Material 导航匹配窗口宽度宽度应使用的导航形态Compact手机竖屏等窄宽度Navigation bar底部3–5 个目的地Expanded平板等宽视口Navigation rail导航栏或 drawer抽屉绝不要把一个手机底部栏原封不动搬到平板上。平板改用 rail/drawer这是 Material 3 响应式导航的标准决策不是口味问题。3.2 系统 Back 必须始终有效尊重预测性返回手势predictive Back gesture和 Back 按钮。应用永远不能困住用户trap the user也不能劫持hijack这个手势。这是 Android 手势导航的肌肉记忆改写它的代价是信任崩塌。3.3 Edge-to-edge 与窗口 insets内容必须正确应用以下 insets保证不被系统元素遮挡status bar状态栏navigation bar导航栏display cutout刘海/打孔屏IME insets软键盘弹出时否则输入法弹起时表单被键盘盖住、内容藏在系统栏后面都属于文档明确禁止的状态。3.4 Top app bar 单一主操作 FAB每个屏幕用top app bar交代屏幕上下文当且仅当屏幕有一个主要动作时配合一个FABFloating Action Button。这些条目在副本 skill/reference/android.md 中以 HTML 注释锚点标注为可机器读取的规则android-layout-adaptive-nav、android-layout-system-back、android-layout-window-insets、android-layout-top-app-bar。4. 触控目标Touch targets48×48 dp 是每个触控目标的最小尺寸目标之间至少间隔 8 dp。48dp 是 Material 触控目标的物理下限约 7–10mm对应指尖的稳定命中区域8dp 间距防止相邻目标误触。低于此值的按钮、图标按钮、列表项、chip 都是需要修复的违规项——这正是 audit.native.md 会抓取的 touch target 类技术缺陷。对应规则锚点android-touch-target-48dp。5. 字体排印Typography5.1 Material type scale按角色映射绝不逐屏手挑字号Material 3 的类型尺度包含 Display、Headline、Title、Body、Label 五组角色每组又有 large / medium / small。正确做法是把文本映射到角色上这篇是 Body large、那个统计数字是 Headline medium……永远不要为了某个屏幕单独手挑字号。角色体系保证整个应用的层级和节奏一致也让主题替换换品牌字体自动传导到每一处。5.2 Roboto 是系统脸品牌脸通过 type scale 进入Roboto 是 Android 系统字体。品牌字体应以brand face的身份经由 type scale 主题化进入界面同时保持正文、标签和控件可读、一致。5.3 用 sp绝不用固定 px字号必须使用spscalable pixels这样文字会跟随系统的字号设置font scale缩放固定 px 会让大字模式下的界面直接截断或溢出——后文构建验证一节正是用来抓这种毛病的。对应规则锚点android-typo-type-scale、android-typo-system-font、android-typo-scalable-sp。6. 颜色与主题Color theming6.1 Material color roles 取代裸 hex文档点名的角色primary、on-primary、surface、surface-variant、secondary-container、outline、error。这些角色令牌role tokens会自动解析亮色/暗色light/dark以及对比度变体而直接写死的原始 hex 会在这些自适应场景里失效——因为同样的 hex 在暗色主题、高对比度下并不会自动变换。6.2 Dynamic ColorMaterial You在合适的产品上使用Dynamic ColorAndroid 12 可以从用户壁纸推导出配色方案dynamic color scheme同时必须准备静态回退static fallback——因为并非所有设备、所有启动器都启用壁纸取色。6.3 暗色主题是一等公民Dark theme is a first-class scheme. Design and test it; never a quick invert.暗色不是把亮色反相invert就完事必须专门设计和测试。6.4 色调高程Tonal elevation通过标准 surface 色调层级来表达高程Material 3 中抬高的 surface 用更浅的 surface 色调而非阴影必要时才辅以阴影禁止任意自定义投影。对应规则锚点android-color-role-tokens、android-color-dynamic-color、android-color-dark-theme、android-color-tonal-elevation。7. 组件与动效Components motion7.1 用 Material 组件禁止移植 iOS 控件或自创替代品按钮体系filled / tonal / outlined / text 四种FAB、switch、chip、snackbar、bottom sheet、Material dialog导航navigation bar / rail / drawer。绝不要移植 iOS 控件比如 Cupertino switch、iOS 风格弹窗也不要凭空发明等价物。这是整份文档反复强调的最常见 native slop 来源。对应锚点android-components-material。7.2 一个 FAB 一个主操作永不堆叠 FAB不搞 FAB 组也不要把一个 FAB 花在次要任务上。锚点android-components-single-fab。7.3 瞬态反馈用 Snackbar打断式决策才用 DialogSnackbar用于瞬态反馈需要时可附带 action如 Undo文档特别指出不要用toast承担这类职责Dialog只用于必须打断用户的决策。锚点android-components-snackbar。7.4 Material 动效模式 遵循系统移除动画设置动效采用 Material 的标准模式container transform、shared-axis、fade-through配标准缓动与时长。同时必须尊重系统的 Remove animations移除动画设置——用 crossfade 或瞬时切换来替代空间位移动效。这与 animate.md 对原生平台遵循平台 Reduce Motion 行为的要求一致。锚点android-motion-material-and-reduce。8. 构建验证Verifying the build截图取证必须来自真机/模拟器原生验证与 web 最大的不同截图来自模拟器或连接的真机绝不来自浏览器。8.1 截图命令构建并安装后用 adb 抓屏adb exec-out screencap -p path多个设备同时连接时用-s serial指定目标adb devices # 先列出 serial adb -s emulator-5554 exec-out screencap -p phone.png覆盖应用发布到的每一个设备类别至少一部手机平板在目标范围内时至少一部平板。文件应写到审核流程review flow期望的位置——按 impeccable-finish-reviewer.md 的约定原生截图放在.impeccable/review/命名按设备类别如phone.png、tablet.pngadaptive 场景按 OS 追加后缀。8.2 暗色主题与字体缩放必须进入本轮验证两个命令组合使用adb shell cmd uimode night yes # 切到暗色 adb shell settings put system font_scale 1.3 # 放大字号 # ... 抓屏 ... adb shell settings put system font_scale 1.0 # 验完恢复 1.0 adb shell cmd uimode night no # 恢复亮色字号放到 1.3 倍正是为了暴露固定布局下被截断的标签——只在默认字号下截图永远发现不了这类问题。多设备场景下这些命令同样要带-s serial。对应锚点android-verify-emulator-capture、android-verify-theme-and-scale。8.3 诚实交代证据来源模拟器 vs 硬件Emulators give breadth; gestures, refresh rates, and performance need hardware. Say which one produced the evidence.模拟器擅长覆盖广度多设备类别、系统版本、暗色/缩放成本低、可并行手势手感、刷新率、性能必须靠真实硬件验证报告里必须说清楚证据来自哪一种。这也呼应 SKILL.src.md 的验证纪律完整构建 → 一次批量检查覆盖所发布的所有设备类别→ 按检查结果一次性修复 → 至多再确认一轮 → 停止打磨。证据缺失与证据错误同样致命——finish-reviewer 会先校验截图存在性与有效性无黑屏/空白、内容与文件名一致缺失的 viewport a viewport nobody captured is a viewport nobody inspected直接判不通过。9. 与 iOS 参考的对照两个平台的规则如何协同同为原生参考android.md 与 ios.md 结构镜像但内容各归其位维度AndroidMaterial 3iOSHIG主导规范Material Design 3Human Interface Guidelines触控目标48×48 dp 最小间距 ≥ 8dp44×44 pt 最小字号单位sp跟随系统字号Dynamic Type 系统文本样式导航Navigation bar / rail / drawerTab bar / navigation stack / sheet暗色一等公民Dynamic ColorDark Mode 一等公民验证adb screencap uimodexcrun simctl io booted screenshot对于adaptive平台同一产品按 OS 真正适配设计语言两份参考都要读而一个跨平台应用在 iOS 硬件上仍须履行 iOS 的 safe-area / Reduce Motion / edge-swipe back 承诺——这正是文档第 5 行那句still owes iOS its OS guarantees on that hardware的含义。结语.rovodev/skills/impeccable/reference/android.md与 skill/reference/android.md 是一份可执行、可审计、可被机器读取每条规则都带!-- rule:android-* --锚点的 Android 原生设计基线。它没有给好看留模糊空间而是把原生可信落到 Material 3 的具体规则上并用 adb 截图取证闭环保证每一次设计决策都经过真实渲染的检验。对任何要让 AI 产出、或自行校验 Android 原生 UI 的团队这份参考都可以直接作为设计评审与代码审计的 checklist 使用。【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccable创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表