Android学习——NDK交叉编译

原创作品,转载请注明出处,严禁非法转载。如有错误,请留言!

email:408797506@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目录并执行。测试图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kcyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值