2

私はAndroidでネイティブのCouchdDBアプリに取り組んでいます。ちょうど今週、CouchOne が libcouch をリリースしました。これは、「Android で CouchDB と対話するために必要なライブラリ ファイル」と説明されています

これは、CouchDB サービス (以前にインストールされていた場合は CouchDB に付属) をバインドできない場合に CouchDB をインストールする基本的なアプリです。

より正確に言うと、私が理解しているように、libcouch は、CouchDB から IPC サービスにバインドしようとすることで、デバイス上の CouchDb の存在を推定し、そのサービスを介して CouchDB と通信したいと考えています。

これを確認するには、CouchAppLauncher.class のメソッド「attemptLaunch()」を参照してください。

パブリックボイドの試み(){

    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 にバインドできないためです。AIDL によって生成されたサービス インターフェイスの目的を理解しているので、その IPC を他のアプリケーションに提供しようとする実際のサービスは、AIDL を利用する必要があります。この場合、AIDL は、リモート サービス (この場合は libcouch) にバインドしようとしているアプリケーションに移動されています。

コミットを確認すると、AIDL ファイルがそのリポジトリから libcouch に移動されました。

完全なリンクについては、Android CouchDB ソースへのリンクを次に示します: github.com/couchone/libcouch-android

さて、私の調査結果は完全に間違っている可能性があります。何かが欠けているのはlincouchのマニフェストである可能性もありますが、いくつかの答えが得られることを本当に楽しみにしています!

4

2 に答える 2

2

メールで返信しましたが、ここにいる人のために繰り返します。

libcouch ライブラリはコア CouchDB アプリケーションに含まれているだけでなく、クライアント アプリケーションで使用されるため、CouchDB サービスにはこれらの aidl ファイルが含まれています。

おそらくサービスを利用できた理由は、市場に 2 つのバージョンの CouchDB があったためです。サービスのない古いバージョンと、新しいバージョン (2.1 ユーザーには表示されていません) がありました。今夜、更新された CouchDB アプリが 2.1 ユーザー向けに再公開され、古いバージョンは削除されました。

CouchAppLauncher のソース コードは、サービスの使用方法を理解するのに役立つはずです。また、近日中にチュートリアルも公開します。

ありがとうデール

于 2011-02-02T08:05:49.380 に答える
0

最後に、誰かがAndroid でのカウチアプリの非常に優れたチュートリアルを公開したと思います :)

于 2011-02-15T21:06:16.237 に答える