环境配置 & 下载
- 参考文章
推荐下载 7.0及以上系统!!!
1.创建磁盘映像(80G)
1$ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg2.安装MacPorts (类似brew)
安装完成后,运行:12// 一路根据提示,选择y,回车$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg如果这里报错了,说找不到port命令,就需要在~/.bash_profile中添加一行:
1export PATH=/opt/local/bin:$PATH。
(操作步骤–>打开终端–> open .bash_profile –>添加 –> source .bash_profile)
Xcode自带,不需要安装
3.设置文件描述符限制
在Mac OS中,默认限制的同时打开的文件数量很少,不能满足编译过程中的高并发需要,因此,在~/.bash_profile中添加下面的命令(步骤同上):
12# set the number of open files to be 1024ulimit -S -n 1024
4.下载Repo
4.1 创建bin目录并指向Path,确保存在bin目录
12$ mkdir ~/bin$ PATH=~/bin:$PATH4.2 然后在命令行中输入下面的命令,下载Repo,并且修改属性(翻墙):
12$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo$ chmod a+x ~/bin/repo
- 4.3 打开并修改Repo文件中 REPO_URL地址为国内镜像(~/bin/repo)1REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
- 4.4 修改地址, 创建目录12mkdir /Volumes/untitled/xxxcd /Volumes/untitled/xxx
- 5.下载
选择版本进行同步12repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-android-6.0.1_r79repo sync
编译
使用下面的命令开始编译源码:
12# 16为线程数量make -j16
1.编译过程中可能会失败,我遇到个找不到系统版本的问题一:
1234build/core/combo/mac_version.mk:38: *****************************************************build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdkbuild/core/combo/mac_version.mk:40: *****************************************************build/core/combo/mac_version.mk:41: *** Stop.. Stop.- 1.1 首先查看系统版本,我的是10.12.2
- 1.2然后找到源码目录,打开build/core/combo/mac_version.mk文件,将mac_sdk_versions_supported改为系统中所装版本12#mac_sdk_versions_supported := 10.6 10.7 10.8 10.9mac_sdk_versions_supported := 10.12
- 2.问题二,MacOSXSDK 版本不对,10.12不支持1system/core/libcutils/threads.c:38:10: error: 'syscall' is deprecated: first deprecated in OS X 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Werror,-Wdeprecated-declarations]
- 2.1下载:https://github.com/phracker/MacOSX-SDKs
- 2.2解压zip包以后将 MacOSX10.11.sdk 拷贝到我的目录 /Users/sun/Downloads/macos/MacOSX10.10.sdk
2.3修改引用
1sudo ln -s /Users/sun/Downloads/macos/MacOSX10.10.sdk /Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
- 2.4 然后确保AOSP源码下build/core/combo/mac_version.mk文件中mac_sdk_versions_supported := 10.9 10.10 10.11,不多说,都是泪啊
- 参考地址
导入Android Studio
1.编译idegen模块
1234$ mmm development/tools/idegen/# 如果报错# 就在源码目录下执行如下指令(点与build之间是有空格的):$ . build/envsetup.sh2.在根目录生成对应的android.ipr、android.iml IDEA工程配置文件
1development/tools/idegen/idegen.sh3.生成的三个文件:
123android.ipr:通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等android.iml:则是主要是描述了modules,比如modules的路径,依赖关系等.android.iws:则主要是包含了一些个人工作区的设置.
4 优化配置,减少编译时长
修改android.iml文件,只保留了framworks和packages模块,添加以下代码<excludeFolder url="file://$MODULE_DIR$/.repo" /> <excludeFolder url="file://$MODULE_DIR$/abi" /> <excludeFolder url="file://$MODULE_DIR$/art" /> <excludeFolder url="file://$MODULE_DIR$/bionic" /> <excludeFolder url="file://$MODULE_DIR$/bootable" /> <excludeFolder url="file://$MODULE_DIR$/build" /> <excludeFolder url="file://$MODULE_DIR$/cts" /> <excludeFolder url="file://$MODULE_DIR$/dalvik" /> <excludeFolder url="file://$MODULE_DIR$/developers" /> <excludeFolder url="file://$MODULE_DIR$/development" /> <excludeFolder url="file://$MODULE_DIR$/device" /> <excludeFolder url="file://$MODULE_DIR$/docs" /> <excludeFolder url="file://$MODULE_DIR$/external" /> <excludeFolder url="file://$MODULE_DIR$/hardware" /> <excludeFolder url="file://$MODULE_DIR$/libcore" /> <excludeFolder url="file://$MODULE_DIR$/libnativehelper" /> <excludeFolder url="file://$MODULE_DIR$/ndk" /> <excludeFolder url="file://$MODULE_DIR$/out" /> <excludeFolder url="file://$MODULE_DIR$/pdk" /> <excludeFolder url="file://$MODULE_DIR$/prebuilt" /> <excludeFolder url="file://$MODULE_DIR$/prebuilts" /> <excludeFolder url="file://$MODULE_DIR$/sdk" /> <excludeFolder url="file://$MODULE_DIR$/system" /> <excludeFolder url="file://$MODULE_DIR$/tools" />
5.使用Android studio打开任意一个项目,然后选择File->Open,打开根目录下的android.ipr文件夹,然后等待漫长的index完成后,就可以方便查看源码了。
如果访问不了之前创建的磁盘,直接双击android.ipr文件用 Android Studio 打开即可。6.调试优化参见最上链接。
7.如果你的sh命令执行不了,去下载一个iTerm2终端吧,好使。
最后
- 嫑放弃,嫑放弃,嫑放弃!哈哈,整了3day,供参考!