Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载:
http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2。如果下载了完整 的Android项目的源代码,则可以在“<your_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,其源代码位于” <your_android>/build/tools/apriori”
- strip工具也没有采用常用的strip,即“<your_android>/prebuilt/linux-x86/toolchain /arm-eabi-4.2.1/bin”目录下的arm-eabi-strip,而是位于<your_android>/out/host /linux-x86/bin/的soslim工具。

更多相关文章

  1. Android(安卓)源码结构【搜集】
  2. Android(安卓)Makefile中 如何识别 TARGET_PRODUCT
  3. android系统中运行jar文件
  4. 编译Android内核模块
  5. Ubuntu 16.04编译Android,make 版本过高导致编译失败的问题
  6. android studio ndk 调试技巧
  7. Android移植到Asus P535步骤说明
  8. Ubuntu 下用 Eclipse 编译调试 Android(安卓)NDK 工程
  9. Android(安卓)frameworks添加资源后编译报错:找不到添加的内部资

随机推荐

  1. group by 按某一时间段分组统计并查询(推
  2. 详解安装sql2012出现错误could not open
  3. SQL SERVER迁移之更换磁盘文件夹的完整步
  4. 解决sql server保存对象字符串转换成uniq
  5. 详解GaussDB(DWS) explain分布式执行计划
  6. SQL server 自增ID--序号自动增加的字段
  7. SQL Server中identity(自增)的用法详解
  8. Microsoft SQL Server数据库各版本下载地
  9. SqlServer生成连续数字根据指定的数字操
  10. Zabbix监控SQL Server服务状态的方法详解