Android Couchdb - сервисы libcouch и IPC Aidl - PullRequest
2 голосов
/ 02 февраля 2011

Я работаю над собственным приложением CouchdDB с Android.На этой неделе CouchOne выпустила libcouch, который описывается как «Библиотечные файлы, необходимые для взаимодействия с CouchDB на Android»: couchone_libcouch @ Github

Это базовое приложение, которое устанавливает CouchDB, если служба CouchDB (который поставляется с CouchDB, если он был установлен ранее) не может быть привязан к.

Если быть более точным, насколько я понимаю: libcouch оценивает присутствие CouchDb на устройстве, пытаясь привязаться к службе IPC из CouchDBи через этот сервис хочет связаться с CouchDB.

Пожалуйста, ознакомьтесь с методом "tryLaunch ()" в CouchAppLauncher.class, чтобы просмотреть это:

public void tryLaunch () {

    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

Теперь, я могу быть совершенно неправ в своих выводах, это может быть также ЛинкушМанифест, который что-то упустил, но я действительно жду ответов!

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Я ответил в электронном письме, но повторю здесь для всех.

Библиотека libcouch включена в основное приложение CouchDB, а также будет использоваться клиентскими приложениями, поэтому служба CouchDB действительно включает эти файлы aidl.

Причина, по которой вы, вероятно, смогли использовать эту услугу, заключается в том, что на рынке было 2 версии CouchDB, была старая версия без какой-либо службы и новая (которая была невидима для 2.1пользователей).Сегодня вечером обновленное приложение CouchDB было переиздано для пользователей 2.1, а старая версия удалена.

Исходный код CouchAppLauncher должен помочь вам понять, как использовать сервис, я также скоро опубликую учебник

Спасибо, Дейл

0 голосов
/ 16 февраля 2011

И, чтобы быть полным, я думаю, кто-то выпустил очень хороший учебник для couchapps на Android:)

...