从源

时间:2017-09-26 09:49:12

标签: android-source android-auto

TL; DR

从源代码构建Android Automotive之后,我该如何

  1. 运行汽车模拟器?
  2. "安装" CarService和相关软件包到设备上了吗?
  3. 详细

    我尝试从源代码构建Android Automotive。我可以使用以下命令成功构建它:

    $ repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r11 $ source build/envsetup.sh $ lunch car_emu_x86_64-userdebug $ make -j8 V=1 &>> make.log

    我的问题是如何运行模拟器?在谷歌搜索并浏览了一些stackoverflow帖子后,我发现了这个:

    首先,我在命令行中设置一个env变量(模拟器使用它来确定要启动的模拟器)

    export ANDROID_PRODUCT_OUT=/path/to/build_root

    接下来,我创建了一个文件car-emulator.sh并将其放入其中(构建在Ubuntu机器上完成)

    #!/usr/bin/env bash
    
    ANDROID_BUILD_OUT=/path/to/build_root/out
    PREBUILT=/path/to/build_root/prebuilts
    EMULATOR_OUT=${ANDROID_BUILD_OUT}/target/product/car-x86_64
    
    ${PREBUILT}/android-emulator/linux-x86_64/emulator \
        -sysdir ${EMULATOR_OUT} \
        -system ${EMULATOR_OUT}/system.img \
        -ramdisk ${EMULATOR_OUT}/ramdisk.img \
        -data ${EMULATOR_OUT}/userdata.img \
        -kernel ${PREBUILT}/qemu-kernel/x86_64/kernel-qemu \
        -scale 0.7 \
        -memory 512 \
        -partition-size 1024
    

    我还尝试将相关的(darwin-x86_64)文件从构建机器下载到我的Mac笔记本电脑并尝试在那里运行。模拟器启动但会立即崩溃并使用巨大的本机堆栈跟踪。

    我的问题的下一部分是如何在设备上安装此图像? 我看到CarService.apk已生成。在设备上安装此APK是否足够?或者CarService和相关软件包是否应该成为需要完整闪存的系统映像的一部分?

2 个答案:

答案 0 :(得分:2)

这就是我如何使用 Android 8.1.0 分支 OPM5.171019.017

$ source ./build/envsetup.sh
$ lunch aosp_car_x86_64-eng
$ emulator

接下来是终端上的以下输出:

  

模拟器:警告:调整系统分区大小以匹配图像文件(2562 MB> 200 MB)

     

模拟器:警告:调整数据分区大小以匹配图像文件(550 MB> 200 MB)

     

警告:主机不支持请求的功能:CPUID.80000001H:ECX.sse4a [bit 6]

     

警告:主机不支持请求的功能:CPUID.80000001H:ECX.sse4a [bit 6]

Android模拟器显示器显示启动Android汽车。 如果上述解决方案无法在 userdebug 模式下运行,我建议您尝试构建工程版本。 请分享堆栈跟踪以进行进一步分析。

关于问题的第二部分。我认为你正在将android auto与android automotive混合。

Android Auto只是一个应用程序,可以使用APK进行部署/设置和一些小调整,而Android Automotive是专为汽车行业设计的自定义版本的android,拥有自己的一套系统应用程序。因此,只需安装APK即可将其部署在设备上。

答案 1 :(得分:1)

这是我的可以运行Android Car Emulator的PC env Ubuntu 16,16G Ram,1T磁盘

$ repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r39
$ source build/envsetup.sh
$ lunch car_emu_x86_64-userdebug
$ make -j8
$ emulator 

,然后按如下所示启动Android Emulator。

Android Emulator