码迷,mamicode.com
首页 > 其他好文 > 详细

源代码的下载和编译

时间:2016-05-02 22:59:19      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

 

4.1下载编译和测试源代码

Android源代码由很多东西组成,一种是Android系统应用程序的代码,android SDK带的各种工具,android NDK的源代码,HAL源代码。

1.配置Android源代码下载环境

在下载Android源代码之前必须要在Linux终端执行一系列命令来配置下载环境。

第一步:创建一个用于存放下载脚本文件(repo)的目录

#  mkdir  ~/bin

#  PATH=~/bin:$PATH

第二步:下载repo脚本文件

# curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo  >  ~/bin/repo

# chmod a+x  ~/bin/repo(repo是用python对Git的一个封装,简化下载android源代码的操作)

第三步:创建用于存放Android源代码的目录

#  mkdir android_source

#  cd  android_source

第四步:初始化

#  repo  init  -u https://android.googlesource.com/platform/manifest   -b  android-4.0.1_rl

第五步:开始下载Android源下载过程中网络几乎做不了其他的事情代码

#  repo  sync

执行上面的命令后,会现实一些信息然后开始下载Android源代码,接下来是漫长的等待,按国内大多数人能达到的网速,至少要4个小时才能下完。

下载一部分Android源代码

方法1  使用repo sync命令

# repo sync platform/bootable/recovery

方法2  使用git clone 命令

# git clone http://android.googlesourse.com/<project name>

2编译Android源代码

第一步:初始化编译环境

#    source  build/envsetup.sh

#   .   build/envsetup.sh

第二步:选择目标

#  lunch  full-eng

第三步:编译Android源代码

#  make –j4

不仅下载Android源代码需要较长时间,完全编译Android源代码也需要很长的时间。当编译完成后,会在Android源代码根目录中生成一个out目录。

Out 目录是存放编译Android源代码生成的目标文件的默认目录

-- target(表示目标机,如果编译时候定义TARGET_STRIP_MODULE=false的话,这个目录为debug/target) 主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(默认为ARMv5)运行的内容。

4.2下载和编译linux内核源代码

下载最新版的内核源代码

# git clone https://android.googlesourse.com/kernel/common.git

查看有哪些远程版本库

# git branch -a

导出Linux3.0的内核

# git check out -b android-3.0 remotes/origin/android-3.0

下载该内核

# git clone http://android,googlesourse.com/kernel/goldfish.git 

导出goldfish

# git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29

Linux内核源码目录

arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。

block: 部分块设备驱动

crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。

Documentation

drivers:设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c等。

fs:支持各种文件系统,如EXT、FAT、NTFS、JFFS2等

include:头文件,与系统相关的头文件放置在include/linux子目录下。

init:内核初始化代码。

ipc:进程间通信的代码

kernel:内核的最核心部分,包括进程的调度、定时器等,而和平台相关的一部分代码放在arch/*/kernel目录下。

lib:库文件代码。

mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

net:网络相关代码,实现了各种常见的网络协议。

安装Android内核的编译环境

1.将arm-linux-gcc-4.3.2.tgz文件和arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar,bz2文件复制到工作目录

2.解压上面的两个文件

3.验证交叉编译器是否安装成功

# ls /user/local/arm -1

4.安装libncurses5

# apt-get install libncurses5-dev

配置和编译Linux内核

# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH

#cd ~/linux_kernel

#make clean

#make

在Linux源代码目录执行以下四个配置命令

Make config

Make manuconfig

Make oldconfig

Make xconfig

成功编译Linux内核后,会在<Linux内核源码目录>/arch/arm/boot目录生成一个zlmage文件,该文件是Linux内核的二进制版本,可以直接使用zlmage安装到开发版上,也可以通过命令在Android模拟器中进行测试。

# emulator -avd myavd -kernel /root/kernel/goldfish/arch/arm/boot/zlmage

源代码的下载和编译

标签:

原文地址:http://www.cnblogs.com/orange921/p/5453342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!