编译运行Android Automotive原生自带的App,包括电话(Dialer)、短信、收音机(Radio)此类未与平台绑定的系统应用。
编译环境:
- VMware+Ubuntu24+Jdk17
- 内存16G
- 硬盘200G
下载源码
-
下载ub-automotive-master分支的源码
mkdir ~/AutoApps cd ~/AutoApps repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
若之前没有下载过Aosp源码,可以参考这篇文档下载repo工具。
编译
在Android Studio中,打开/packages/apps/Car/libs/aaos-apps-gradle-project
文件夹。
该项目的App需运行在Automotive的系统上。
踩过的坑
-
下载org.gradle.toolchains xxxxx timeout
此项目使用了foojay-toolchains插件来自动下载jdk,众所周知,国内没法直接访问外网。所以无法下载超时。
解决方法:科学上网
-
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
• What went wrong: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
应该是编译的时候内存爆掉了。
解决方法:修改
/packages/apps/Car/libs/aaos-apps-gradle-project
文件夹下的gradle.properties
文件。把org.gradle.parallel
和org.gradle.jvmargs
修改如下就行了。把并行编译关了和限制一下jvm的最大堆内存# Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. #org.gradle.jvmargs=-Xms4092m -Xmx24g org.gradle.jvmargs=-Xmx12288M -Dkotlin.daemon.jvm.options\="-Xmx12288M" -Dfile.encoding\=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=false