NDK
全稱是 Native Development Kit。NDK是一系列工具的集合,可以幫助開發者進行c/c++的開發,並能自動將.so打包成apk。NDK整合了交叉編譯器,並提供了相應的mk檔案可以做到隔離CPU,平臺,ABI等差異,只需修改mk檔案即可。開發人員只需要簡單修改mk檔案,就可以建立出.so。NDK還提供了一份穩定的功能有限的API標頭檔案宣告。
NDK開發就是用c/c++開發Android應用或者開發應用的某一個功能,使用NDC有時是為了呼叫底層的庫,有時是為c/c++帶來的效率的提高。
以前使用Eclipse做NDK開發各種麻煩的事情,配置檔案的編寫等各種的麻煩。在Android Studio 1.3之後,google和JetBrains合作,將CLion整合進了Android Studio,免費支援對於NDK開發,對於開發者來說是一個莫大的福利,現在使用Android Studio ,google在提供了更多的支援,讓NDK開發更加的容易。
環境要求
安裝最新版的Java
然後要先下載Android Studio: https://developer.android.com/studio/index.html 請自帶梯子。
Android Studio 會自動下載Android SDK,Gradle,已經對於的開發工具。
NDK需要自己手動安裝
安裝NDK
在Toolbare可以找到Android的更新圖示:
在SDK Tools
的Tab頁中,勾選LLDB 2.1和NDK:
配置環境變數
Android Studio安裝的NDK預設安裝在ANDROID_SDK_HOME/ndk-bundle/
下。需要設定NDK的環境變數(以fish)為例:
vim ~/.config/fish/config.fish
增加變數NDK_HOME
:
set -gx NDK_HOME $ANDROID_SDK_HOME/ndk-bundle
設定PATH
:
set -gx PATH $ANDROID_SDK_HOME/platform-tools $ANDROID_SDK_HOME/tools $NDK_HOME $PATH
讓變更立刻生效:
source ~/.config/fish/config.fish
測試下ndk命令是否可以執行,執行:
ndk-which gcc
得到結果:
1 |
Users/..../Android/sdk/ndk-bundle/prebuilt/darwin-x86_64/bin/../../../toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc |
ndk-which命令執行正常,NDK環境變數設定完成。
bash_profile對應的設定為:
1 2 3 4 |
vim ~/.bash_profile NDK_HOME=$ANDROID_SDK_HOME/ndk-bundle PATH=$ANDROID_SDK_HOME/platform-tools:$ANDROID_SDK_HOME/tools:$NDK_HOME:$PATH source ~/.bash_profile |