Android 源码的下载和编译环境的安装及编译


1、 源码的下载

源代码的下载,首先需要安装以下工具软件:curl 和 git-core

1.1安装curl:

打开终端,可以使用按Ctrl+Alt +T的快捷方式打开终端

在终端中执行命令:sudo apt-get install curl

1.2安装git-core

1.2.1在用户目录下新建bin目录

在终端中执行:mkdir ~/bin

1.2.2安装git-core

在终端中执行:curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

给repo执行权限:chmod a+x ~/bin/repo

注:若是下载repo失败可以到我百度网盘中去下载,下面给出链接:

http://pan.baidu.com/share/link?shareid=3522233410&uk=4278685087

将~/bin添加环境变量,作用是:git软件下载安装在此目录,在别的目录运行可能提示出错:会找不到此软件。

在终端中执行命令:PATH=~/bin:$PATH

1.3 下载源代码

1.3.1进入要源代码将要保存的目录

如我的源代码保存在:、/opt/android4.3

在终端中执行:cd /opt/android4.3 进入到android4.3目录中

1.3.2 下载源代码

对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版本),使用-b参数(即下载某个版本的源代码),目前关于Android 4.3的源码有以下分支:我们可以选择自己需要下载的:

  * [new branch]      android-4.3_r0.9 -> origin/android-4.3_r0.9

 * [new branch]      android-4.3_r0.9.1 -> origin/android-4.3_r0.9.1

 * [new branch]      android-4.3_r1 -> origin/android-4.3_r1

 * [new branch]      android-4.3_r2 -> origin/android-4.3_r2

* [new branch]      android-4.3_r2.1 -> origin/android-4.3_r2.1

我们选择下载最新的源码,具体命令:

~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r2.1

执行此命令会下载一些文件到我们电脑中,这条命令的主要作用是初始化我们要下载的源码的的一些配置文件,看到类似下面的提示,表示初始化完成。

repo has been initialized in /opt/android4.3username@user-desktop:/opt/android4.3$ 

初始化完成后,会在/opt/android4.3目录中生成一个.repo的目录(此目录为隐藏属性的文件,我们可以在终端中使用ls -la命令,或者在文件浏览器中选择“查看”,然后勾选“显示隐藏文件”,就可以看到此目录),此目录保存了将要下载的源代码的相关信息,下面我们开始下载源码

同步获取源码

#~/bin/repo sync

如果中间出现中断,这个很正常,你可以再次输入 ~/bin/repo sync 命令来进行下载。

可以写一个脚本,当中断后,又自动开始下载,可以在我网盘中下载此脚本:reposync

http://pan.baidu.com/share/link?shareid=3522233410&uk=4278685087

把reposync脚本放在你源码的目录,执行./reposync命令就可以了。

根据网速的不同,下载时间也有快慢,最好在睡觉前或下班后下载代码,由于源文件比较大,一般国内都要5小时左右甚至更久。

若是出现以下信息,表示代码以下载完成:

Fetching projects: 100% (166/166), done.  

Syncing work tree: 100% (165/165), done.

源代码下载完成后,/opt/android4.3文件夹的大小为20G左右,其中.repo有10 G+。

运行~/bin/repo sync 还可以重新校对下载的源码,若是有问题或遗漏了一些文件会重新下载,并从.repo目录中导出到实际源码中

注:此步可能会出现下载错误,请查看本文最后部分的说明

2、编译环境的搭建

首先若是没有修改源,请修改为国内的源,从而提高软件的下载安装的速度

可以参考下面博客的内容添加一些速度快的源,如:台湾源、Ubuntu官方上海源、网易、搜狐、

http://hi.baidu.com/houxn22/item/48f0f7d150657c16d80e4468

安装编译所需的软件

1、 安装jdk

官方推荐安装jdk1.6的,现在不支持命令安装了,只有Oracle官网下载,或者可以在本人百度网盘下面的地址中下载:

http://pan.baidu.com/share/link?shareid=2263608836&uk=4278685087

打开后选择jdk-6u45-linux-x64.bin。

安装完后修改环境变量。

2、 安装其它一些编译所需软件

在终端中执行:sudo apt-get install git-core gnupg flex bison gperf build-essential \

  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \

  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \

  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \

libxml2-utils xsltproc

基本只要安装以上软件即可,官方网站上说的其它一些软件或者设置可以不用理会。

注:此步可能会出现错误,请查看本文最后部分的说明

3、编译源代码

3.1编译初始化:

在终端中执行:

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

3.2选择编译目标:

在终端中执行下面的命令:

lunch

之后选择你要编译的设备,选择后,会初始化编译的项目的相关文件。

3.3编译代码:

在终端中执行:make -j4

-j4:表示用四个线程来编译

编译根据不同机器的配置不同所需时间也有很大差异。

source build/envsetup.sh:加载编译命令,产生编译选项
lunch或lunch xxx-yyy:打印编译选项菜单或指定编译选项,xxx表示产品,yyy表示编译类型
make:根据lunch选项,编译Android系统,最后产出为:system.img,ramdisk.img,userdate.img
m:和make命令一样
mm:从当前目录下开始向下编译目标
mmm:指定一个目录,仅编译指定目录下的目标
make snod:只将out/target/product/XXX/system/目录下的内容打包生成system.img,不会检查依赖关系
make bootimage:只将out/target/product/XXX/root/目录下的内容打包生成ramdisk.img


注:gcc  g++降到4.4 版本 gcc -v ,g++ -v查看当前版本

ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.6, 4.5的版本据说可以,但没试过.
通 过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。
ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
装完后在/usr/bin目录下
$ ls -l gcc*
lrwxrwxrwx 1 root root      7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
发现gcc 链接到gcc-4.6,  需要将它改为链接到gcc-4.4 :
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
同理
ls -l g++*
lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
需要将g++链接改为g++-4.4:
sudo mv g++ g++.bak
sudo ln -s g++-4.4 g++

4、运行模拟器

在终端中执行:emulator

运行模拟器可能出现的错误,请查看本文最后部分的说明

问题1:

 You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use '@<name>' or '-avd <name>'
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator

解决1:将emulator所在bin目录加入到环境变量

export PATH=$PATH:/home/wuyutaott/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/home/wuyutaott/android/out/target/product/generic

如果配置过android_sdk开发的会有冲突,后面设置的就无效了

解决2:或将终端切换到bin目录下执行emulator
后在任意的目录执行emulator就可以看到模拟器了,并且当我修改源代码,模块编译之后,重新生成system.img发现模拟器展现出来了我代码中所作的修改

解决3:

http://blog.csdn.net/mr_raptor/article/details/7958212

中提到的脚本如run.sh,添加可执行权限

#!/bin/bash
PWD_PATH=/home/proud/AndroidSource/code
IMG_PATH=$PWD_PATH/out/target/product/generic
export PATH=$PWD_PATH/out/host/linux-x86/sdk/android-sdk_eng.linux_linux-x86/tools:$PATH
export ANDROID_PRODUCT_OUT=$PWD_PATH/out/target/product/generic
export ANDROID_SWT=$PWD_PATH/out/host/linux-x86/framework
$PWD_PATH/out/host/linux-x86/bin/emulator



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值