diff --git a/CLAUDE.md b/CLAUDE.md index 9c73399..5cb8657 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,7 +2,7 @@ ## 项目定位 -XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 YwxMobileApp)提供:初始化、用户认证、OTA 更新、WebView、IM、推送、证书、日志追踪。 +XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 YwxMobileApp)提供:初始化、用户认证、OTA 更新、WebView、IM、推送、证书、Bug 采集。 - Git 远端:`https://xuqinmin.com/xuqmGroup/XuqmGroup-AndroidSDK.git` - Nexus Maven 发布:`https://nexus.xuqinmin.com/repository/android-hosted/` @@ -16,7 +16,7 @@ XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 Y | sdk-core | `sdk-core` | 活跃开发 | | sdk-update | `sdk-update` | 活跃开发 | | sdk-webview | `sdk-webview` | 活跃开发 | -| sdk-log | `sdk-log`(新) | 新建中 | +| sdk-bugcollect | `sdk-bugcollect`(新) | 新建中 | | sdk-push | `sdk-push` | 代码冻结(仅文档) | | sdk-im | `sdk-im` | 代码冻结(仅文档) | | sdk-license | `sdk-license` | 代码冻结(仅文档) | @@ -56,30 +56,30 @@ XuqmSDK.setUserInfo(null) // 登出,触发所有子 SDK 登出 ### 平台配置读取(init 完成后) ```kotlin -XuqmSDK.platformConfig?.logApiUrl // 日志服务地址 -XuqmSDK.logEnabled // 是否开启日志 +XuqmSDK.platformConfig?.bugCollectApiUrl // Bug 采集服务地址 +XuqmSDK.bugCollectEnabled // 是否开启 Bug 采集 XuqmSDK.appKey // 当前 appKey ``` -## 日志 SDK(sdk-log) +## Bug 采集 SDK(sdk-bugcollect) ```kotlin // Application.onCreate() 中(XuqmSDK.initialize 之后): -XLog.setLogLevel(LogLevel.INFO) -XLog.setEnvironment("production") -XLog.startCrashCapture() // 开启 UncaughtExceptionHandler +BugCollect.setLogLevel(LogLevel.INFO) +BugCollect.setEnvironment("production") +BugCollect.startCrashCapture() // 开启 UncaughtExceptionHandler // 埋点 -XLog.event("page_view", mapOf("page" to "home")) +BugCollect.event("page_view", mapOf("page" to "home")) // 错误上报 -XLog.captureError(exception) +BugCollect.captureError(exception) // 漏斗定义 -XLog.defineFunnel("checkout", listOf("cart_view", "checkout_start", "payment_done")) +BugCollect.defineFunnel("checkout", listOf("cart_view", "checkout_start", "payment_done")) ``` -`logApiUrl` 由 SDK 在 init 后从平台配置自动获取,无需 App 传入。 +`bugCollectApiUrl` 由 SDK 在 init 后从平台配置自动获取,无需 App 传入。 ## 向下兼容约束 @@ -96,7 +96,7 @@ YwxMobileApp:`/Users/xuqinmin/Projects/TrustProjects/Pad/YwxMobileApp` ## 常用命令 ```bash -./gradlew :sdk-log:assembleDebug +./gradlew :sdk-bugcollect:assembleDebug ./gradlew :sdk-core:assembleDebug ./gradlew :sample-app:installDebug ./gradlew publish # 发布所有模块到 Nexus diff --git a/sdk-log/README.md b/sdk-log/README.md index cc735dc..d926336 100644 --- a/sdk-log/README.md +++ b/sdk-log/README.md @@ -1,11 +1,11 @@ -# sdk-log +# sdk-bugcollect -XuqmGroup Android SDK 日志模块。提供日志采集、Crash 捕获、漏斗分析能力。 +XuqmGroup Android SDK Bug 采集模块。提供错误采集、Crash 捕获、漏斗分析能力。 ## 依赖 ```kotlin -implementation("com.xuqm:sdk-log:VERSION") +implementation("com.xuqm:sdk-bugcollect:VERSION") implementation("com.xuqm:sdk-core:VERSION") // 必须 ``` @@ -13,29 +13,29 @@ implementation("com.xuqm:sdk-core:VERSION") // 必须 ```kotlin // Application.onCreate() 中(XuqmSDK.initialize 之后): -XLog.setLogLevel(LogLevel.INFO) -XLog.setEnvironment("production") -XLog.startCrashCapture() +BugCollect.setLogLevel(LogLevel.INFO) +BugCollect.setEnvironment("production") +BugCollect.startCrashCapture() // 业务代码中 -XLog.event("page_view", mapOf("page" to "home")) -XLog.captureError(exception) +BugCollect.event("page_view", mapOf("page" to "home")) +BugCollect.captureError(exception) ``` ## API -### XLog 对象 +### BugCollect 对象 | API | 说明 | |-----|------| -| `XLog.setLogLevel(level)` | 设置日志级别(`DEBUG` / `INFO` / `WARN` / `ERROR`) | -| `XLog.setEnvironment(env)` | 设置环境标签 | -| `XLog.startCrashCapture()` | 开启全局 UncaughtExceptionHandler | -| `XLog.event(name, properties?)` | 记录自定义事件 | -| `XLog.captureError(error, metadata?)` | 上报异常 | -| `XLog.warn(message, metadata?)` | 记录警告 | -| `XLog.info(message, metadata?)` | 记录信息 | -| `XLog.defineFunnel(id, steps)` | 定义漏斗 | +| `BugCollect.setLogLevel(level)` | 设置日志级别(`DEBUG` / `INFO` / `WARN` / `ERROR`) | +| `BugCollect.setEnvironment(env)` | 设置环境标签 | +| `BugCollect.startCrashCapture()` | 开启全局 UncaughtExceptionHandler | +| `BugCollect.event(name, properties?)` | 记录自定义事件 | +| `BugCollect.captureError(error, metadata?)` | 上报异常 | +| `BugCollect.warn(message, metadata?)` | 记录警告 | +| `BugCollect.info(message, metadata?)` | 记录信息 | +| `BugCollect.defineFunnel(id, steps)` | 定义漏斗 | ### LogLevel @@ -45,11 +45,11 @@ enum class LogLevel { DEBUG, INFO, WARN, ERROR, NONE } ### 工作原理 -- **LogQueue**:事件进入内存队列,按批次异步上传到 `logApiUrl` +- **LogQueue**:事件进入内存队列,按批次异步上传到 `bugCollectApiUrl` - **CrashCapture**:注册 `Thread.UncaughtExceptionHandler`,捕获 Native Crash 并写入文件,下次启动时上传 - **Fingerprint**:为错误生成指纹(基于 message + stack),服务端去重聚合 - **FunnelTracker**:客户端维护漏斗进度,服务端跨 session 聚合 ### 配置 -`logApiUrl` 和 `logEnabled` 由 `sdk-core` 在 init 后从平台配置自动获取,无需 App 传入。 +`bugCollectApiUrl` 和 `bugCollectEnabled` 由 `sdk-core` 在 init 后从平台配置自动获取,无需 App 传入。