当前位置:   article > 正文

macOS High Sierra编译android9.0源码_android 9.0 emulator aosp_arm64-eng

android 9.0 emulator aosp_arm64-eng

创建分区

由于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

安装Repo工具

  • 创建目录 : mkdir ~/bin
  • 写入到path中 : PATH=~/bin:$PATH
  • 下载Repo
   curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
   chmod a+x ~/bin/repo
  • 1
  • 2
  • 将Repo中的下载地址改为清华大学的镜像源。
    编辑~/bin/repo 文件,修改REPO_URL为的源地址

    REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'

下载

  • 进入分区

    cd /Volumes/android

  • 创建目录

   mkdir android9
   cd android9
  • 1
  • 2
  • 下载指定分支的代码

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    保存为 sync.sh
    提升权限:chmod a+x sync.sh
    执行脚本开始下载:./sync.sh

  • 下载完成

    ...
    Syncing work tree: 100% (668/668), done.
    
    • 1
    • 2

    下载后的目录

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    如果容量有限,此时可以删除掉.repo文件了.

编译

配置JDK

  • 查看Java的home位置:/usr/libexec/java_home

  • 在~/.bash_profile文件中配置JAVA_HOME

    JAVA_HOME=`/usr/libexec/java_home`
    export JAVA_HOME
    
    • 1
    • 2
  • 使配置文件生效: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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

这里选择6, aosp_x86-eng模式

  • 开始编译

make -j16

其中-j后面的表示开始16个线程进行进行编译.

  • 查看CPU和线程数

sysctl machdep.cpu

......
machdep.cpu.core_count: 4
machdep.cpu.thread_count: 8
......
  • 1
  • 2
  • 3
  • 4

编译过程中错误

  • 添加 mac 版本
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果发生上面的错误,就说明需要添加了支持macSdk的版本,打开build/soong/cc/config/x86_darwin_host.go文件,添加最新的当前mac的系统版本

darwinSupportedSdkVersions = []string{
    "10.8",
    "10.9",
    "10.10",
    "10.11",
    "10.12",
    "10.13",
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

编译完成后启动模拟器

输入emulator命令后,就可以启动模拟器了.

参考

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号