2011-02-01 4 views
2

Je travaille sur une application CouchdDB native avec android. Maintenant, cette semaine libcouch publié de CouchOne, décrit comme « fichiers de bibliothèque nécessaires pour interagir avec CouchDB sur Android »: [email protected]Android Couchdb - libcouch et IPC Aidl Services

Il est une application de base qui installe CouchDB si le service CouchDB (qui vient avec CouchDB si elle a été installé précédemment ne peut pas être lié à.

Pour être plus précis, si je comprends bien: libcouch estime la présence de CouchDB sur le dispositif en essayant de se lier à un service IPC de CouchDB et par ce service veut communiquer avec CouchDB.

S'il vous plaît voir la méthode "attemptLaunch()" à CouchAppLauncher.class pour l'examen de cette:

attemptLaunch public void() {

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(); 
      } 
     }); 
    } 
} 

La question (s) J'ai à ce sujet sont : libcouch n'est jamais capable de "trouver" un CouchDB précédemment installé. Il tente toujours d'installer CouchDB sur le marché. C'est parce qu'il n'est jamais réellement capable de se lier à CouchDBService. Si j'ai bien compris l'objectif des interfaces de service générées par AIDL, le service qui a l'intention d'offrir son service IPC à d'autres applications devrait utiliser AIDL. Dans ce cas, AIDL a été déplacé vers l'application qui tente de se lier au service distant, qui est libcouch dans ce cas.

Vérification des validations Les fichiers AIDL viennent d'être déplacés de ce référentiel vers libcouch.

Pour la liaison complète, voici le lien vers les sources CouchDB Android: github.com/couchone/libcouch-android

Maintenant, je pourrais être tout à fait tort dans mes conclusions, il pourrait aussi être lincouch que s de Manifest manque quelque chose, mais j'ai vraiment hâte d'avoir des réponses!

Répondre

2

J'ai répondu dans un courriel, mais à réitérer pour n'importe qui ici.

La bibliothèque libcouch est incluse dans l'application CouchDB de base ainsi que pour être utilisée par les applications clientes afin que le service CouchDB inclue ces fichiers aidl.

La raison pour laquelle vous avez probablement consommé ce service est qu'il y a eu 2 versions de CouchDB sur le marché, il y avait une ancienne version sans aucun service, et une nouvelle (qui était invisible pour les utilisateurs 2.1) . Ce soir, l'application CouchDB mise à jour a été republiée pour les utilisateurs 2.1 et l'ancienne version a été supprimée.

Le code source de CouchAppLauncher devrait vous aider à voir comment consommer le service, je vais également la publication d'un tutoriel sous peu

Merci Dale

+0

Bonjour Dave, je vais regarder à nouveau, et encore merci. Nice nommer btw! –

+0

Serait-il possible de partager quelques notes sur la date de publication de CouchDB dans la description du marché? –

+0

Serait-il possible de partager quelques notes sur la date de publication et peut-être commettre le numéro de CouchDB dans la description du marché? –

0

Et juste pour être complet, je pense que quelqu'un a mis un très agréable tutorial pour couchapps sur android :)