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。你将能够像那样看到你的数据库