转载请以连接形式标明出处: 本文出自:103style的博客html
build android-database-sqlcipherjava
android-database-sqlcipher 用于 Android SQLite 数据库的加密。 维护者提供了 收费 和 开源 两个版本。 sqlcipher开发维护者官网:www.zetetic.net/sqlcipher/ github开源项目地址:android-database-sqlcipherlinux
如下是笔者基于 开源版本 4.1.3 版本 编译以后生成文件的项目地址: android-database-sqlcipher 或者直接点击下载 4.1.3版本对应的aar包
。下载连接android
官方介绍:https://www.zetetic.net/sqlcipher/sqlcipher-for-android/git
android {
...
//此处看实际工程是否配置了统一的aar目录
repositories {
flatDir {
dirs 'libs'
}
}
...
}
dependencies {
...
api(name: "android-database-sqlcipher-4.1.3", ext: 'aar')
}
复制代码
SQLiteDatabase.loadLibs(context);
import net.sqlcipher.database.SQLiteDatabase
替换 import android.database.sqlite.SQLiteDatabase
import net.sqlcipher.database.SQLiteOpenHelper
替换 import android.database.sqlite.SQLiteOpenHelper
官方4.1.3版本 介绍的编译方法。感受太简洁了,新手表示很难受
github
Building
In order to build android-database-sqlcipher from source you will need both the Android SDK as well as Android NDK.
With different Android SDK installation approaches available. We currently recommend using Android NDK version r15c.
To complete the make command, the ANDROID_NDK_ROOT environment variable must be defined which should point to your NDK root.
Once you have cloned the repo, change directory into the root of the repository and run the following commands:
# this only needs to be done once
make init
# to build the source for debug:
make build-debug
# or for a release build:
make build-release
复制代码
笔者编程的过程 因为当前的版本 不支持windows下的编译,因此笔者只能走 Linux 环境了sql
jdk
为 openjdk 1.8.0 版本, 1.7.0的版本会报错1.按Ctrl + Alt + T打开终端。打开后,运行下面的命令来添加PPA:
sudo add-apt-repository ppa:openjdk-r/ppa
2.以后,更新系统包缓存并安装OpenJDK 8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
3.若是您的系统上安装了多个Java版本。运行下面的命令设置默认的Java:
sudo update-alternatives --config java
键入一个数字以选择Java版本。
设置默认的java版本
并经过运行如下命令设置默认Java编译器:
sudo update-alternatives --config javac
4.最后经过运行如下步骤查看当前的Java版本:
java -version
它输出这样的东西:
openjdk版本“1.8.0_01-internal”
复制代码
上面官方文档推荐的版本
sdk
、ndk
目录,以及添加ANDROID_NDK_ROOT
到path
,参考 Ubuntu profile,不然会报找不到ANDROID_NDK_ROOT
以及 A problem occurred starting process 'command 'ndk-build''
的错误。export ANDROID_NDK_ROOT=/home/xiaoke/android-ndk-r15c
export ANDROID_HOME=/home/xiaoke/Android/sdk
export PATH=$PATH:$ANDROID_NDK_ROOT
复制代码
1. make init
2. make clean
3. make build-release
复制代码
-keep class net.sqlcipher.** { *; }
-keep class net.sqlcipher.database.* { *; }
复制代码
No pending exception expected: java.lang.NoSuchFieldError
这是由于没有添加如下混淆配置致使的-keep class net.sqlcipher.** { *; }
-keep class net.sqlcipher.database.* { *; }
复制代码
若是以为不错的话,请帮忙点个赞呗。数据库
以上编程
扫描下面的二维码,关注个人公众号 Android1024, 点关注,不迷路。 ubuntu