automotive 安卓开发_从源代码构建Android Automotive

本文介绍了如何从源代码构建Android Automotive,并解决运行汽车模拟器时遇到的问题。在Ubuntu上成功构建后,创建了一个启动脚本car-emulator.sh。对于设备安装,区别了Android Auto与Android Automotive,强调Android Automotive需要完整系统映像而非仅APK安装。
摘要由CSDN通过智能技术生成

TL;DR

After building Android Automotive from source, how do I

Run the car-emulator?

"Install" the CarService and related packages onto a device?

Details

I'm trying to build Android Automotive from source. I'm able to successfully build it using the following commands:

$ 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

My question is how do I run the emulator? After googling and going through some stackoverflow posts, I came across this:

First, I set an env variable in the command-line (The emulator uses this to determine which emulator to launch)

export ANDROID_PRODUCT_OUT=/path/to/build_root

Next, I created a file car-emulator.sh and put this in it (the build was done on an Ubuntu machine)

#!/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

I also tried to download the relevant (darwin-x86_64) files from the build machine to my Mac laptop and tried running there. The emulator starts but crashes immediately with a huge native stack trace.

The next part of my question is how do I install this image on a device?

I see that the CarService.apk has been generated. Is it sufficient to install this APK on a device for it to work? Or should the CarService and related packages be part of a system image that needs to be flashed in its entirety?

解决方案

This is how I got it to work on Android 8.1.0 branch OPM5.171019.017:

$ source ./build/envsetup.sh

$ lunch aosp_car_x86_64-eng

$ emulator

Followed by the below output on the terminal:

emulator: WARNING: system partition size adjusted to match image file (2562 MB > 200 MB)

emulator: WARNING: data partition size adjusted to match image file (550 MB > 200 MB)

warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6]

warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6]

And the android emulator display shows up booting android automotive.

I would recommend you try building the engineering version if the above solution does not work in userdebug mode.

Please share the stack trace for further analysis.

About the second part of your question. I think you are mixing up android auto with android automotive.

Android Auto is just an app and can be deployed/setup using an APK and some minor tweaking, while Android Automotive is a customized version of android designed specifically for the automotive industry with its own set of system applications. Therefore, it cannot be simply deployed on a device by just installing an APK.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值