2.打开你的workspace目录,在你的项目目录下创建一个文件夹libs(如果文件夹不存在的话),然后将提供给你的so库放入该目录,基本架构就算是搭建好了。
3.进行开发,这里你需要问一下提供给你jar包的厂家,基本的用法,否则的话是无法进行开发的,因为你都不知道怎么去用。 sqlcipher的基本用法是:
SQLiteDatabase.loadLibs(this) //加载 so库文件,你的厂家的方法应该也是类似。
File databaseFile = getDatabasePath(SQLite_toll.DATABASE_NAME)
databaseFile.mkdirs()
databaseFile.delete()
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFile, helper_SharedPreferences.get_str_sp("database_cipher",this), null)
SQLite_toll initToll = new SQLite_toll(this, avaSys)
initToll.onCreate(database)
database.close()
//因为我sqlcipher是用于数据库加密的,所以你所看到的都是数据库的一些方法,你厂家提供给你的jar包的用法,你是要去问他们的,或者他们的是否有开源代码,又或者是网上也有很多人使用,那么能搜到相关资料。
根据你补充的提问,那么就是System.loadLibrary(this),就可以调用了
错误描述:
java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/org.xiaozhi-2/base.apk"],nativeLibraryDirectories=[/data/app/org.xiaozhi-2/lib/arm64,/data/app/org.xiaozhi-2/base.apk!/lib/arm64-v8a,/vendor/lib64,/system/lib64]]]couldn'tfind"libsqlcipher.so"
解决方案:
adb root
adb push \sqlcipher\android-database-sqlcipher-4.2.0\jni\arm64-v8a\libsqlcipher.so /system/lib64/
adb push \sqlcipher\android-database-sqlcipher-4.2.0\jni\armeabi-v7a\libsqlcipher.so /system/lib/
------解决方案--------------------------------------------------------直接对数据内容加密吧,sqlite的安全性本来就没商用的数据库高。并且如果数据多还是建立个数据库文件,数据库 *** 作类是SQLiteHelper
------解决方案--------------------------------------------------------
首先你说的导入数据库的问题是可以实现的。android支持在assets目录或raw目录下存放数据,可以吧数据库文件存放其中,当初次安装时导入至手机的系统目录下。而且会一直保存在里面,不会丢失。
第二,你说的导入后将其删掉的想法是没什么用的,因为apk文件本来就是个压缩包,一解压就看见了。所以需要对数据库进行加密。我之前在网上找了个java的文件加密小程序将文件加密之后,再在导入手机系统的过程中解密,这样就ok了。但是网上提供的des算法的加密太复杂,导致第一次导入数据的速度很慢,最后我就只是在数据库文件的中插入一段字符,然后再在导入时去掉就好了,这样也能保证一定的安全性。
呵呵,我是自学的,希望高手指点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)