SQLCipher中的opendatabase需要时间Android:

时间:2014-07-30 14:10:25

标签: android sqlcipher

我正在使用SQLCipher它工作正常。这个openDatabase方法存在一个性能问题。我的代码是

SQLiteDatabase database = SQLiteDatabase.openDatabase(databasePath,
                databasePassword, null, SQLiteDatabase.OPEN_READWRITE);

这也很好。但我的问题是需要3到4秒的时间(我发现时间滞后于Logcat)。因此,活动显示响应缓慢。

注意: 我在设置onCreate

后从setContentView(R.layout._list);方法调用此代码

我做对了吗?有没有其他方法可以打开数据库。

onCreate调用openDatabase是对的吗?

2 个答案:

答案 0 :(得分:0)

您看到的性能问题很可能是由于SQLCipher密钥派生所致。 SQLCipher打开数据库的性能故意慢,使用PBKDF2执行密钥派生(即数千个SHA1操作)来抵御暴力破解和字典攻击(您可以在http://sqlcipher.net/design阅读更多相关信息)。此活动将推迟到首次使用数据库时。

答案 1 :(得分:0)

我已经解决了我的问题。我的应用程序打开后,我打开我的数据库并保存(static方法)从所有activities打开它。我不确定哪种方式是正确的。但它解决了我的问题。