Android开发-搭建开发环境
Android Jelly Bean的编译依赖Sun JDK 1.6,由于Ubuntu默认使用Open JDK,所以需要首先安装JDK 1.6。
步骤1 更新Ubuntu JDK软件源。在终端执行如下命令:
$sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
$sudo apt-get update
步骤2 安装必要的开发包。在终端执行以下命令:
$sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 libgl1-mesa-glx:i386\
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxm12-utils xsltproczlib1g-dev:i386
$sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
注意:“\”在Ubuntu终端会被解释成换行符。
各个安装包的主要作用如表所示:
安装包 |
功能描述 |
git-core |
Android采用git作为版本管理工具 |
gnupg |
加密签名软件 |
flex |
词法分析器 |
bison |
语法分析器 |
gperf |
散列函数生成器 |
build-essential |
编译工具集 |
zlibg,zip |
压缩和解压缩的库 |
curl |
文件传输工具 |
libc6-dev |
GNU的嵌入式库 |
libncurses5-dev |
图形函数库、配置Kernel时候,运行make menuconfig 时会用到 |
xllproto-core-dev |
Xll无线协议相关工具 |
libxll-dev |
Xll Client 端库 |
libreadline6-dev |
命令行操作相关库 |
libll-mesa-dev |
OpneGL相关库 |
tofrodos |
不同平台(Windows 和 Linux)之间文件格式转换工具 |
python-markdown |
Markdown的Python实现,用于text-to-HTML的转换 |
libxml2-utils |
XML工具集 |
xsltproc |
XSTL解析器 |
注意:如果想要进一步了解上述软件包,可以到Ubuntu网站(http://package.ubuntu.com/)查询。
到此为止,源码开发环境已经准备完毕,可以开始下载源码了。
下载Android上层系统源代码
Android用repo和git管理源代码。
git是Linux之父Linus Torvalds为了管理linux内核开发而开发的一个开放源码的分布式版本管理软件,它与SVN、CVS这样的集中式版本管理软件中多个客户端共享一个仓库(repository),而在git这样的分布式版本管理软件中,每一个客户端都包含一个完整仓库,客户端可以离线操作,本地提交可以稍后再提交到服务器上。
Android是由kernel、dalvik、bionic、prebuilt、framework等多个git库组成,为了方便使用,Android项目提供了一个名为repo的Python的脚本来统一管理这些git仓库。
Android源代码分成两部分,其中Kernel部分需要单独下载。这里先讲解上层系统源码的下载流程。这部分代码非常庞大,下载时间需要数小时以上。
步骤1 建立repo工作目录
$mkdir ~/bin (在主目录下创建bin目录,~在Ubuntu下代表主目录)
$PATH=~/bin:$PATH (将bin目录加入PATH环境变量)
步骤2 下载repo脚本
$curl gttp://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo (下载repo脚本到bin目录)
$chmod a+x ~/bin/repo (给repo脚本可执行权限)
步骤3 建立Android源码目录。
$mkdir -p ~/android/jellybean (建立jellybean目录存放Android4.1源代码)
$cd ~android/jellybean (切换到jellybean目录下)
步骤4 初始化repo
$repo init -u http://android.googlesource.com/platform/manifest -b android-4.1.1_r3
其中,-u为源码的git服务器地址,-b为源码的某个分支。
如果读者不清楚源码服务器上的分支情况,可以执行“git ls-remote”命令查看远程服务器都有哪些分支,然后选择较新分支下载。命令如下:
$git ls-remote -tags https://android.googlesource.com/platform/manifest
git ls-remote命令可以查看远程服务器上的branch列表。执行后显示内容如下:
可以通过tags后面的值判断有哪些branch可供下载。本书基于Android4.1.1,所以传给-b参数的值取为”android-4.1.1_r3“。
注意:目录refs包含heads和tags两个子目录,其中存放了不同分支的头的索引,可以通过索引查看有哪些branch。如果没有指定-b,将下载Android主线(master默认分支)上最新版本的源代码,但这部分代码往往是不稳定的。
步骤5 下载Android源码
初始化repo后,如果要下载Android源码,只需要进入源码根目录,然后在终端执行以下命令:
$repo sync
这个过程将从服务器同步代码,需要花费几个小时的时间。可以通过”repo sync -j8“命令开启并行下载,8是开启8线程。可以根据主机情况自行调整。
--------《Android的设计与实现 卷1》