2010-11-12 48 views
1

我有一个已经使用SQLite开发的Android应用程序。 数据库非常大(超过100兆),因此它只能部署在SD卡上。 数据库内的数据很敏感,所以我们需要加密数据库。 手机上的默认SQLite二进制文件不允许加密或添加插件(扩展名)。 我设法使用NDK和加密扩展(我称之为安全的SQLiteS)编译SQLite,但我仍然需要弄清楚如何复制Sqlite API并将其绑定到新的SQLiteS二进制文件。 这个想法是不改变已经开发的代码,使用SQLite默认的API,除了包名。 任何想法我怎么能做到这一点?Android的Sqlite加密

回答

0

我知道这不是您的问题的答案,但您可以尝试(免费,开源)H2 database。它也支持数据文件加密。但是有一些缺点,例如有些操作比较慢。您将需要使用JDBC API,因为尚不支持SQLite/Android数据库API。免责声明:我是H2提交者之一。

+0

谢谢你的回答。 我有一个快速问题,你有任何想法H2与H2S相比有多快/多慢?我主要选择但是表格很大(> 700K记录)。使用SQLite,我们可以在不到一秒的时间内得到结果,H2可以处理相同数量的数据吗? 另外,H2是否适用于BlackBerry? – muricaru 2010-11-15 10:55:38

+0

对不起,但我无法给你一个关于性能的好回答 - 你必须自己测试一下。 H2在黑莓上不起作用。 – 2010-11-20 14:44:37

1

Tryp将原生jdbcsqlite驱动程序安装到Android上。 这使得sqlite3_ *调用(JNI)。

使用aapt工具将库(sqliteS)链接到.apk文件。此外,您可以更改sqlite3_ *名称(在您创建的SQLiteS.so中),以便它不引用android提供的sqlite.so文件。

让我知道解决方案。