原創做品,轉載請註明出處,嚴禁非法轉載。若有錯誤,請留言!html
email:40879506@qq.comlinux
一. 環境
1.GNU/Linux Ubuntu12.04操做系統(x86)
android
二. 下載NDK安裝包
c++
下載NDK,根據NDK裏docs文檔裏的standalone-toolchain.html來抽取交叉編譯的環境。架構
三. 製做交叉編譯工具鏈
ide
配置環境變量末尾添加以下三行工具
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
保存後重啓環境ui
source /etc/profileidea
執行命令:$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目錄並執行。測試圖以下: