昏天暗地的花了两天时间, 终于在Fedora 8 上成功编译了android 1.5, 和大家分享一下编译的经验:)
Fedora 8 已经包含了编译android 时所需的大部分开发包, 我们还需要安装git 和gperf.
开始终端, 敲入下面的命令:
$ yum install git-core
$ yum install gperf
Fedora 8 自带的java 开发包是JDK6, 而编译nadroid 时需要JDK5, 否则在make sdk 时会出现错误.
可以从sun 网站下载 jdk-1_5_0_18-linux-i586-rpm.bin , 我下载到了opt 目录下.
在终端上敲入如下命令:
$ cd /opt
$ chmod a+x jdk-1_5_0_18-linux-i586-rpm.bin
$ ./jdk-1_5_0_18-linux-i586-rpm.bin
文件会在/opt 下自动生成jdk1.5.0_18 子目录, 并解压.
然后需要设置JAVA 主目录, 编辑/etc/bashrc 文件:
$ vi /etc/bashrc
点击insert 或i 键, 进入insert 模式, 在文件末尾添加,
export JAVA_HOME=/opt/jdk.1.5.0_18
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
点击esc, 进入命令模式, 输入":wq", 然后敲入reboot 重新启动.
启动后, 开启终端, 输入"java -version", 如果提示当前版本为1.5.0_18, 则安装成功.
先要下载repo, 如果以root 用户登陆, 则可以将repo 下载/root/bin 目录下( 也可以下载/home/bin 目录下, 但要将目
录加入到PATH 中):
$ curl http://android.git.kernel.org/repo > /root/bin/repo
$ chmod a+x /root/bin/repo
然后在home 下建立mydroid 文件夹, 当然可以在其他你喜欢的目录下建立:
$ cd /home
$ mkdir mydroid
$ cd mydroid
输入以下命令:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
不出意外的话, 完成后应该显示"repo initialized in /mydroid".
最后输入"repo sync" 开始下载源代码.
工程很大, 只是下载代码的话需要留出2G 以上的空间, 如果还要编译那就需要留出6G 以上的空间.
下载完成后进入源代码目录, 开始编译, 如下:
$ cd /home/mydroid
$ make
完成后会生成system.img 等文件.
由于android1.5 版本SDK 的目录结构有所变化, 所以ADT0.8.0 不能再使用了, 我们需要自己编译ADT:
$ ./development/tools/eclipse/scripts/build_server.sh /home
"/home" 是编译好 ADT 后的输出目录 , 可以指定其他你喜欢的目录,在这个过程中可能会自动下载
eclipse, 貌似是由于没有设定 ECLIPSE_HOME 环境变量的原因 , 不过没有细究 :). 最后需要生成linux
下的SDK, 如下:
$ make sdk
成功后, 会在./out/host/linux-x86 下生成sdk 文件夹, 其中包含了我们需要的SDK.
注意将SDK 目录加入到PATH 下, 修改/etc/bashrc, 加入
export PATH=/home/mydroid/out/host/linux-x86sdk/android-sdk_eng.root_linux-x86/tools:$PATH
需要卸载eclipse 上原来的ADT0.8.0( 如何卸载就不说了, 不过要注意卸载干净,ADT Editor 也一并卸载).
启动android1.5 的emulator 时需要avd 文件, 先输入"android list targets" 取得target ID, 例如为1, 然后,
$ android create avd -n my_avd -t 1
创建avd 文件后, 即可启动emulator,
$ emulator -avd my_avd
启动很慢, 要耐心等待.
需要将mydroid 目录和编译的ADT, 复制到windows 下, 我是在window xp 下使用 explore2fs 读取linux 分区进行的
复制.然后安装cygwin, 注意默认的文本类型要设置为DOS/text, 这些开发包autoconf, bison, curl, flex, gcc,
g++,git,gnupg, make, mingw-zlib, python, zip, unzip 都要选上, 不要选择readline.
打开development/build/tools/make_windows_sdk.sh 文件,
找到"SDK_NUMBER=`echo $filename | sed -n 's/^.*_/([^_./]/+/)_[^_.]*/..*$//1/p'`", 修改为
#SDK_NUMBER=`echo $filename | sed -n 's/^.*_/([^_./]/+/)_[^_.]*/..*$//1/p'`
SDK_NUMBER=1.5
然后在cygwin 中输入以下命令:
$ cd mydroid
$ mkdir -p out/host/windows-x86/sdk
$ development/ build / tools / make_windows_sdk.sh out / host / linux - x86 / sdk / android-sdk_eng.root_linux-x86.zip out / host / windows - x86 / sdk
同样在eclipse 中安装我们编译的ADT, 指定sdk 目录. 启动emulator 之前还要生成avd 文件.