目录html
工做须要,想着恰好有个趁手的兵器(Mac),虽然作好充足的功课,可是这场编译之旅仍是十分曲折android
本文主要记录本人使用macOs( 10.14) 在本地 checkout 出 AOSP ,并进行编译,导入 Android Studio 的完整经历。git
为什么分区:github
如何分区:shell
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg
//下载repo $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo //初始化 repo,使用清华镜像 $ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r3 // 下载源码,开启4个并发 $ repo sync -j4
$ ulimit -S -n 1024
// 清除缓存 make clobber // 初始化环境 source build/envsetup.sh // 打包浏览器 mmm packages/apps/Browser2/ // or 自动生成依赖 mmma packages/apps/Browser2/
//根目录下执行,环境设置命令 source build/envsetup.sh // 选择编译的源码类型 lunch // 能够选择1. aosp_arm-eng 或2. aosp_arm64-eng 1 //查看本机CPU 核数, machdep.cpu.thread_count sysctl machdep.cpu //编译,使用核数的两倍, 这个耗时也就,差很少6个小时 make -j16 //启动虚拟机 emulator
source build/envsetup.sh // 将执行文件设置为临时变量 mmm development/tools/idegen/ //生成idegen.jar文件 // 结果: [100% 5/5] Install: out/host/darwin-x86/framework/idegen.jar #### build completed successfully (07:31 (mm:ss)) ####
development/tools/idegen/idegen.sh //结果 Read excludes: 83ms Traversed tree: 1886971ms
- android.ipr : 保存工程相关的设置 - android.iml : 用来描述 modules
// 项目 所有项目导入,一两个小时还完成不了,所以精简下 // 修改 android.iml 的excludeFolder, 只保留 frameworks 和 package 包 <excludeFolder url="file://$MODULE_DIR$/prebuilt" /> <excludeFolder url="file://$MODULE_DIR$/.repo"/> <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/> <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$/compatibility"/> <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$/external"/> <excludeFolder url="file://$MODULE_DIR$/hardware"/> <excludeFolder url="file://$MODULE_DIR$/kernel"/> <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$/platform_testing"/> <excludeFolder url="file://$MODULE_DIR$/prebuilts"/> <excludeFolder url="file://$MODULE_DIR$/projectFilesBackup"/> <excludeFolder url="file://$MODULE_DIR$/sdk"/> <excludeFolder url="file://$MODULE_DIR$/system"/> <excludeFolder url="file://$MODULE_DIR$/test"/> <excludeFolder url="file://$MODULE_DIR$/toolchain"/> <excludeFolder url="file://$MODULE_DIR$/tools"/>
问题:
本机 mac 10.14.3, 执行编译报 "Could not find a supported mac sdk: [“10.10” “10.11” “10.12” “10.13”] "api
网上的解决之道:
x86_darwin_host.go 文件新增 "10.14"系统,让其支持android-studio
找到 build/soong/cc/config/x86_darwin_host.go 修改 darwinSupportedSdkVersions = []string{ "10.10", "10.11", "10.12", "10.13", "10.14",
后遗症:
这么改完后,不报这个问题了,可是问题转移了,成为下面那个问题了。浏览器
本机 mac 10.14, 实际上是不支持 i386 架构,强行修改不行,搜索千百度,终于在 Google 论坛的 Android Building 组里面看到一些有用信息缓存
I have solved this issue.You can download MacOSX10.13.sdk on https://github.com/phracker/MacOSX-SDKs/releases and copy it to /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
简述之:bash
整个工程耗时耗力,也算是本身的一场磨难。