标签:
下载、编译和测试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 (ABI:applicationbinary interface,应用程序二进制接口)
bionic(bionic C库)
bootable(启动引导相关代码)
build(存放系统编译规则及generic等基础开发配置包)
cts(兼容性测试套件标准)
dalvik(dalvik Java虚拟机)
development(应用程序开发相关)
device(设备相关代码)
docs (介绍开源的相关文档)
external(android使用的一些开源的模组)
frameworks(核心框架,Android SDK的源代码)
hardware(主要是硬件适配层HAL代码)
libcore(核心库相关)
ndk (ndk相关代码。AndroidNDK(Android NativeDevelopment Kit)
是一系列的开发工具,允许程序开发人员在Android应用程序中嵌
入C/C++语言编写的非托管代码。)
out(编译完成后的代码输出与此目录)
packages(应用程序包)
prebuilt(x86和arm架构下预编译的一些资源)
sdk(sdk及模拟器)
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:编译过程中需要的库和工具;
target:common与product
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:各种支持的文件系统,如ext、fat、ntfs等。
include:头文件。其中,和系统相关的头文件被放置在linux子目
录下。
init:内核初始化代码(注意不是系统引导代码)。
ipc:进程间通信的代码。
kernel:内核的最核心部分,包括进程调度、定时器等,和平台相
关的一部分代码放在arch/*/kernel目录下。
lib:库文件代码。
mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目
录下。
net:网络相关代码,实现了各种常见的网络协议。
samples:一些内核编程范例。
scripts:用于配置内核文件的脚本文件。
security:主要是一个SELinux的模块。
sound:常用音频设备的驱动程序等。
tools:Linux自带的工具的实现代码。
usr:实现了一个cpio。
virt:内核虚拟机的实现代码。
3.安装Android内核的编译环境
配置Linux内核源代码根目录下的Makefile文件,打开Makefile文件,找到ARCH和CROSS_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