- meow_ui.h(922 行)改为伞头:只做 #include 聚合 + 模块索引,不定义新 API。 - 新增 patch_v2/sdk/include/ 16 个子头(types/draw/image/theme/ime/widgets/input/ activity/zorder/statusbar/dialog/log/notify/config/font/audio),各自自洽可单独 include, 依赖最小化(不透明句柄前向声明 + 必要模块互引)。 - 验证:meow_ui.a md5 与主树完全一致(4786158d…,头重组 .o 逐字节等价); SDK .c 用 mipsel -Wall -Wextra 0 warning;hello/files 全量重编链接通过 (-Wall -Wextra 0 warning);宿主 test_p1p2p3_repro(P1c/P2/P3 ALL PASS) + 15 个 SDK/宿主测试 PASS;16 子头自洽编译 0 warning;伞头完整性回归 test_umbrella.c 0 warning;ncm 5 个含 meow_ui.h TÜ mipsel 交叉编译到 .o 0 warning。 - meow_ui_internal.h 及 view/nav/media/sys/vol 子头未动;build_sdk.sh 无需改。 - MEOW_APP_SDK.md 头部新增「公共头模块索引」。分支 sdk-header-split。
33 lines
1.7 KiB
C
33 lines
1.7 KiB
C
/*
|
||
* meow_ui_log.h — SDK 应用日志(§9,统一日志 API,M2.51 最小可用版)。
|
||
*
|
||
* 原 meow_ui.h 拆分的一部分(log 模块)。app 只需一行 meow_log();SDK 管「写哪/怎么写/过滤/降级/上限」。
|
||
*/
|
||
#ifndef MEOW_UI_LOG_H
|
||
#define MEOW_UI_LOG_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/* ============================================================ */
|
||
/* §9 应用日志(统一日志 API,M2.51 最小可用版) */
|
||
/* ============================================================ */
|
||
/* app 只需一行 meow_log();SDK 管「写哪/怎么写/过滤/降级/上限」:
|
||
* - 路径:<MEOW_LOG_DIR>/<启动时间>_<pid>.log(MEOW_LOG_DIR 已含包名分层 logs/<包名>)
|
||
* (目录不存在 mkdir -p,按 app 分目录),每次启动=新文件,同一次启动内 O_APPEND 追加;
|
||
* - 级别过滤:lvl < meow_log_get_level() 丢弃;默认 MEOW_LOG_INFO;
|
||
* - 格式:<monotonic_ms> [<app_id>] <LEVEL> message\n;
|
||
* - 上限:单文件 ≥2MB 自动开新文件追加 _<n>;每 App 总量 ≥50MB 按期删最旧,防撑爆卡;
|
||
* - 无卡/写失败降级 stderr,不阻塞 app 不崩;线程安全。
|
||
* 注意:MEOW_LOG_APP 由 launcher 注入;未注入时默认 app_id="app"。 */
|
||
typedef enum { MEOW_LOG_DEBUG=0, MEOW_LOG_INFO, MEOW_LOG_WARN, MEOW_LOG_ERROR } meow_log_level;
|
||
void meow_log(meow_log_level lvl, const char *fmt, ...); /* app 一行调用,写到按 app 分离日志 */
|
||
void meow_log_set_level(meow_log_level lvl); /* 可选:app 设本 app 级别;默认 MEOW_LOG_INFO */
|
||
meow_log_level meow_log_get_level(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif /* MEOW_UI_LOG_H */
|