# Android 安装配置

**版本**：0.4.x · **最低 Android 版本**：API 24 (Android 7.0) · **语言**：Kotlin

---

## Gradle 仓库配置

在 `settings.gradle.kts` 中添加 XuqmGroup Maven 仓库：

```kotlin
dependencyResolutionManagement {
    repositories {
        maven("https://nexus.xuqinmin.com/repository/android/")
        google()
        mavenCentral()
    }
}
```

---

## 各模块 Artifact 和版本

| 模块 | Artifact | 功能 |
|------|----------|------|
| sdk-core | `com.xuqm:sdk-core` | 初始化、网络、鉴权、Token 存储 |
| sdk-im | `com.xuqm:sdk-im` | 单聊、群聊、消息收发、会话、好友、群组 |
| sdk-push | `com.xuqm:sdk-push` | 自动检测厂商、设备 Token 注册（华为/小米/OPPO/vivo/荣耀/FCM）|
| sdk-update | `com.xuqm:sdk-update` | App 更新检查、下载安装（需配置 API Key，设置 `serviceActivated = true`）|
| sdk-bugcollect | `com.xuqm:sdk-bugcollect` | 崩溃日志、ANR、异常上报 |

在 `app/build.gradle.kts` 中按需引入：

```kotlin
dependencies {
    implementation("com.xuqm:sdk-core:0.4.10")
    implementation("com.xuqm:sdk-im:0.4.10")
    implementation("com.xuqm:sdk-push:0.4.10")       // 按需
    implementation("com.xuqm:sdk-update:0.4.10")     // 按需
    implementation("com.xuqm:sdk-bugcollect:0.4.10") // 按需
}
```

---

## 配置文件

从平台控制台下载应用的 `.xuqmconfig` 配置文件（例如 `识校宝.xuqmconfig`），放置到以下任一目录：

- `src/main/assets/config/`（推荐）
- `src/main/assets/xuqm/`

文件名不限，只要扩展名为 `.xuqmconfig` 即可。Gradle 插件会在构建时自动扫描这两个目录并注入配置，SDK 运行时自动读取，无需手动指定路径。

---

## BugCollect

异常采集模块可自动收集崩溃日志、ANR 和未捕获异常并上报到服务端。

```kotlin
dependencies {
    implementation("com.xuqm:sdk-bugcollect:0.4.10")
}
```

集成了 Gradle 插件后，BugCollect 会随 SDK 自动初始化，无需额外代码。若使用了 `.xuqmconfig` 配置文件，采集服务地址会从配置中自动读取。

---

## 最低 Android API 版本

- `minSdk = 24`（Android 7.0）
- `compileSdk` 与项目保持一致（建议 34+）
- Java 11 / Kotlin 1.9+

---

## ProGuard / R8 混淆规则

各模块已自带 `consumer-rules.pro`，业务方**无需额外配置**。如需手动维护，可添加：

```proguard
# XuqmSDK Core
-keep class com.xuqm.sdk.** { *; }
-keepclassmembers class com.xuqm.sdk.** { *; }

# XuqmSDK IM
-keep class com.xuqm.sdk.im.** { *; }
-keepclassmembers class com.xuqm.sdk.im.** { *; }

# XuqmSDK Push
-keep class com.xuqm.sdk.push.** { *; }

# XuqmSDK Update
-keep class com.xuqm.sdk.update.** { *; }

# Gson（IM 消息序列化使用）
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.google.gson.** { *; }
```

---

## 下一步

- [Android IM 接入 →](./im)
- [Android Push 接入 →](./push)
- [Android 版本更新 →](./update)
