bmob-database-androidlisted
Install: claude install-skill bmob/agent-skills
# Bmob Database — Android Native SDK
Bmob 为 Android 原生提供 Java/Kotlin SDK,发布在 Maven 仓库 `io.github.bmob:android-sdk`。模型层用 **继承 `BmobObject`** 的方式(一个 JavaBean 子类 = 一张表),CRUD 通过 SDK 提供的 Listener 回调返回。
## 核心原则
**1. SDK 引入:** `app/build.gradle` 添加:
```gradle
dependencies {
implementation 'io.github.bmob:android-sdk:4.2.1'
implementation 'io.reactivex.rxjava3:rxjava:3.1.9'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'com.squareup.okio:okio:2.2.2'
implementation 'com.google.code.gson:gson:2.8.5'
}
```
**2. Application 子类初始化:** 一次性、必须在任何 Bmob 调用之前。
```java
public class BmobApp extends Application {
@Override public void onCreate() {
super.onCreate();
Bmob.initialize(this, "你的Application ID");
}
}
```
`AndroidManifest.xml` 里指定 `android:name=".BmobApp"`。
**3. 必备权限与 ContentProvider:** 详见 [`references/manifest-and-deps.md`](references/manifest-and-deps.md)(INTERNET / ACCESS_NETWORK_STATE / READ_PHONE_STATE / `<provider>` 等)。
**4. JavaBean 继承 `BmobObject`:** 表名 = 类名,字段名 = 成员变量名。**不要**手动写 `objectId` / `createdAt` / `updatedAt` / `ACL`,BmobObject 已经提供 getter。
**5. Number 字段必须用封装类**(`Integer` / `Long` / `Double` 等),不要用原生 `int` / `long` / `double`,否则保存时无法区分默认值。
**6. Android 6.0+ 网络兼容**:见 [`references/manifest-and-deps.md`](references/manifest-and-deps.md) 的 `useLibrary 'org.apache.http.legacy'` 与 `network_security_config.xml`。
## 安全清单
- [ ] **不要在 APK 中泄漏 Mast