Android(安卓)Studio 编译系统源码
环境配置 & 下载
- 参考文章
官方文档
湫水blog
清华镜像
调试
以下所有操作在mac上进行
推荐下载 7.0及以上系统!!!
1.创建磁盘映像(80G)
$ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg
2.安装MacPorts (类似brew)
安装完成后,运行:// 一路根据提示,选择y,回车$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
如果这里报错了,说找不到port命令,就需要在~/.bash_profile中添加一行:
export PATH=/opt/local/bin:$PATH。
(操作步骤–>打开终端–> open .bash_profile –>添加 –> source .bash_profile)
Xcode自带,不需要安装
3.设置文件描述符限制
在Mac OS中,默认限制的同时打开的文件数量很少,不能满足编译过程中的高并发需要,因此,在~/.bash_profile中添加下面的命令(步骤同上):
# set the number of open files to be 1024ulimit -S -n 1024
4.下载Repo
4.1 创建bin目录并指向Path,确保存在bin目录
$ mkdir ~/bin
$ PATH=~/bin:$PATH
4.2 然后在命令行中输入下面的命令,下载Repo,并且修改属性():
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
4.3 打开并修改Repo文件中 REPO_URL地址为国内镜像(~/bin/repo)
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
4.4 修改地址, 创建目录
mkdir /Volumes/untitled/xxx
cd /Volumes/untitled/xxx
5.下载
选择版本进行同步
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-android-6.0.1_r79
repo sync
编译
使用下面的命令开始编译源码:
# 16为线程数量
make -j16
- 1.编译过程中可能会失败,我遇到个找不到系统版本的问题一:
build/core/combo/mac_version.mk:38: ***************************************************** build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk build/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改为系统中所装版本
#mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 mac_sdk_versions_supported := 10.12 ```* 2.问题二,MacOSXSDK 版本不对,10.12不支持
system/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修改引用
```sudo 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模块
$ mmm development/tools/idegen/# 如果报错# 就在源码目录下执行如下指令(点与build之间是有空格的):$ . build/envsetup.sh
2.在根目录生成对应的android.ipr、android.iml IDEA工程配置文件
development/tools/idegen/idegen.sh
3.生成的三个文件:
android.ipr:通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等android.iml:则是主要是描述了modules,比如modules的路径,依赖关系等.android.iws:则主要是包含了一些个人工作区的设置.
4 优化配置,减少编译时长
修改android.iml文件,只保留了framworks和packages模块,添加以下代码"file://$MODULE_DIR$/.repo" /> "file://$MODULE_DIR$/abi" /> "file://$MODULE_DIR$/art" /> "file://$MODULE_DIR$/bionic" /> "file://$MODULE_DIR$/bootable" /> "file://$MODULE_DIR$/build" /> "file://$MODULE_DIR$/cts" /> "file://$MODULE_DIR$/dalvik" /> "file://$MODULE_DIR$/developers" /> "file://$MODULE_DIR$/development" /> "file://$MODULE_DIR$/device" /> "file://$MODULE_DIR$/docs" /> "file://$MODULE_DIR$/external" /> "file://$MODULE_DIR$/hardware" /> "file://$MODULE_DIR$/libcore" /> "file://$MODULE_DIR$/libnativehelper" /> "file://$MODULE_DIR$/ndk" /> "file://$MODULE_DIR$/out" /> "file://$MODULE_DIR$/pdk" /> "file://$MODULE_DIR$/prebuilt" /> "file://$MODULE_DIR$/prebuilts" /> "file://$MODULE_DIR$/sdk" /> "file://$MODULE_DIR$/system" /> "file://$MODULE_DIR$/tools" /> 5.使用Android studio打开任意一个项目,然后选择File->Open,打开根目录下的android.ipr文件夹,然后等待漫长的index完成后,就可以方便查看源码了。
如果访问不了之前创建的磁盘,直接双击android.ipr文件用 Android Studio 打开即可。6.调试优化参见最上链接。
7.如果你的sh命令执行不了,去下载一个iTerm2终端吧,好使。
最后
- 嫑放弃,嫑放弃,嫑放弃!哈哈,整了3day,供参考!
更多相关文章
- Android第一个应用程序helloworld项目详解
- Android(安卓)studio -SVN 使用笔记
- android透明activity
- Android(安卓)Studio使用Gradle构建和发布APK
- AndroidStudio3.5.1下搭建FFmpeg环境
- android与h5之间的互调
- Andriod(三):配置文件build.gradle与AndroidManifest.xml
- android4.4修改低电压提醒
- Android(安卓)升级 SDK,安装4.0及以上SDK