我只是想知道,即使您在应用程序中应用混淆器,仍然可以通过提取/破坏您的应用程序来使用您的数据库(数据集,让我们假设测验数据),就像如果您有测验应用程序一样,人们可以轻松提取你的测验数据库(数据集)通过你的apk,我们如何保存它,这样就没有人可以提取或获取它,我发现的一种方法是将我们的应用程序数据库放在网上,这样人们就可以通过网络使用它,就像从服务器一样,如果他/她关闭互联网应用程序应该停止工作。但是如果我们也让它可以离线玩,我们如何保存我们的数据库呢?
最佳答案
最好的选择是使用 SQLCipher:http://sqlcipher.net/sqlcipher-for-android/
我已经成功使用它了,效果很好。
我会为您复制他们的示例,以便您可以看到它有多么简单:
package com.demo.sqlcipher;
import java.io.File;
import net.sqlcipher.database.SQLiteDatabase;
import android.app.Activity;
import android.os.Bundle;
public class HelloSQLCipherActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
InitializeSQLCipher();
}
private void InitializeSQLCipher() {
SQLiteDatabase.loadLibs(this);
File databaseFile = getDatabasePath("demo.db");
databaseFile.mkdirs();
databaseFile.delete();
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFile, "test123", null);
database.execSQL("create table t1(a, b)");
database.execSQL("insert into t1(a, b) values(?, ?)", new Object[]{"one for the money",
"two for the show"});
}
}
关于android - 如何保存从android应用程序中提取的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24664174/