ObjectBox是一个速度超快的移动/边缘数据库,可应用于移动设备、车辆以及各种IOT设备的本地存储。
ObjectBox Admin Web App(前身是ObjectBox Data Browser)被用来查看设备中ObjectBox数据库的数据和表,导出JSON格式的数据。
以下配置只针对安卓应用
配置及代码改动
建议只在调试版本中使用ObjectBox Admin Web App,不要在生产版本中使用。
1. 修改文件:android/app/build.gradle
添加如下代码:
configurations {
debugImplementation {
exclude group: 'io.objectbox', module: 'objectbox-android'
}
}
dependencies {
// 其他依赖忽略
debugImplementation 'io.objectbox:objectbox-android-objectbrowser:3.1.3'
}
注意
例子中使用objectbox-android-objectbrowser的3.1.3版本
查看最新版本访问 https://github.com/objectbox/objectbox-dart/releases
版本应该匹配你当前使用的objectbox-android版本
2. 创建store之后,启动Admin
late Store store;
late Admin admin;
Future main() async {
// This is required so ObjectBox can get the application directory
// to store the database in.
WidgetsFlutterBinding.ensureInitialized();
store = await openStore();
if (Admin.isAvailable()) {
// Keep a reference until no longer needed or manually closed.
admin = Admin(store);
}
runApp(App());
}
可选项:可以在未来某个时间点使用 admin.close()
关闭Admin
注意:objectbox-android-objectbrowser会自动向AndroidManifest.xml中增加权限。不需要手动添加。
如果objectbox-android-objectbrowser只在调试版本中使用(参照1的build.gradle),这两个权限不会被加入到生成版本中。
在设备上打开ObjectBox Admin Web App
启动你的应用,查看日志。
I/Box ( 3805): [SvHttp] Running in single-store mode with an already opened store
I/Box ( 3805): [SvHttp] Listening on http://127.0.0.1:8090
I/Box ( 3805): [SvHttp] User management: disabled
I/Box ( 3805): [SvHttp] HttpServer listening on 127.0.0.1, port 8090
上面是我的日志
在设备上打开 http://127.0.0.1:8090
在开发机上打开ObjectBox Admin Web App
在设备上边调试边看数据不是很方便,使用下面的ADB命令将设备的端口映射到开发机上。
adb forward tcp:8090 tcp:8090
在开发机上打开 http://127.0.0.1:8090