标签:ring libs byte nta 卡顿 支持 使用 集成 常用
android-database-sqlcipher是基于SQLCipher的数据库加密框架,支持android4到android9,经常用来对android的SqlLite进行加密,现在支持Gradle集成,如果要支持androidx,可以使用Room框架,也可以配合原声的SQLiteOpenHelper使用。
首先在你的build.gradle中添加依赖:
implementation ‘net.zetetic:android-database-sqlcipher:4.2.0‘
这里介绍怎么和原生API配合使用:
1、将所有android.database.sqlite.*的引入全部更改为net.sqlcipher.database.*,例如android.database.sqlite.SQLiteDatabase改为 net.sqlcipher.database.SQLiteDatabase;
2、在你的application的oncreate方法里面调用SQLiteDatabase.loadLibs();传入application的上下文作为参数;
3、在你获取数据库对象的时候,使用SQLiteDatabase.g() ,传入密码,支持String,byte[],char[] 作为密码;
这里有一个guide页作为使用简介https://www.zetetic.net/sqlcipher/sqlcipher-for-android/
下面说一说使用过程中可能出现的问题
SQLiteDatabase mSQLiteDatabase = helper.getWritableDatabase(GlobalConst.DB_PASSWORD);
虽然guide页是在onCreate里创建的数据库对象,但是实测执行这段代码耗时非常严重,通常情况下为0.8s-1.5s左右,不像使用原生的速度很快不会卡顿,因此建议维系一个全局的单例句柄,可以在应用启动加载页异步加载数据库对象设置为Application全局变量使用或者在每次需要获取db对象的时候都使用异步操作,如果你使用单例模式,要保证每次同时操作数据库的db对象不再同一个线程,因此全部数据操作建议都用异步操作。
标签:ring libs byte nta 卡顿 支持 使用 集成 常用
原文地址:https://www.cnblogs.com/yjpjy/p/11359595.html