环境配置 & 下载

  • 参考文章

官方文档
湫水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,供参考!

更多相关文章

  1. Android第一个应用程序helloworld项目详解
  2. Android(安卓)studio -SVN 使用笔记
  3. android透明activity
  4. Android(安卓)Studio使用Gradle构建和发布APK
  5. AndroidStudio3.5.1下搭建FFmpeg环境
  6. android与h5之间的互调
  7. Andriod(三):配置文件build.gradle与AndroidManifest.xml
  8. android4.4修改低电压提醒
  9. Android(安卓)升级 SDK,安装4.0及以上SDK

随机推荐

  1. MySQL 角色(role)功能介绍
  2. 浅谈Mysql多表连接查询的执行细节
  3. Mysql基础之常见函数
  4. MySQL分库分表与分区的入门指南
  5. MySQL8.0.24版本Release Note的一些改进
  6. 详解MySQL的半同步
  7. 详解MySQL事务的隔离级别与MVCC
  8. MySQL之高可用集群部署及故障切换实现
  9. 教你用eclipse连接mysql数据库
  10. MySQL 慢查询日志深入理解