Android 领域 - 调试
Android Realm - debugging
我想查看 Realm 对象变量的值
例如:
Student (int studentID, ArrayList <Subject> subjectList)
Subject (int subjectID, String subjectName)
我想在使用 Android Studio 进行调试时查看学生对象中的科目名称。
我应该在 android studio debug window 的什么地方查找学生的科目列表?
Realm 代理您的模型对象,并且是一个零拷贝存储系统,因此为了检查字段的值,您需要使用调试器的 evaluate expression 功能。
我们正在考虑为调试器编写一个插件以直接显示值的可能性,但这仍处于调查阶段。
你不能直接那样做。
这是我的方法。
List<FooObject> messages = realm.copyFromRealm(value);
您可以在调试器中看到来自消息的值。
完整代码
realm.where(FooObject.class).equalTo(FooObject.id, id).findAllAsync().asObservable()
.filter(new Func1<RealmResults<FooObject>, Boolean>() {
@Override
public Boolean call(RealmResults<FooObject> message) {
return message.isLoaded();
}
}).subscribe(new SimpleObserver<RealmResults<FooObject>>() {
@Override
public void onCompleted() {
super.onCompleted();
}
@Override
public void onNext(RealmResults<FooObject> value) {
super.onNext(value);
List<FooObject> messages = realm.copyFromRealm(value);
RLog.d(TAG, "Messages");
}
@Override
public void onError(Throwable e) {
super.onError(e);
}
@Override
public String getTag() {
return TAG;
}
});
您可以使用 FaceBook 中的 Stheto。您将能够看到动态变化和所有 table 等。这里是 link :https://github.com/uPhyca/stetho-realm
我会在这里解释:
使用
从 gradle 导入库
> compile 'com.facebook.stetho:stetho:1.5.0'
> compile 'com.uphyca:stetho_realm:2.1.0'
然后在 class 扩展应用程序中(不要忘记通知有关您的 class 的清单:
<application
android:allowBackup="true"
tools:ignore="AllowBackup"
android:name=".YourClassName"
然后添加这个
public class YourClassName extends Application {
...
@Override
public void onCreate() {
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build())
.build());
最终 chrome 在此 url
chrome://inspect/#devices
然后点击检查。继续访问资源,然后访问 Web Sql。你将能够像那样看到你的数据库
我想查看 Realm 对象变量的值
例如:
Student (int studentID, ArrayList <Subject> subjectList)
Subject (int subjectID, String subjectName)
我想在使用 Android Studio 进行调试时查看学生对象中的科目名称。
我应该在 android studio debug window 的什么地方查找学生的科目列表?
Realm 代理您的模型对象,并且是一个零拷贝存储系统,因此为了检查字段的值,您需要使用调试器的 evaluate expression 功能。
我们正在考虑为调试器编写一个插件以直接显示值的可能性,但这仍处于调查阶段。
你不能直接那样做。
这是我的方法。
List<FooObject> messages = realm.copyFromRealm(value);
您可以在调试器中看到来自消息的值。
完整代码
realm.where(FooObject.class).equalTo(FooObject.id, id).findAllAsync().asObservable()
.filter(new Func1<RealmResults<FooObject>, Boolean>() {
@Override
public Boolean call(RealmResults<FooObject> message) {
return message.isLoaded();
}
}).subscribe(new SimpleObserver<RealmResults<FooObject>>() {
@Override
public void onCompleted() {
super.onCompleted();
}
@Override
public void onNext(RealmResults<FooObject> value) {
super.onNext(value);
List<FooObject> messages = realm.copyFromRealm(value);
RLog.d(TAG, "Messages");
}
@Override
public void onError(Throwable e) {
super.onError(e);
}
@Override
public String getTag() {
return TAG;
}
});
您可以使用 FaceBook 中的 Stheto。您将能够看到动态变化和所有 table 等。这里是 link :https://github.com/uPhyca/stetho-realm
我会在这里解释: 使用
从 gradle 导入库> compile 'com.facebook.stetho:stetho:1.5.0'
> compile 'com.uphyca:stetho_realm:2.1.0'
然后在 class 扩展应用程序中(不要忘记通知有关您的 class 的清单:
<application
android:allowBackup="true"
tools:ignore="AllowBackup"
android:name=".YourClassName"
然后添加这个
public class YourClassName extends Application {
...
@Override
public void onCreate() {
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build())
.build());
最终 chrome 在此 url
chrome://inspect/#devices
然后点击检查。继续访问资源,然后访问 Web Sql。你将能够像那样看到你的数据库