docs: 仓库侧公开文档更新到 M2.71/0.7.66 + 系统框架(agent-157)
- README: 版本0.7.66; 系统组件/进程模型(meow_sysui+专项子服务)/launcher源码拆分+状态栏统一/SDK控件库(第一批通用基座+第二批Material)/§2.9系统框架+§2.10 MeowPanel/配置驱动打包/.mpk=tar.gz/文档索引/mtd5 ota:kernel2 - SPEC_REF: §3.4 SDK统一控件库+主题增强/§4专项子服务(perf/power+电源CLI全命令+二期os.meow鉴权/.mpk签名)/§5.1状态栏统一/§5.4版本0.7.66 - APPS: §1.3系统动作经专项服务(不直连sys_do_reboot/mtd5, 走meow_svc_power)/附录.o mpk包名os.meow.*约定+系统APP鉴权规划 - FRAMEWORK_DESIGN: §10.1专项子服务锚点+launcher源码拆分说明 - MEOW_APP_SDK: §5.8/§8.1 标注已实现(第一/二批+主题接口), 保留miui→miuix待定案/物理键焦点导航草案 - 无敏感(无密钥/密码/设备IP/监听地址); 未碰devdocs/一期代码/agent-155文件
This commit is contained in:
1 parent
dcba5975a2
commit
898bc176c9
5 files changed
+103
-46
No files matched your search
+11
-2
@@ -115,10 +115,18 @@
|
||||
- [D1] `meow_ui_opts` 补 width/height;[D2] `meow_list_source` 定案签名;[D3] 内部 `meow_gfx_fill_round/blit_rgba/mark_dirty`(非公共);[D4] 新增 `meow_theme_defaults(mode)`/`meow_theme_current()`;[D5] `on_swipe_progress`+`meow_ui_swipe_hint(x)`+内部 `MEOW_EV_SWIPE_PROGRESS`/`meow_input_inject`;[D6] 状态栏高=40(后续用户定 40→28);[D7] 音量源=settings.conf `audio.volume`;[D8] 蓝牙读 `hciconfig` 30s 缓存;[D9] 状态读取器跑在 `meow_ui_run` 1s 节流(无独立线程);[D10] 全局返回默认语义="APP 未注册 on_swipe 时 SDK 默认退出;已注册交 APP"
|
||||
- **构建取向(已知设计,非缺陷)**:`build_sdk.sh` 用 `-I../meow_launcherd` 引 `meow_ipc.h`(`meow_notify_ipc.c` 复用共享协议头),故 SDK 编译期依赖 launcher 头、**非独立库**;**运行时无碍** —— App 只链 `meow_ui.a`(含 meow_font.o),不会链入 launcher 符号。SDK 编译依赖 launcher 头属已知设计,勿当作耦合错误。
|
||||
|
||||
### 3.4 SDK 统一控件库 + 主题增强(M2.70/M2.71 落地)`[MEOW_APP_SDK §5.8/§8.1][meow_ui.h][meow_ui_widget.c]`
|
||||
> 定位:把 §5(最小控件集)与设计模板(§5.2-§5.7)收敛到**统一控件架构**;实现分两批(§5.8.8)。
|
||||
- **第一批 = 通用基座(M2.70/0.7.65)**:`meow_widget` 基座统一标准控件/自定义画布;`meow_widget_opts`(Modifier 式 Options,`meow_widget_set_opts`/`meow_widget_opts_get`,0/-1 用默认);统一状态机 `MEOW_WS_ENABLED/SELECTED/FOCUSED/PRESSED`(`meow_widget_set_state`/`meow_widget_state`/`meow_widget_enabled`/`selected`);`meow_widget_custom_create`(自定义画布,App 给 render/hit 回调,`W_CUSTOM`);布局 `meow_row/column/box`+`meow_layout_add/arrange`+`spacer`;MD3 语义色板(§5.8.4)+ 主题接口 `meow_ui_set_style`(`MEOW_STYLE_MD3/MIUIX`)`/meow_theme_get`。
|
||||
- **第二批 = Material 组件子集(M2.71/0.7.66)**:`meow_btn_create_variant`(五型)/`meow_textfield_create`(IME)/`meow_card_create`/`meow_divider_create`/`meow_badge_create`/`meow_checkbox_create`/`meow_radio_create`/`meow_progress_create`/`meow_progress_circular_create`/`meow_fab_create`/`meow_topappbar_create`/`meow_navigationbar_create`/`meow_tabbar_create`/`meow_lazycolumn_create`/`meow_lazyrow_create`/`meow_dialog_create`/`meow_sheet_create`。
|
||||
- **兼容**:既有 `meow_btn/slider/switch/list_create` 签名一字不改(Options/状态机走新增挂载器);`meow_ui_theme`/`meow_widget` 结构变化 = **`meow_ui.a` ABI 变化** → 需同步重编 hello(§5.8.8)。
|
||||
- **主题增强(§8.1)**:主题 = **顶级风格族 `ui.style`(md3/miuix)× 明暗 `display.theme`(dark/light)** 共同决定「整套配色+控件形态+背景底」;`display.background` 为「style×mode」派生的**可选背景底选项集**(非独立维度);状态栏图标随 `ui.style` 换集。⚠️ **`miui`/`miuix` 命名待定案(保留,勿拍板)**:`MEOW_APP_SDK §8.1` 用 `miuix`;`SYSTEM_SETTINGS §1` 注明 `meow_settings.c g_defs` 现值 `"md3,miui"`(label "Material You,MIUI"),实现时把 `g_defs` 的 `miui` 对齐为 `miuix`(**MIUIx 未实现,当前仅 md3 生效**)。
|
||||
|
||||
---
|
||||
|
||||
## 4. SDK 之外系统组件
|
||||
- **系统进程 supervisor 树(源:2026-08-30 定案)**:`meow_sysui`(新增,meow_svcd 托管)= 系统进程总监,监管 launcher/svcd/mdns/未来媒体服务/MeowPanel,**一个崩→只拉起它,绝不级联**;`meow_launcherd`=系统 UI 渲染宿主(状态栏/通知中心/电源菜单/全局手势,与 APP 进程独立);`meow_svcd`=服务管理器(服务全子进程化,svcd 自身不死);APP 进程只渲染自己内容,崩不连累系统 UI。**系统组件渲染归系统进程(launcher),APP 进程不渲染系统 UI**(SDK 系统组件 API 仅系统进程可链,App 不可自建悬浮层);通知中心 UI 渲染主体=系统进程,数据经 IPC 从通知存储读。现网(bootmenu execv launcher + S89 svcd 自启)→ 定案(sysui 统一监管)为渐进迁移,属系统基建线。`[FRAMEWORK_DESIGN §10][MEOW_APP_SDK §6.1][NOTIFICATION_SYSTEM §9]`
|
||||
- **系统进程 supervisor 树(源:2026-08-30 定案;M2.71 已落地 `meow_sysui`)**:`meow_sysui`(`patch_v2/meow_sysui/meow_sysui.c`,~113KB;`etc/init.d/S70meow_sysui` 开机拉起,早于 S89)监管系统进程,**一个崩→只拉起它,绝不级联**;`meow_launcherd`=系统 UI 渲染宿主(状态栏/通知中心/电源菜单/全局手势,与 APP 进程独立);`meow_svcd`=服务管理器(服务全子进程化,svcd 自身不死);APP 进程只渲染自己内容,崩不连累系统 UI。**系统组件渲染归系统进程(launcher),APP 进程不渲染系统 UI**(SDK 系统组件 API 仅系统进程可链,App 不可自建悬浮层);通知中心 UI 渲染主体=系统进程,数据经 IPC 从通知存储读。现网(bootmenu execv launcher + S89 svcd 自启)→ 定案(sysui 统一监管)为渐进迁移,属系统基建线。**sysui 当前默认只监护 `meow_svcd`**(`/usr/data/meow/sysui.d/<name>.conf`,目录式复用 services.d 语义;launcher 由 S90meow_bootmenu 的 execv 拥有,登记但 `enabled=0` 防双重拉起;mdns 是 svcd 服务子进程,不双重管理)。`[FRAMEWORK_DESIGN §10][MEOW_APP_SDK §6.1][NOTIFICATION_SYSTEM §9][patch_v2/meow_sysui/meow_sysui.md]`
|
||||
- **专项子服务(一期在跑,规划见 `devdocs/plan/SYSTEM_FRAMEWORK_SERVICES.md`)**:两个 **svcd 托管、板载 `trigger=boot`** 的专项子服务——`meow_svc_perf`(性能/系统只读聚合)、`meow_svc_power`(关机/重启/升级/回 HiBy 系统动作)。launcher 电源菜单与 MeowPanel 均改经这些服务 IPC 触发(不再直连 `sys_do_reboot`/爬 `/proc`)。**电源 CLI `meow_svc_power <cmd>`**(root 免鉴权、单一命令、不覆盖系统 shutdown/reboot):`shutdown`/`reboot`(强制回 MeowOS)/`upgrade`(写 mtd5=`ota:kernel2`)/`set-default-hiby`/`reboot --hiby` + `status`/`screen`/`dac`/`battery`/`reboot-reason`/`upgrade-status`。**二期**:关键 IPC 只接受 **`os.meow.*`** 鉴权 + `.mpk` 打包签名验签(解包验签/导出保留签名)。`[SYSTEM_FRAMEWORK_SERVICES][APPS 附录 §3]`
|
||||
- 通知(SDK `meow_notify_*`,M2.53 最小版 `[meow_ui.h §9.1]`):
|
||||
- 常量:`MEOW_NOTIFY_MAX_TYPES=4`/`MEOW_NOTIFY_MAX_PER_TYPE=4`/`MEOW_NOTIFY_MAX_MEDIA=1`/`MEOW_NOTIFY_TIMEOUT_ONGOING=-1`/`MEOW_NOTIFY_TIMEOUT_NEVER=0`
|
||||
- 分类:`CAT_GENERAL/MESSAGE/EMAIL/EVENT/PROGRESS/MEDIA(=5)/COUNT`;紧急度 `URG_LOW/NORMAL/HIGH/CRITICAL`
|
||||
@@ -149,6 +157,7 @@
|
||||
- **左缘返回手势**:手指从**屏幕左缘 ≤24px** 向内(右)划 **≥90px**,**抬手(release 边沿)才触发** `MEOW_SWIPE_LEFT`("左滑=返回"契约);过程以 `on_swipe_progress` 实时上报 + SDK 自动画顶部进度条 `meow_ui_swipe_hint(x)`(5px 高,top,theme accent 色);x<=0 清条。**中部左/右滑不是返回**(中部右滑→SWIPE_RIGHT,中部左滑→落 TAP)`[MEOW_APP_SDK §6][GESTURE_BACK §2.2/§3]`
|
||||
- 偏差:原「左缘+向左 mdx<-90」物理不可达 → 取「左缘向内(右)划 ≥90px」,事件仍报 `MEOW_SWIPE_LEFT` `[GESTURE_BACK §3]`
|
||||
- **全局状态栏**:SDK 内置,默认显示(时钟/电量/WiFi/蓝牙/音量),1s 轻刷,z 最顶;仅 APP 声明全屏/`fullscreen:1` 才隐藏;非全屏 APP 须用 `meow_ui_statusbar_height()` 做 inset `[meow_ui.h §3.1][MIGRATION_AC §3]`
|
||||
- **状态栏统一(M2.66 收敛,「同一个状态栏」正确闭环)**:状态栏是**某一个渲染主体**(系统进程 launcher)——主界面与 App 前台用**同一个**状态栏实例,**App 进程不渲染、不自绘、不叠加**(§10.2/@`FRAMEWORK_DESIGN §10.2`);App 前台时状态栏作为**系统叠加层**盖在内容之上(复用 fb 双缓冲备份/恢复/pan);**数据源唯一由 launcher 统一喂/取**(时间/电量/WiFi/音量/亮度)→ 两边必然一致(根治 M2.66「桌面有亮度、App 没有」的不一致)。右侧为 **MD3 图标 + 变量值**(随 `ui.style` 换图标集)。**全屏收合**:状态栏向上收出屏顶、只留提示线,**顶部保留热区**(仍可下滑通知中心)+ 左缘指示条(见 §3.1/A-13/§5.1)。`[FRAMEWORK_DESIGN §10.2]`
|
||||
- **全屏机制(M2.5x,`app.json fullscreen` 即 app 级 + `route.<id>.fullscreen` 即 activity 级)**:launcher 启动 app/切 activity 时据声明**预先设 SDK 全屏**(env `MEOW_FULLSCREEN`)。进入/退出全屏:**状态栏向上收出屏顶、只留一条提示线高度**(非全隐藏),带上收/恢复的**自然过渡动画**。**全屏下保留**:左缘返回手势 + 顶部动态伸缩提示线;顶部下滑仍可展开通知中心,但**顶部热区缩小**(不影响全屏 app)`[源:用户 2026-08-30]`(细化既有「全屏=隐藏状态栏/隐藏返回键」的表述,见 §7 A-13)
|
||||
- 沉浸:`app.json immersive:1` → launcher 写 `/tmp/meowapp_state=1` → 隐藏虚拟返回键,手势归 SDK `[APPS §3.5][GESTURE_BACK §2.4]`
|
||||
- **横向分页设计模板(M2.5x 预留,见 `MEOW_APP_SDK.md` §5.2)**:主页/子页多页横向滑动复用的设计模板(参照 HibyOS 播放器主页横划进播放页)。与左缘返回/顶部下滑**按起始位置分流**互斥——左缘 ≤热区→**左滑返回**(§5.1);中部左/右滑→**页切换**;顶部下滑→**通知中心**。实现要点:相邻页各预渲染一张快照、切换只 blit 快照 + 跟手平移/吸附(vsync ≤60 帧、零 UI 重算)。**注**:模板 API 为「草案/待定案」,当前未实现 `[源:2026-08-30]`
|
||||
@@ -190,7 +199,7 @@
|
||||
- **⑨ 面板「跟手下拉、半程可回」(launcher 侧,M2.65)**:面板打开/关闭由触发式 180ms 过渡升级为**手指拖动实时跟手**——顶部热区下拉 `progress = 手指位移映射`(复用 `mnp_anim_off`,∈[0,1024],1:1 跟手);松手 `progress≥40%×1024≈410` → 时间轴补到 1024(展开);`<阈值 或 反向拖回` → 回弹到 0 收回(半程取消);关闭同理可跟手。与行左滑(⑦ 横向主导)/列表滚动(竖向溢出)/`meow_edge_back`(左缘)互斥分流。`[NOTIFICATION_SYSTEM §9]`
|
||||
|
||||
### 5.4 配置版本单点 / 刷新率 / 息屏
|
||||
- /etc/meowos_version 版本单点(见 §1.1)`[DEV_NOTES #4]`
|
||||
- **现行:M2.71(`/etc/meowos_version` = `0.7.66`;M2.70/0.7.65、M2.69/0.7.64、M2.68/0.7.63 …)**;版本单点 = `/etc/meowos_version`(见 §1.1,`build_fw_apps.sh -v` 写入)`[DEV_NOTES #4][fw_content.conf]`
|
||||
- 刷新率:`display.refresh_rate` enum 60/30/15(默认 60);`display.refresh_always_max` bool false(关=允许 60→30→15 降档)。governor:连续 12 帧超预算降一档,连续 4 批≈48 帧远低预算升一档 `[SYSTEM_SETTINGS §1][PERF_SCHEDULER][MIGRATION_AC §12.1]`
|
||||
- 息屏:`display.screen_off_timeout` int 秒 默认 **30**(0=常亮);`display.screen_off_mode` enum `panel`(面板下电+背光0+FBIOPBLANK)/`black`(背光0全黑+双击亮屏) `[SYSTEM_SETTINGS §1]`
|
||||
- 亮度 clamp:`display.brightness` 0-255 默认 101(clamp ≥ `display.brightness_min`);`display.brightness_min` 默认 **1**(M2.39 由 25 改 1)——**与旧文档 25 冲突见 §A** `[SYSTEM_SETTINGS §1]`
|
||||
|
||||
Reference in new issue
Block a user