Bmob Android 原生数据库
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_92a793e0/bmob-database-android。
技能介绍
要解决什么问题
在 Android 原生(Java/Kotlin)里接 BaaS,常见卡点不是「会不会调接口」,而是 模型怎么映射表、Number 默认值怎么区分、以及 上线前域名/ACL/混淆 是否漏配。Bmob 的 Android SDK(io.github.bmob:android-sdk)用 继承 BmobObject 的 JavaBean 表示一张表,CRUD 走 Listener 回调;若初始化顺序、权限或字段类型不对,容易出现保存异常或难以排查的 9015 类问题。
技能覆盖的核心能力
- 工程接入:在
app/build.gradle引入依赖;自定义Application子类并在AndroidManifest.xml指定android:name,保证 任何 Bmob 调用之前 完成Bmob.initialize。 - 数据建模:表名对应类名、字段对应成员变量;
objectId/createdAt/updatedAt/ ACL 由BmobObject提供,勿手写重复字段。 - 类型映射:控制台
Number必须用Integer/Long/Double等包装类,避免原生int与「未设置」无法区分。 - 读写与查询:单条增删改查按
objectId;条件查询用BmobQuery链式addWhereEqualTo、addWhereGreaterThan等(v3.5.2+)。 - 安全与发布:客户端不泄漏 Master Key;release 关闭
Bmob.setIsDebug;写操作表配置 ACL;Bmob.resetDomain在initialize之前 替换备案域名;混淆保留 SDK 类。
适用边界与注意点
本技能聚焦 Android 原生 SDK 用法与安全清单,不替代控制台建表与权限策略设计。Android 6.0+ 需处理 org.apache.http.legacy 与 network_security_config;反模式包括 success 回调内未捕获异常、用原生 int 存 Number。跨平台与 MCP 联动见技能内引用的 FAQ / bmob-mcp 条目。
使用场景
- 新项目要在 Android 里接 Bmob Maven SDK,先完成 Application 初始化与 Manifest 权限再写业务 CRUD
- 用继承 BmobObject 的 JavaBean 对照控制台建表,把 String、Number、Pointer 等字段类型一次映射正确
- 列表页要用 BmobQuery 链式条件(等于、大于、排序)拉取分页数据,而不是只按 objectId 单条查询
- 打 release 包前按清单配置 ACL、关闭调试、在 initialize 前 resetDomain,并补齐 ProGuard 保留 SDK 类
适合人员
- 负责校园/社区类 Android 客户端、后端表已在 Bmob 控制台建好的原生开发工程师
- 维护含短信登录或图文社区 demo 的 Bmob Android 工程,需要统一 CRUD 与查询写法的 Java/Kotlin 开发者
- 要在 Android 6.0+ 处理 legacy HTTP 与网络安全配置、避免集成后真机无法联网的移动端工程师
- 上线前负责密钥与域名策略、防止 Master Key 进 APK 并核对混淆规则的技术负责人或安全对接人