2011-06-07 47 views
1

我們的應用程序在使用Android 2.1中提供的默認sqlite版本時遇到問題。 所以我們想爲我們的應用使用自定義的sqlite版本。 所以我的問題是,如果我們從SQLITE.org獲得最新的sqlite版本並使用android NDK進行編譯,那麼當我們的應用程序中發生數據庫操作時,我們是否可以調用我們的sqlite庫? 例如:如果在應用程序代碼中存在諸如「db.execSQL()」的調用,那麼我們如何確定它將調用自定義庫?我們可以確保我們的應用程序使用我們的SQLITE版本,而不是使用Android NDK提供的版本?

回答

0

除了構建自己的sqlite共享對象外,您還需要用自己的代碼替換Android中的一個或多個標準java源代碼(除非實際只是替換平臺的sqlite共享對象)。平臺框架會自動加載/system/lib/libsqlite.so。

我會建議不要命名您的共享庫libsqlite.so。我已經看到Android的dlopen()被告知以不同的路徑加載兩個共享對象,但名稱相同,只是第一個打開了兩次。

+0

嗯..感謝您的快速回復..因此,我們必須將所有鏈接替換爲默認的sqlite。可以迭代,我們cud最終取代很多文件..我正確嗎? – user767461 2011-06-07 11:09:36

+0

是的,具體取決於框架代碼如何將事情聯繫在一起,這可能是非常廣泛的。如果您不需要Android數據庫/遊標控件(以及它可以通過適配器將事情聯繫在一起的非常好的方式),您可以創建自己的Java訪問代碼來綁定自定義的SQLite。 – mah 2011-06-07 11:37:49

相關問題