赞
踩
由于mac系统文件系统是大小写不敏感的系统,所以需要在mac中创建一个支持大小写敏感的文件系统。
创建分区
安卓9.0编译后比较大,笔者编译完成占用了140多G的空间,所以建议直接设置150G
sudo hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 150g ~/android.dmg
挂载分区
sudo hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android
卸载分区
hdiutil detach /Volumes/android
进入分区
cd /Volumes/android
改变分区大小
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
将Repo中的下载地址改为清华大学的镜像源。
编辑~/bin/repo
文件,修改REPO_URL为的源地址
REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
进入分区
cd /Volumes/android
创建目录
mkdir android9
cd android9
下载指定分支的代码
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r1
下载
下载可以开始下载了
输入下面命令repo sync -j4
就开始下载了,但是由于安卓源码较大,下载时间很长,在下载的过程中难免出现很多问题,所以下面创建下面的中断后自动下载的脚本进行下载.
创建下载中断后自动下载的脚本
#!/bin/bash
PATH=~/bin:$PATH
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r1
repo sync -j4
while [ $? = 1 ]; do
echo "================sync failed, re-sync again ====="
sleep 3
repo sync -j4
done
保存为 sync.sh
提升权限:chmod a+x sync.sh
执行脚本开始下载:./sync.sh
下载完成
...
Syncing work tree: 100% (668/668), done.
下载后的目录
yumodeMacBook-Pro:android9 yumo$ tree -L 1 -a . ├── .repo ├── Android.bp -> build/soong/root.bp ├── Makefile ├── art ├── bionic ├── bootable ├── bootstrap.bash -> build/soong/bootstrap.bash ├── build ├── compatibility ├── cts ├── dalvik ├── developers ├── development ├── device ├── external ├── frameworks ├── hardware ├── kernel ├── libcore ├── libnativehelper ├── packages ├── pdk ├── platform_testing ├── prebuilts ├── sdk ├── sync.sh ├── system ├── test ├── toolchain └── tools 26 directories, 4 files
如果容量有限,此时可以删除掉.repo文件了.
查看Java的home位置:/usr/libexec/java_home
在~/.bash_profile文件中配置JAVA_HOME
JAVA_HOME=`/usr/libexec/java_home`
export JAVA_HOME
使配置文件生效:source ~/.bash_profile
查看配置:echo $JAVA_HOME
设置环境变量
在/Volumes/android/android9
执行:source build/envsetup.sh
选择设备
输入lunch
yumodeMacBook-Pro:android9 yumo$ lunch You're building on Darwin Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. full_fugu-userdebug 8. aosp_fugu-userdebug 9. car_emu_arm64-userdebug 10. car_emu_arm-userdebug 11. car_emu_x86-userdebug 12. car_emu_x86_64-userdebug 13. mini_emulator_arm64-userdebug 14. m_e_arm-userdebug 15. m_e_mips-userdebug 16. m_e_mips64-eng 17. mini_emulator_x86-userdebug 18. mini_emulator_x86_64-userdebug 19. aosp_dragon-userdebug 20. aosp_dragon-eng 21. aosp_marlin-userdebug 22. aosp_marlin_svelte-userdebug 23. aosp_sailfish-userdebug 24. aosp_angler-userdebug 25. aosp_bullhead-userdebug 26. aosp_bullhead_svelte-userdebug 27. hikey-userdebug Which would you like? [aosp_arm-eng]
这里选择6, aosp_x86-eng模式
make -j16
其中-j后面的表示开始16个线程进行进行编译.
sysctl machdep.cpu
......
machdep.cpu.core_count: 4
machdep.cpu.thread_count: 8
......
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -b out/soong -d out/soong/build.ninja.d -o out/soong/build.ninja Android.bp
internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]
ninja: build stopped: subcommand failed.
12:43:18 soong bootstrap failed with: exit status 1
make: *** [run_soong_ui] Error 1
如果发生上面的错误,就说明需要添加了支持macSdk的版本,打开build/soong/cc/config/x86_darwin_host.go
文件,添加最新的当前mac的系统版本
darwinSupportedSdkVersions = []string{
"10.8",
"10.9",
"10.10",
"10.11",
"10.12",
"10.13",
}
输入emulator
命令后,就可以启动模拟器了.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。