【问题标题】:Building Android Automotive from source从源代码构建 Android Automotive
【发布时间】:2017-09-26 09:49:12
【问题描述】:

TL;DR

从源代码构建 Android Automotive 后,我该怎么做

  1. 运行汽车模拟器?
  2. 将 CarService 和相关软件包“安装”到设备上?

详情

我正在尝试从源代码构建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 帖子后,我发现了这个:

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

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 和相关包作为需要完整刷新的系统映像的一部分?

【问题讨论】:

  • 到目前为止还没有成功。然而,看着 AOSP 提交,在我看来,这仍然是一项正在进行的工作。我们可以希望 Google 在准备好后发布更多文档
  • @curioustechizen,“Android 汽车”是独立代码库还是“Android – 8.0 Oreo”之后的一部分。如果独立,请您指导我到正确的源代码链接。截至目前,在我看来,它是“Android – 8.0 Oreo”和其他系列的一部分。
  • @Nihar 它不是一个独立的存储库。相反,它是 Android 8 oreo 及更高版本的一部分。请参阅我在问题中提到的标签,以及此答案中提到的标签:stackoverflow.com/a/50230351/570930 请注意,汽车代码分布在多个包中 - 最相关的是包/服务/汽车和硬件/libhardware/汽车

标签: android-source android-auto


【解决方案1】:

这就是我让它在 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 将其部署在设备上。

【讨论】:

    【解决方案2】:

    这是我可以运行 Android Car Emulator 的 PC 环境 Ubuntu 16, 16G内存,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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多