2011-06-07 38 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

相关问题