2011-02-01 4 views
2

나는 안드로이드가있는 네이티브 CouchdDB 응용 프로그램을 만들고 있습니다. 이제 "안드로이드에 CouchDB를 상호 작용하는 데 필요한 라이브러리 파일"로 설명 그냥이 주 CouchOne 발표 libcouch : [email protected]안드로이드 CouchDB - libcouch 및 IPC Aidl 서비스

그것은 CouchDB를 설치하는 기본 응용 프로그램입니다 경우 CouchDB를 서비스 (이전에 설치 한 경우 그 CouchDB를 함께 제공) 은 (는) 바인딩 할 수 없습니다. CouchDB를 에서 IPC 서비스에 바인딩 시도하여 그 서비스가 CouchDB를 통신하고자 통해 장치에 CouchDB를의 존재를 추정 libcouch 을 : 나는 그것을 이해

은보다 정확합니다.

이 검토를 위해 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(); 
      } 
     }); 
    } 
} 

나는 이것에 대해 가지고있는 질문 (들)()이다

공공 무효 attemptLaunch을 : libcouch는 이전에 설치된 CouchDB를 "찾을"수 없습니다. 항상 시장에서 CouchDB 을 설치하려고 시도합니다. 이것은 실제로 CouchDBService에 바인드 할 수 없기 때문입니다. AIDL에서 생성 된 서비스 인터페이스의 목적을 이해함에 따라 다른 응용 프로그램에 IPC를 제공하려는 실제 서비스는 AIDL을 사용해야합니다. 이 경우 AIDL은 으로 원격 서비스에 바인드하려는 응용 프로그램 (이 경우 libcouch)으로 이동했습니다.

커밋을 검토하면 AIDL 파일이 해당 저장소에서 libcouch로 이동되었습니다.

완전한 연결을 위해

, 여기에 안드로이드 CouchDB를 소스에 대한 링크는 다음과 같습니다 이제 github.com/couchone/libcouch-android

, 내 소견 완전히 잘못 될 수있다, 즉이야 매니페스트 또한 lincouch의의 수 뭔가 빠졌지 만, 나는 정말로 답을 얻기를 고대하고있다!

답변

2

나는 전자 메일로 회신했지만 여기 누구든지 반복 할 수 있습니다.

libcouch 라이브러리는 클라이언트 응용 프로그램에서 사용할 수있을뿐만 아니라 CouchDB 핵심 응용 프로그램에 포함되어 있으므로 CouchDB 서비스에는 해당 aidl 파일이 포함됩니다.

아마 서비스를 사용할 수 있었던 이유는 시장에 2 가지 버전의 CouchDB가 있었고, 서비스가없는 이전 버전과 새로운 버전 (2.1 사용자에게는 보이지 않음)이 있었기 때문입니다. . 오늘 업데이트 된 CouchDB 응용 프로그램이 2.1 사용자 용으로 다시 게시되고 이전 버전이 제거되었습니다. CouchAppLauncher의 소스 코드는이 서비스를 소비하는 방법을 볼 수 있도록해야한다

, 나는 또한 튜토리얼을 게시됩니다 곧

감사 데일

+0

안녕하세요, Dave, 다시 살펴보고 다시 한 번 감사드립니다. 좋은 btw 명명! –

+0

시장 설명에서 CouchDB의 게시일에 대한 정보를 공유 할 수 있습니까? –

+0

게시일에 노트를 공유하고 시장 설명에서 CouchDB의 번호를 커밋 할 수 있습니까? –

0

그리고 그냥 완료하기 위해, 나는 누군가가 넣어 같아요 - 매우 좋은 tutorial android 용 couchapps :