原創作品,轉載請注明出處,嚴禁非法轉載。如有錯誤,請留言!
email:40879506@qq.com
一. 環境
1.GNU/Linux Ubuntu12.04操作系統(x86)
二. 下載NDK安裝包
下載NDK,根據NDK里docs文檔里的standalone-toolchain.html來抽取交叉編譯的環境。
三. 制作交叉編譯工具鏈
配置環境變量末尾添加如下三行
vi /etc/profile
1 export NDK=/opt/cross_tool/android-ndk-r10d 2 export NDK_CROSS=/opt/cross_tool/AndroidToolChain/bin 3 PATH=$PATH:$NDK:$NDK_CROSS
保存后重啟環境
source /etc/profile
執行命令:$NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/opt/cross_tool/AndroidToolChain/
1 # $NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/opt/cross_tool/AndroidToolChain/ 2 Auto-config: --toolchain=arm-linux-androideabi-4.8 3 Copying prebuilt binaries... 4 Copying sysroot headers and libraries... 5 Copying c++ runtime headers and libraries... 6 Copying files to: /opt/cross_tool/AndroidToolChain/ 7 Cleaning up... 8 Done.
如上圖說明已經部署好交叉編譯環境。
其中$NDK環境變量是NDK的安裝路徑,選項--platform指定Android版本的開發形式,對應版本4.4.2 API。--arch指定目標執行的架構。--install-dir指定這個新生成的文件夾即是你的交叉編譯環境,和其他交叉編譯工具鏈使用方法類似。
四. 編寫測試程序和編譯
編譯C程序hello.c
1 #include <stdio.h> 2 int main() 3 { 4 printf("hello,JNI!!!! Android 4.4\n"); 5 return 0; 6 }
使用命令:
arm-linux-androideabi-gcc hello.c -o hello
即生成了可在手機arm里運行的可執行文件hello。
五. 使用Window下的模擬機測試
把hello程序拷貝到Android的SDK平台下的測試目錄,我這里創建了一個test目錄。(你也可以配置window下的環境變量,在任意目錄下使用adb命令)
用adb命令把hello程序放到模擬機的/system/bin目錄並執行。測試圖如下:

