1、从获取最新的Android源码编译资料,这个不是下面编译必须用到的,
但确是所有有关Android操作系统源码的编译资料中较为准确的。
2、使用ubuntu linux 12.04 LTS,如果你要按照我写的尝试一下就选这个,这样可以节省你的时间;
3、安装相关软件包
点击(此处)折叠或打开
- sudo apt-get install git-core
- sudo apt-get install gnupg
- sudo apt-get install flex
- sudo apt-get install bison
- sudo apt-get install gperf
- sudo apt-get install libsdl-dev
- sudo apt-get install libesd0-dev
- sudo apt-get install build-essential
- sudo apt-get install zip
- sudo apt-get install curl
- sudo apt-get install libncurses5-dev
- sudo apt-get install zlib1g-dev
已经发生变化了,如果出现这种情况可以根据安装中出现的提示中的关键词上网上查查最新的解决方案,一般都
是更新软件源,下面是更新软件源的一般方法:
【备份软件源】
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
(如果想恢复原来的软件源执行:sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list)
【编辑软件源】
sudo gedit /etc/apt/sources.list
将更新的软件源在文件尾部添加并保存退出
【更新软件源】
sudo apt-get update
4、安装java jdk
(1)如果系统已经安装了jdk和jre最好先卸载掉;(apt-get remove jdk软件名)
(2)更新jdk软件源
sudo add-apt-repository " deb hardy multiverse"
sudo apt-get update
(3)安装java jdk6
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk
(4)安装java jdk5
sudo apt-get install sun-java5-jdk
(5)修改javadoc的link
点击(此处)折叠或打开
- cd /etc/alternatives
- sudo rm javadoc.1.gz
- sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
- sudo rm javadoc
- sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
5、设置环境变量
sudo gedit ~/.bashrc
在文件尾部添加
点击(此处)折叠或打开
- JAVA_HOME=/usr/lib/jvm/java-6-sun
- JRE_HOME=${JAVA_HOME}/jre
- export ANDROID_JAVA_HOME=$JAVA_HOME
- export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
- export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
- export JRE_PATH=$JAVA_PATH
- export JAVA_HOME;
- export JRE_HOME;
- export CLASSPATH;
- HOME_LIB=~/bin/
- export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};
- #echo $PATH
建议:干到这里最好重启一下ubuntu。
6、安装编译工具
【先解决一个android官网下载不了的问题】
sudo gedit /etc/hosts
在文件尾部追加一句:74.125.237.1 dl-ssl.google.com
cd ~
mkdir bin
以下命令用/source/downloading.html上的
curl > ~/bin/repo
chmod a+x ~/bin/repo
7、安装gcc4.4
点击(此处)折叠或打开
- sudo apt-get install gcc-4.4
- sudo apt-get install g++-4.4
- sudo apt-get install g++-4.4-multilib
- sudo rm -rf /usr/bin/gcc /usr/bin/g++
- sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
- sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
8、安装python
sudo apt-get install python
9、下载Android源代码
点击(此处)折叠或打开
- mkdir ~/work/android-cts-2.2_r8
- cd ~/work/android-cts-2.2_r8
- repo init -u -b android-cts-2.2_r8
- repo sync
10、将源代码中有关java版本校验的信息注释掉
cd ~/work/android-cts-2.2_r8
gedit ./build/core/main.mk
点击(此处)折叠或打开
- # Check for the correct version of java
- #java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
- #ifeq ($(strip $(java_version)),)
- #$(info ************************************************************)
- #$(info You are attempting to build with the incorrect version)
- #$(info of java.)
- #$(info $(space))
- #$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
- #$(info The correct version is: 1.5.)
- #$(info $(space))
- #$(info Please follow the machine setup instructions at)
- #$(info $(space)$(space)$(space)$(space)/download)
- #$(info ************************************************************)
- #$(error stop)
- #endif
-
- # Check for the correct version of javac
- #javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
- #ifeq ($(strip $(javac_version)),)
- #$(info ************************************************************)
- #$(info You are attempting to build with the incorrect version)
- #$(info of javac.)
- #$(info $(space))
- #$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
- #$(info The correct version is: 1.5.)
- #$(info $(space))
- #$(info Please follow the machine setup instructions at)
- #$(info $(space)$(space)$(space)$(space)/download)
- #$(info ************************************************************)
- #$(error stop)
- #endif
点击(此处)折叠或打开
- cd ~/work/android-cts-2.2_r8
- source ./build/envsetup.sh
- lunch full-eng
好了经过漫长的准备终于可以编译了。
点击(此处)折叠或打开
- cd ~/work/android-cts-2.2_r8
- make
13、运行编译察看结果
如果上面编译成功的话我们就可以进行这一步用虚拟机看看结果了。
(1)到Android官网下载SDK,http://developer.android.com/sdk/index.html
(2)将下载的SDK解压缩到主文件夹,并改名为android-sdk-linux。
(3)sudo gedit /etc/profile
将
export PATH="$PATH:~/android-sdk-linux/tools"
写入文件最后
(4)sudo gedit ~/.profile
将
点击(此处)折叠或打开
- export PATH="$PATH:$HOME/work/android-cts-2.2_r8/out/host/linux-x86/bin"
-
- ANDROID_PRODUCT_OUT=$HOME/work/android-cts-2.2_r8/out/target/product/generic
- export ANDROID_PRODUCT_OUT
(5)用android 命令打开Android SDK Manager界面,下载安装android2.2的SDK Platform。
(6)终于可以看结果了
点击(此处)折叠或打开
- cd ~/work/android-cts-2.2_r8/out/target/product/generic
- 创建一个avd用于测试, android create avd -n a_avd -t 1
- emulator -image system.img -data userdata.img -ramdisk ramdisk.img -avd a_avd&