我正在使用android的本地CouchdDB應用程序。現在,就在這個星期CouchOne發佈libcouch,可謂「來使用CouchDB在Android交互所需的庫文件」: [email protected]Android Couchdb - libcouch和IPC Aidl服務
這是一個基本的應用程序,安裝的CouchDB如果CouchDB的服務(即附帶CouchDB的,如果它是以前安裝) 不能綁定到。
更確切地說,我的理解是: libcouch通過嘗試從CouchDB的 綁定到一個IPC服務,並通過該服務要使用CouchDB溝通估計CouchDB的設備上存在。
請參閱法 「attemptLaunch()」 在 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();
}
});
}
}
我對這個問題(S)的: libcouch永遠無法「找到」以前安裝的CouchDB。它總是試圖從市場上安裝CouchDB 。這是因爲它實際上無法綁定到CouchDBService。 據我瞭解AIDL生成的服務接口的目的,打算將IPC提供給其他應用程序的實際 服務應使用AIDL。在這種情況下,AIDL已經被移動到試圖綁定到遠程服務的應用程序 ,遠程服務在這種情況下是libcouch。
檢查提交AIDL文件剛剛從該存儲庫移到libcouch。
有關完整的聯動,這裏的鏈接到Android的CouchDB來源: github.com/couchone/libcouch-android
現在,我可以在我的調查結果完全錯誤的,它也可能是lincouch的清單是s錯過了一些東西,但我真的很期待得到一些答案!
你好戴夫,我會再看一遍,再次感謝你。尼斯命名btw! – 2011-02-02 09:49:06