Android學習——NDK交叉編譯

原創做品,轉載請註明出處,嚴禁非法轉載。若有錯誤,請留言!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目錄並執行。測試圖以下:

相關文章
相關標籤/搜索