2014年3月12日星期三

Android 入门 - 编译源码(MacOSX)

此笔记根据安卓源码官方教程(http://source.android.com/source/initializing.html)记录。我准备编译的Android版本为4.4。
硬件环境为:Macbook pro 2013最新版本,操作系统为OSX10.9,内存:8GB,硬盘500GB。

一、准备工作

1.1、安装最新的XCODE

XCODE是MacOSX下的开发工具,安装之后,开发需要的各种环境基本就具备了,不需要再各自去下载。如:git,gcc等等。

1.2、安装GoAgent

googlesource站点在国内不能访问,需要翻墙才能访问。建议安装GoAgent来翻墙。
安装步骤:略,可从网上搜索解决。

1.3、设置代理

# export http_proxy=localhost:8087
# export https_proxy=localhost:8087
在每次运行repo sync同步之前,运行上面两句指令,不建议设置用户的环境变量,可能影响其他程序的运行。

1.4、创建大小写敏感的磁盘映象

  1. 创建一个大小写敏感的磁盘映象,100G,映象根据实际大小占据磁盘空间,所以,大点没有关系,命令:
    # hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 100g ~/android.dmg
  2. 挂载磁盘,可在Finder里双击“个人”主目录的android.dmg.sparseimage,即可挂载一个UNNAME的磁盘,按“右键”更名为android。实际路径为:/Volumes/android。

1.5、下载Repo

# mkdir ~/bin
# curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# chmod a+x ~/bin/repo
# PATH=$PATH:~/bin

二、下载源代码

2.1、创建工作目录

# cd /Volumes/android
# mkdir source
# cd source

2.2、初始化代码库

# repo init -u https://android.googlesource.com/platform/manifest

指令某个版本库(如:android-4.2.2_r1),则用:
# repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1

2.3、下载源码树

# repo sync -j16
repo支持断点续点,如果失败了,重新运行上述指令,直至成功即可。

三、编译

3.1、初始化

# cd /Volumns/android/source
# source build/envsetup.sh

3.2、选择一个目标

# lunch aosp_arm-eng

3.3、编译

# make -j16
编译完成后,ROM目标代码保存在/Volumes/android/source/out/target/product/generic/目录下面,主要有三个img文件:System.img,userdata.img,ramdisk.img。

4、运行

编译完后,一些指令将被自动加入PATH路径中。如果你新开启了终端,可以在out/host/darwin-x86/bin下面找到这些命令,你可以把这个目录加到PATH中。如果新建终端,你需要配置以下环境变量才能运行:
# export PATH=$PATH:/Volumes/android/source/out/host/darwin-x86/bin
# export ANDROID_PRODUCT_OUT=/Volumes/android/source/out/target/product/generic
# export ANDROID_BUILD_TOP=/Volumes/android/source 
你可以刷机或运行在模拟器中。

4.1 刷机

连接好手机后,运行如下指令:


# adb reboot bootloader
# fastboot flashall -w

4.2 运行模拟器

# emulator
到此,Android的源码下载、编译、运行就完成了,可以看出,在MacOSX下编译Android要比Ubuntu下简单方便。


2 条评论: