android底层开发之交叉编译环境

X86架构的CPU采用的是复杂指令集(Complex Instruction Set Computer,CICS),而ARM架构的CPU使用的是精简指令集(Reduced Instruction Set Computer,RISC)。由于这两种架构的CPU使用了不同的指令集,因此在X86架构上开发可运行在ARM架构上的程序就必须要使用交叉编译器。通常交叉编译器和相关工具包含的了很多可执行文件以及大量的共享库及头文件等资源。这些资源的集合称为交叉编译环境。

Android是基于Linux内核的系统,可以说Android是一种运行在基于ARM架构设备上的Linux操作系统。Android驱动其实就是Linux驱动,不过在x86的Ubuntu系统下需要交叉编译器将Linux驱动编译成了ARM架构的,然后便可将驱动安装在基于ARM架构的Android模拟器、Android手机(需要root)或平板上。使用传统的GCC也可以编译成X86架构的驱动(并不需要修改代码),这样编译出来的驱动可直接安装在Ubuntu Linux上。

 

1、可到https://sourcery.mentor.com/GNUToolchain/release2800下载CodeSourcery,Linux版本的安装文件是bin格式,需要使用命令sh package.bin,然后进行相关配置。

 

2、将CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin加到环境变量中

 

3、测试

下面编写一个简单的C程序来测试一下这个交叉编译环境。

//  test.c
#include <stdio.h>
int main()
{
    printf("arm gcc test\n");
    return 0;
}

输入下面的命令编译test.c文件(需要加-static选项)。

# arm-none-linux-gnueabi-gcc -static -o test test.c

 

输入下面的命令将test文件上传到任意的Android设备的/data/local目录中(不需root权限)。

# adb push test /data/local

 

使用adb shell命令进入Android设备的控制台,cd /data/local进入/data/local目录,执行命令:

# ./test

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值