版權聲明:本文爲博主原創文章,未經博主容許不得轉載。html
轉載請代表出處:http://www.cnblogs.com/cavalier-/p/6241964.htmljava
你們好,我是Cavalier,此次和你們分享的主題是數據庫加密。當今移動互聯網數據安全相當重要,而數據庫是Android經常使用的數據持久化方案,可是原生的sqLite並不支持密碼加密,目前經常使用的數據庫加密方式大部分是字段加密,或者是內容加密。這裏特別推薦使用sqlcipher的數據庫加密方案,使用與原生一致,(sqlcipher-android的Github地址請戳),下面分享一下源碼編譯的過程和遇到的錯誤。android
博主當前環境是:
Mac ox 10.12.2 (16C67)
Java 1.8.0_112
Ant 1.9.8
Android NDK 12.1.3345770git
(sqlcipher-android的Github地址請戳)github
從上面提供的地址中克隆下來(tip:我嘗試了直接下載源碼ZIP包,可是在後面的編譯中會報錯,報錯內容看文後)
git clone https://github.com/sqlcipher/android-database-sqlcipher.git
從github克隆源碼很是慢...
克隆下來後,就能夠直接運行make命令了
make init
執行完後再執行make就行了
make
當make執行完後,會在目錄下生成libs目錄,裏面就有了我們須要的jar包和so動態庫sql
ant relese permission denied
這個錯誤,我嘗試了sudo -s命令發現沒效果,嘗試修改了源文件的權限也不行,可是我嘗試了which ant 發現報了not fond,修復方案就是從Apache下載一個最新版本的Ant,解壓後添加進系統變量
open ~/.bash_profile
打開後添加本身的路徑
export ANT_HOME=(此處填寫你剛下載的Ant絕對路徑)
export PATH=${ANT_HOME}/bin:$PATH
配置環境變量
source ~/.bash_profile
這時輸入
ant -version數據庫
若是輸出具體版本號即爲配置成功,配置ant成功後便可以從新make一下就行了apache
Unable to locate tools.jar
這時就須要檢查一下環境變量中JAVA_HOME和CLASSPATH的配置,正確的配置應該以下安全
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home" export PATH=${JAVA_HOME}/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CLASSPATH
從新配置後就可嘗試make一下便可成功編譯bash
Buildfile: build.xml does not exist! Build failed make: *** [build-java] Error 1
這個就說明源碼中是沒有帶build.xml的,這時我們能夠經過以下命令生成一個
android update project --target 1 --path ./ --subprojects
這時會在源碼目錄中多出一個build.xml,從新make一下就行了
如原生的數據庫操做一致
因爲Android平臺4.0到7.0跨度太大,以致於若是項目是用舊的動態庫會報一個警告,且這個警告是不可控的,對用戶體驗很是很差。推薦使用當前最新版本便可
但願你們經過如上簡單的介紹後,對sqlcipher源碼編譯沒有問題。
以上純屬我的經驗,喜歡的請點個推薦哦,若有錯誤請指出,謝謝你們,。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。