当前位置: 代码迷 >> Android >> Android Framework源码上载及编译
  详细解决方案

Android Framework源码上载及编译

热度:32   发布时间:2016-05-01 14:08:25.0
Android Framework源码下载及编译

学习了高焕堂先生的《Android应用框架原理》后,接触到了Ioc(Inversion of control,控制反转),想学习下Android应用框架,挽起袖子操刀直接冲着源码去了。

?

环境:VMWare + Ubuntu11.04

?

?

Linux build环境的配置:

?

1.2.6Gd的源码存储空间

2.安装Python2.4--2.7(Ubuntu11.04自带)

3.Git1.7

4.安装jdk

A.android2.3及以后版本需安装jdk6,android2.2及以前版本jdk5

?

B.安装jdk6:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid?partner"

$ sudo apt-get update

$ sudo apt-get install sun-java6-jdk

等待……tab键一路ok即可。

?

C.【说明】下载时间过长可离线安装。

在UBUNTU和Windows之间共享文件:

新建文件夹-->右键shareOperations-->安装Windows网络共享服务(smbclient)

-->restart the ression-->返回文件夹进行共享设置

5.安装包(Installing required packages)

64-bit:

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

一路确定即可。

因为只是用于学习,到这里就完成了Linux build环境的配置了。

参考http://source.android.com/source/initializing.html

?

源码下载

?

1.安装Repo,“在本机建立分布仓库”,Repo是基于Git的一个管理工具.下载android源码时,当需下载源码包中某一个文件时,用git;而需下载整个源码包时,需用repo,这也是git和repo的区别。

$ mkdir ~/bin

$ PATH=~/bin:$PATH

?

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

?

The SHA-1 checksum for repo is 29ba4221d4fccdfa8d87931cd73466fdc24040b5.

?

2.初始化Repo客户端(建立目录 AndroidSource_GB<版本>)

$ mkdir AndroidSource_2012_1_30

$ cd AndroidSource_2012_1_30

?

$ repo init -u https://android.googlesource.co

?按要求上邮箱什么的。

?

3.开始同步文件

$ repo sync?

默认最新版本,如果想同步以前的版本,加一些tag

下载……6——8个小时(若下载中断,重新执行repo sync即可)

验证Git Tag(拿本地代码与所下载代码进行比较,仅用于学习的话就不用这一步了)

参考http://source.android.com/source/downloading.html

?

?

Build the System

?

参考http://source.android.com/source/building.html,这就算了吧。

调用模拟器emulator启动编译好的ROM。

make不编译内核,更改了驱动后才编译内核。

?

?

说明:

Installing required packages选的是32-bit时,build可能会有can not build on System 32bit的问题,应该是Ubuntu11.04的bug,打个什么补丁吧好像。

如果是通过代理上网的话需另行设置。

  相关解决方案