最近看了一些资料,学习了android系统源码的编译。在这里做一下记录。
我的编译环境:ubuntu11.04, jdk1.6, 2.1GHz主频, 2G内存, 32位机
先上图吧,这是我编译的系统,用模拟器运行起来的效果:
1:安装必要的工具:
安装git工具:
在命令行执行如下命令
sudo apt-get install git-core gnupg
安装jdk,这个就百度吧。
2:下载源代码:
首先建立一个bin目录,来放置即将下载的repo工具:
mkdir ~/bin
下载repo脚本,在ubuntu执行命令:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
经过这两条命令在你的~/bin/目录下面已经有了一个名为“repo”的脚本文件,并且该文件已经有了可执行的权限。
新建一个目录来存放源代码:
mkdir android
cd android
下载服务器上最新的源代码命令
repo init -u https://android.googlesource.com/platform/manifest
如果不想下载最新的源代码就加上一个参数 -b,比如下载2.3.1的系统源码
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.1_r1
执行这条命令之后,在android文件夹下面就有了一个.repo文件夹,按Ctrl+h键可以看到。
开始下载,执行命令:
repo sync
注意:下载源代码的时间有点久,因为源代码很大,我下载的是2.3.1的,总共7个多G,里面包含了.repo文件夹中的内容。期间可能会出现断网,或者你等不了那么就想下一次接着下载,可以直接关掉。下一次你准备下载的时候就按照之前的步骤将repo工具路径加入环境变量中,在android目录再次执行命令
repo sync
下载完源代码后你的目录应该是这样:
3:编译源代码:
因为android2.2以后的源码官网都建议使用64位机来编译,这里需要修改一下它的默认规则为32位:
1)修改build/core目录下的main.mk文件:
ifeq ($(BUILD_OS),linux)
build_arch := $(shell uname -m)
#Change the following line for building on a 32-bit system.
#ifneq (64,$(findstring 64,$(build_arch)))
ifneq (i686,$(findstring i686,$(build_arch)))
$(warning ************************************************************)
$(warning You are attempting to build on a 32-bit system.)
$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
2)找到下列文件:
/external/clearsilver/cgi/Android.mk
/external/clearsilver/cs/Android.mk
/external/clearsilver/java-jni/Android.mk
/external/clearsilver/util/Android.mk
修改LOCAL_CFLAGS和LOCAL_LDFLAGS变量:
# This forces a 64-bit build for Java6
# Change the following two lines for building on a 32-bit system.
# LOCAL_CFLAGS += -m64
# LOCAL_LDFLAGS += -m64
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
编译:
$~android/make
第一次编译的时间有点长,如果顺利的话等3、4个小时就编译成功了。其中可能出现一些小问题,稍微百度一下就可以解决掉的。
4:运行编译后的镜像:
设置镜像和emulator的环境变量
export PATH=$PATH:~/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
运行:
emulator
参考资料:
http://blog.csdn.net/luoshengyang/article/details/6559955
http://source.android.com/source/downloading.html
- 大小: 148.9 KB
- 大小: 21.4 KB
分享到:
相关推荐
从源代码构建完整的Android系统是定制化开发的关键步骤。 - **编译工具**:使用Android构建工具(如repo工具)。 - **编译命令**:使用make命令进行编译。 #### 三、制作安装或运行文件系统映像 制作文件系统映像...
2. **Linux系统**:Linux是一种自由和开放源代码的类Unix操作系统内核,许多流行的发行版如Ubuntu、CentOS、Debian等都是基于Linux内核。在ARM64设备上,也有相应的Linux发行版提供支持。 3. **RabbitMQ依赖**:...
- 源代码 - 2.2 Ubuntu软件包管理系统 - 2.2.1 Ubuntu软件包概述 - 2.2.2 Ubuntu软件包格式 - 2.2.3 Ubuntu软件包命名约定 - 2.2.4 保存本地配置 - 2.2.5 Ubuntu维护脚本 - 2.2.6 软件包优先级 - 2.2.7 ...
对于熟悉 Vim 的用户,可以安装完整的 Vim 版本进行源代码编辑: ```bash sudo apt-get install vim-full ``` 如果不熟悉 Vim,可以选择安装 Gedit、Kate 或 Mousepad 这些图形界面编辑器: ```bash sudo apt-get...
这部分包含了实验一的所有源代码,供读者参考和学习。 **实验二:掌握添加系统调用的方法** 2.1 实验目的 此实验旨在让学生了解系统调用的工作机制,学会如何在内核中添加新的系统调用,并能在用户空间调用它。 ...
可以通过下载源代码并按照官方文档进行编译。 - **2.2.3 编译snnapy依赖库**:snnapy是一个用于序列化数据的库。同样,需要下载源代码并按照文档编译。 - **2.2.4 编译leveldb依赖库**:leveldb是一个快速键值存储库...
###### 2.3.1 安装Ubuntu - 在VMware中创建新的虚拟机,选择Ubuntu ISO镜像文件; - 设置虚拟机的基本配置参数,如内存、硬盘等; - 启动虚拟机,按照Ubuntu安装向导的提示完成安装。 ###### 2.3.2 选择更新源 - ...
- **PC-Linux系统**(即Linux宿主机):用于安装Arm-Linux交叉编译器,并对源代码进行编译,生成可以在Arm-Linux系统上运行的可执行程序。 - **Arm-Linux系统**:作为目标运行平台,通常是一个小型的嵌入式Arm板。...
- 介绍了如何使用AXD进行调试,并对源代码进行了说明。 #### 第三部分:GNU交叉工具链 - **1. 设置环境变量,准备源码及相关补丁** - 包括设置环境变量、准备binutils、gcc、glibc等源码包以及相关补丁文件。 -...
- **5.1.5 Linux内核目录结构**:详细描述了Linux内核源代码的组织结构。 - **5.1.6 制作文件系统**:介绍了如何为嵌入式设备创建文件系统。 - **5.2 U-Boot移植** - **5.2.1 Bootloader介绍**:介绍了...
- **开源性**:遵循GPL许可协议,任何人都可以自由获取、修改和分发源代码。 - **稳定性**:经过多年的持续开发和测试,Linux内核在稳定性方面表现出色。 - **可移植性**:支持多种不同的处理器架构,如x86、ARM...
- **开源性**:Linux内核遵循GPL许可证发布,任何人都可以查看源代码并对其进行修改。 - **稳定性**:由于有来自全球开发者社区的支持,Linux内核非常稳定,可以长时间运行而不需重启。 - **可移植性**:Linux可以在...
- **开源免费**:Linux内核遵循GNU通用公共许可证(GPL),允许任何人自由地使用、修改和分发源代码。 - **多用户多任务**:支持多个用户同时登录并执行任务,每个用户可以运行多个进程。 - **高性能和高可靠性**:...
- **配置**:通常配备4GB RAM,支持多种操作系统,如Raspbian、Ubuntu等。 - **用途**:本手册中用作开发ECR6600驱动的主机环境之一。 **2.1.2 ECR6600 开发板** - **简介**:ECR6600开发板是用于驱动开发的主要...
首先,安装zlib和openssl库,然后通过源代码编译安装Ruby,确保Ruby编译时链接了这些库。 2.1.1. 安装 zlib ```bash sudo apt-get install libz-dev ``` 2.1.2. 安装 openssl ```bash sudo apt-get install libssl-...