轉載請以連接形式標明出處: 本文出自: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