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

源代码的下载和编译

时间:2016-04-26 23:47:09      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

 

下载、编译和测试Android源代码

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

  创建一个用于存放下载脚本文件(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”;

  创建用于存放Android源代码的目录:“mkdir android_source    

  cd android_source”;

  初始化:“repo init -u

  https://android.googlesource.com/platform/manifest”;

  开始下载Android源代码:“repo sync”。

2.Android源代码目录结构

  abi (ABIapplicationbinary interface,应用程序二进制接口)

  bionicbionic C库)

  bootable(启动引导相关代码)

  build(存放系统编译规则及generic等基础开发配置包)

  cts(兼容性测试套件标准)

  dalvikdalvik Java虚拟机)

  development(应用程序开发相关)

  device(设备相关代码)

  docs (介绍开源的相关文档)

  externalandroid使用的一些开源的模组)

  frameworks(核心框架,Android SDK的源代码)

  hardware(主要是硬件适配层HAL代码)

  libcore(核心库相关)

  ndk (ndk相关代码。AndroidNDKAndroid NativeDevelopment Kit

  是一系列的开发工具,允许程序开发人员在Android应用程序中嵌

  入C/C++语言编写的非托管代码。)

  out(编译完成后的代码输出与此目录)

  packages(应用程序包)

  prebuiltx86arm架构下预编译的一些资源)

  sdksdk及模拟器)

  system(文件系统、应用及组件——C语言)

  Makefile

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

  方法一:使用repo sync命令(在当前目录生成一个隐藏目录.Repo

  方法二:使用git clone命令

4.编译Android源代码

  初始化编译环境:“source build/envsetup.sh”或

  “.build/envsetup.sh”;

  选择目标:使用lunch命令;

  编译Android源代码:“make”;

5.out目录结构

  host:编译过程中需要的库和工具;

  targetcommonproduct

6.将自己的APK作为Android内置程序发布

  直接将apk文件复制到system/app目录下,再从system目录生成system.img文件。

7.用模拟器测试system.img文件

 

下载和编译Linux内核源代码

1.下载Linux内核源代码

  “git clone https://android.googlesource.com/kernel/common.git”下载最新Linux内核源代码;“git branch -a”查看当前有哪些远程版本库;“git checkout --b 导出内容”可导出所需内容。

2.Linux内核源代码目录结构

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

  block:部分块设备驱动程序。

  crypto:常用加密和散列算法,还有一些压缩和CRC校验算法。

  Documentation:关于内核各部分的通用解释和注释。

  drivers:设备驱动程序,每个不同的驱动占用一个子目录。

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

  fs:各种支持的文件系统,如extfatntfs等。

  include:头文件。其中,和系统相关的头文件被放置在linux子目

  录下。

  init:内核初始化代码(注意不是系统引导代码)。

  ipc:进程间通信的代码。

  kernel:内核的最核心部分,包括进程调度、定时器等,和平台相

  关的一部分代码放在arch/*/kernel目录下。

  lib:库文件代码。

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

  录下。

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

  samples:一些内核编程范例。

  scripts:用于配置内核文件的脚本文件。

  security:主要是一个SELinux的模块。

  sound:常用音频设备的驱动程序等。

  toolsLinux自带的工具的实现代码。

  usr:实现了一个cpio

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

3.安装Android内核的编译环境

  配置Linux内核源代码根目录下的Makefile文件,打开Makefile文件,找到ARCHCROSS_COMPILE:“ARCH  ?=arm  CROSS_COMPILE?= arm-none-linux-gnueabi-”。

  第一步:准备工作 第二步:解压编译器 第三步:验证交叉编译器是否安装成功 第四步:安装libncurses5

4.配置和编译Linux内核

  make clean:清除大多数由编译生成的文件,但保留配置文件。

  make mrproper:清除所有由编译产生的文件,清除配置文件。

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

  文件。

  在Linux源代码根目录执行配置命令:“make config”(文本)“make menuconfig”(字符界面)“make oldconfig”(字符界面)“make xconfig”(图形界面)。

  成功编译Linux内核后,会在<Linux内核源代码根目录>/arch/arm/boot目录生成一个zImage文件,该文件就是Linux内核的二进制版本。

源代码的下载和编译

标签:

原文地址:http://www.cnblogs.com/xuecheYBYB/p/5436935.html

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