NDK 編譯 Boringssl

1 建議采用boringssl 替代 openssl

目前Android6.0以后已經(jīng)采用boringssl而非openssl,故如果網(wǎng)絡(luò)框架中需要采用ssl加密,建議采用boringssl。而且Android平臺需要openssl 1.0.1x,采用工具鏈編譯坑也比較多,boringssl有g(shù)oogle官方支持。

2 下載boringssl 編寫 配置環(huán)境NDK環(huán)境變量

boringssl 準(zhǔn)備好你的NDK,最好將NDK目錄添加到環(huán)境變量中,比如我的NDK路徑是 $HOME/Android/sdk/ndk-bundle 可以在 shell腳本里寫上

 export ANDROID_NDK=/Users/fanzhengchen/Android/sdk/ndk-bundle

然后source 命令執(zhí)行下這個腳本

3 cmake 構(gòu)建

我們可以參考官方的BUILD.md 不過我們還需要添加一些其他的額外變量 先在boringssl 根目錄下新建一個build文件夾,進(jìn)入build文件夾下 編寫一個shell腳本

#!/bin/sh
$ANDROID_SDK/cmake/3.6.3155560/bin/cmake \
    -DANDROID_ABI=armeabi-v7a \
    -DCMAKE_MAKE_PROGRAM=$ANDROID_SDK/cmake/3.6.3155560/bin/ninja \
    -DANDROID_NATIVE_API_LEVEL=16 \
    -DANDROID_NDK=$ANDROID_NDK \
    -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -GNinja \
    ..
cmake --build .

其中CMAKE_TOOLCHAIN_FILE完全換成boringssl自帶的android.toolchain.cmake 我還添加了一個CMAKE_BUILD_TYPE 設(shè)置為Release
CMAKE_MAKE_PROGRAM 可以設(shè)置為SDK里自帶的ninja。
執(zhí)行這個shell腳本,你會在ssl和crypto下得到兩個靜態(tài)庫libssl.a和libcrypto.a,頭文件就是boringssl根目錄下的include,導(dǎo)入到你的Android工程就不介紹了,文章很多的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容