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

第四章 源代码的下载和编译

时间:2016-04-27 12:30:14      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.如何下载Android源代码的环境

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

              #mkdir ~/bin

              #PATH=~/bin:$PATH

       第二步:下载repo脚本文件(用于下载Android源代码)

              #curl https://dl-ssl.goole.com/dl/goolesource/git-repo/repo>~/bin/repo

              #chmod a+x ~/bin/repo

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

              #mkdir android_source

              #cd android_source

       第四部:初始化

              #repo init -u https://android.goolesourse.com/platform/manifest

       第五步:开始下载Android源代码:

              #repo sync

2.Android 源代码目录的含义

adi:应用程序二进制接口

bionic:c/c++运行时库。在NDK程序中很大一部分调用的就是这里面的程序

bootable:用于Android装载和启动程序

刷机程序:Recovery将一个压缩包中的文件=覆盖到手机内存中系统目录的程序

build:用于编程Android源代码以及建立System.img,ramdisk.img等文件工具

cts:用于兼容性测试的工具

dalvik:Dalvik虚拟机的源代码

development:高层的开发和调试工具

external:扩展工具的源代码

framework:Android框架层源代码。也就是Android SDK的源代码

hardware:硬件层接口与库。HAL的源代码就在这个目录中

libcore:java 核心库

ndk:NDK的相关源代码

packages:与Android系统一同发布的应用程序(APK程序)的源代码

prebuilts:Android在各个平台下编译之前要使用的工具

sdk:在开发环境中使用的工具

System:Android的基本系统。

3.下载Android源代码中一部分的方法:

       ①使用repo sync命令

       ②使用git close 命令

4.编译Android源代码

       第一步:初始化编译环境

              source build/envsetup.sh或:.build/envsetup.sh

       mm和mmm两个命令都可以编译Android源代码中指定的工程

       mm命令必须指在工程的目录进行编译

       mmm可以在Android源代码目录结构中的任何一级目录编译任意指定的工程。只要指定工程路径即可。

       第二步:选择目标:

              使用lunch命令设置编译目标:

                     lunch full-eng

       第三步:编译Android源代码

              #make

              #make -j4

5.下载Linux内核源代码:

       #git clone http://android.goolesoure.com/kernel/common.git

       #git branch -a

       #git clone http://android .goolesource.com/kernel/goldfish.git

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

6.Linux内核源代码目录的含义:

       arch:与CPU架构相关的源代码和配置文件

       block:部分设备驱动程序

       crypto:实现加密解密CRC校验算法的程序

       Documentation:Linux内核的文档

       driver:设备驱动程序

       firmware:一些驱动需要使用的设备固件的实现代码

       fs:各种文件系统的实现代码。每一个目录对应一种文件系统的实现

       include:包含Linux内核所需的所有的头文件。与平台无关的头文件在include/linux目录中与平台有关的头文件在相应的子目录中。

       init:初始化内核程序的实现代码。这些程序可以向Linux内核传递启动参数

       ipc:Linux进程间通信的实现代码

       kernel:与CPU架构无关的内核管理的实现代码。与CPU架构相关的都放在arch/<cpu>/kerne/目录中

       lib:Linux内核使用的一些程序库

       mm:是与体系结构无关的内存管理的实现代码。与体系结构有关的内存管理实现代码在arch目录的相应子目录中

       net:网络协议的实现代码

       samples:一些内核编程的范例

       scripts:配置Linux内核的脚本

       security:Linux安全加强工具的实现代码

       sound:音频设备的驱动程序

       tools:Linux自带的一些工具的实现代码

       usr:gen_init_cpio命令的实现代码。gen_init_cpio用于集成文件系统和Linux内核

       virt:内核虚拟机的实现代码

8.交叉编译器:在A架构的CPU上编译可以在B架构CPU上运行的程序

9.安装交叉编译器:

       第一步:准备

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

       第二步:解压编译器

              #tar zxvf arm-linux-gcc-4.3.2.tgz -C/

              #tar jxvf arm-none-linux-gnueabi-arm-2008q3-for-linux.tar.bz2 -C/

       第三步:验证交叉编译器是否安装成功

              #ls /usr/local/arm -l

       第四步:安装libncurses 5

              #apt-get install libncurses5-dev

10.make mproper:清除所有由编译产生的文件+清除配置文件

11.make distclean:make mrproper+删除编辑器留下的备份文件和补丁文件

12.配置Linux源代码根目录执行的4个命令:

       make config:该命令以文本形式配置Linux内核。

       make menuconfig:以字符界面分割的菜单形式配置Linux内核。

       make oldconfig:make oldconfig与make config 类似,也是以字符界面逐项要求用户配置。但make oldconfig显示的要求用户参与的配置项要比make config少。

       make  xconfig:以图形界面形式配置Linux内核,在运行此命令时需安装QT:apt-get install libqt4-dev

 

第四章 源代码的下载和编译

标签:

原文地址:http://www.cnblogs.com/yangwang-star/p/5438014.html

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