android studio下使用SqlCipher
android studio和eclipse 稍微有點不同。
Android studio 版本1.3
SqlCipher 版本3.3.1
1.將sqlcipher.jar複製到工程檔案夾libs中;
2.在工程main下,建立兩個檔案夾jniLibs和assets,將amreabi檔案夾整個複製到jniLibs中,將icudt46l.zip複製到assets中;
結構圖如下:
3.載入該類
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); SQLiteDatabase.loadLibs(this); //在使用該類之前載入,而且只載入一次 }
注意匯入的包為:import net.sqlcipher.database.SQLiteDatabase;
4.建立資料庫的時候注意的細節
此方法無法開啟資料庫
database = SQLiteDatabase.openOrCreateDatabase(data, 123456, null); if (database != null) { database.execSQL(CREATE TABLE IF NOT EXISTS person_student(name VARCHAR(20) NOT NULL , age INT(3))); }
這種才可以
File file = context.getDatabasePath(data); file.mkdirs(); database = SQLiteDatabase.openOrCreateDatabase(file, 123456, null); // if (database != null) { database.execSQL(CREATE TABLE IF NOT EXISTS person_student(name VARCHAR(20) NOT NULL , age INT(3))); }
比較兩種方法,多了一步手動建立檔案夾。
使用方法基本相同,它的加密解密都在內部完成,和我們寫程式基本沒關係,主要作用是防止別人通過root許可權直接查看明文資料庫。