Android的交叉编译工具
来源:互联网 发布:淘宝李涛是真是假 编辑:程序博客网 时间:2024/05/01 13:41
一直以来自己对Android的交叉编译工具认识的不够清晰,通常在Linux上编译应用程序时通常需要安装交叉编译器,但是移植Android很长时间了,自己的虚拟机里面也没有安装任何的交叉编译工具,Android也能顺利的编译通过,自己从网上查了相关的资料,才弄明白了这些。
Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载: http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2。
如果下载了完整的Android项目的源代码,则可以在“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下找到交叉编译工具,比如Android所用的arm-eabi-gcc-4.2.1。 Android并没有采用glibc作为C库,而是采用了Google自己开发的Bionic Libc,它的官方Toolchain也是基于Bionic Libc而并非glibc的。这使得使用或移植其他Toolchain来用于Android要比较麻烦:在Google公布用于Android的官方Toolchain之前,多数的Android爱好者使用的Toolchain是在http://www.codesourcery.com/gnu_toolchains/arm/download.html 下载的一个通用的Toolchain,它用来编译和移植Android 的Linux内核是可行的,因为内核并不需要C库,但是开发Android的应用程序时,直接采用或者移植其他的Toolchain都比较麻烦,其他Toolchain编译的应用程序只能采用静态编译的方式才能运行于Android模拟器中,这显然是实际开发中所不能接受的方式。目前尚没有看到说明成功移植其他交叉编译器来编译Android应用程序的资料。
与glibc相比,Bionic Libc有如下一些特点:
- 采用BSD License,而不是glibc的GPL License; - 大小只有大约200k,比glibc差不多小一半,且比glibc更快;
- 实现了一个更小、更快的pthread;
- 提供了一些Android所需要的重要函数,如”getprop”, “LOGI”等;
- 不完全支持POSIX标准,比如C++ exceptions,wide chars等;
- 不提供libthread_db 和 libm的实现
另外,Android中所用的其他一些二进制工具也比较特殊:
- 加载动态库时使用的是/system/bin/linker而不是常用的/lib/ld.so;
- prelink工具不是常用的prelink而是apriori,其源代码位于” /build/tools/apriori”
- strip工具也没有采用常用的strip,即“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下的arm-eabi-strip,而是位于/out/host/linux-x86/bin/的soslim工具。
本文章摘自http://www.top-e.org/jiaoshi/html/?151.html,感谢网友这篇文章,对android的编译器有了一定的认识。
- Android的交叉编译工具
- Android的交叉编译工具
- Android的交叉编译工具
- android 交叉编译工具的认识
- android 交叉编译工具的设置
- Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )
- 交叉编译工具的安装
- Android NDK 提供的交叉工具链手动编译源码
- Android NDK 提供的交叉工具链手动编译源码
- Android NDK 提供的交叉工具链手动编译源码
- android交叉编译工具链接下载
- android--ndk交叉编译工具安装
- android NDK提取toolchain(交叉编译工具)
- android toolchain 交叉编译工具版本设置
- Android NDK自定义交叉编译工具链
- Reiserfs分区格式化工具的交叉编译
- qt交叉编译工具的建立
- MIPS架构的交叉编译工具问题
- 递归遍历文件夹&读取ini文件&获取ini的全部key
- 查汉字的区位码
- [转]让Editplus自动格式化js、css、html
- flex管理声音文件的办法
- 深入解析Close()和Dispose()的区别
- Android的交叉编译工具
- 天堂里没有程序员
- 西风颂
- VC GDAl 读取并显示图像
- 合并多个XML文件的简单方法 —— 外部实体引用(转)
- 用BrowseForFolder 和 GetOpenFilename 选取文件夹和文件名称
- 类图关系速查
- ios ipod library 读,写,等常见管理方法
- 【POJ1179】Polygon (动态规划 DP)