Android Couchdb - libcouch 和 IPC Aidl 服务

Posted

技术标签:

【中文标题】Android Couchdb - libcouch 和 IPC Aidl 服务【英文标题】:Android Couchdb - libcouch and IPC Aidl Services 【发布时间】:2011-02-01 23:17:23 【问题描述】:

我正在开发一个带有 android 的原生 CouchdDB 应用程序。就在本周,CouchOne 发布了 libcouch,被描述为“在 Android 上与 CouchDB 交互所需的库文件”: couchone_libcouch@Github

这是一个安装 CouchDB 的基本应用程序,如果 CouchDB 服务(如果之前已安装,则随 CouchDB 一起提供) 无法绑定。

更准确地说,据我所知: libcouch 通过尝试从 CouchDB 绑定到 IPC 服务来估计设备上 CouchDb 的存在 并通过该服务与 CouchDB 进行通信。

请参阅方法“attemptLaunch()” CouchAppLauncher.class 审查这个:

公共无效尝试启动()

    Log.i(TAG,"1.) called attemptLaunch");

Intent intent = new Intent(ICouchService.class.getName());
    Log.i(TAG,"1.a) setup Intent");

    Boolean canStart = bindService(intent, couchServiceConn,
            Context.BIND_AUTO_CREATE);

    Log.i(TAG,"1.b bound service. canStart: " + Boolean.toString(canStart));


    if (!canStart) 

        setContentView(R.layout.install_couchdb);

        TextView label = (TextView) findViewById(R.id.install_couchdb_text);
        Button btn = (Button) this.findViewById(R.id.install_couchdb_btn);

        String text = getString(R.string.app_name)
                + " requires Apache CouchDB to be installed.";
        label.setText(text);


        // Launching the market will fail on emulators
        btn.setOnClickListener(new View.OnClickListener() 
            public void onClick(View v) 
                launchMarket();
                finish();
            
        );
    

我对此有以下疑问: libcouch 永远无法“找到”以前安装的 CouchDB。它总是尝试安装 CouchDB 从市场。这是因为它实际上永远无法绑定到 CouchDBService。 据我了解 auf AIDL 生成服务接口的目的,实际 打算将其 IPC 提供给其他应用程序的服务应使用 AIDL。在这种情况下,AIDL 已被移动 到试图绑定到远程服务的应用程序,在这种情况下是 libcouch。

查看刚刚从存储库移出到 libcouch 的 AIDL 文件的提交。

对于完整的链接,这里是 Android CouchDB 源的链接: github.com/couchone/libcouch-android

现在,我的发现可能完全错误,也可能是 lincouch 的清单遗漏了一些东西,但我真的很期待得到一些答案!

【问题讨论】:

【参考方案1】:

我在一封电子邮件中回复了这里的任何人。

libcouch 库包含在核心 CouchDB 应用程序中,并供客户端应用程序使用,因此 CouchDB 服务确实包含这些辅助文件。

您可能能够使用该服务的原因是市场上有两个版本的 CouchDB,一个没有任何服务的旧版本,一个新版本(2.1 用户不可见)。今晚更新的 CouchDB 应用程序已为 2.1 用户重新发布,旧版本已删除。

CouchAppLauncher 的源代码应该可以帮助您了解如何使用该服务,我也会很快发布一个教程

谢谢 戴尔

【讨论】:

您好,戴夫,我会再次调查,再次感谢您。好名字顺便说一句! 能否在市场描述中分享一些关于 CouchDB 发布日期的注释? 能否分享一些关于发布日期的注释,或者市场描述中 CouchDB 的提交号?【参考方案2】:

为了完整起见,我认为有人为 android 上的 couchapps 发布了一个非常好的 tutorial:)

【讨论】:

以上是关于Android Couchdb - libcouch 和 IPC Aidl 服务的主要内容,如果未能解决你的问题,请参考以下文章

Android Couchdb - libcouch 和 IPC Aidl 服务

从 CouchDB 和 Couchbase-lite 同步和删除已删除的文档

CouchDb - 防止 couchDb 提供视图

javascript couchdb exporty #shell #couchdb

javascript couchdb exporty #shell #couchdb

用户角色的 Couchdb/Couchdb 复制策略