Android Automotive 14(1) 编译与模拟器运行

1. 前言

Android Automotive 14 随同AOSP发布已经有一段时间,从Android Automotive OS Releases看,有很多新功能,从这篇文章开始,记录一下,阅读源码和折腾的一些过程,学习一些车机开发的内容。

2.Android Automotive 14 源码下载

官网有发布的branch名称,Codenames, tags, and build numbers

这里我们直接下载版本:android-14.0.0_r20 , 从描述看安全补丁已经更新到2024-01-05,此时应该算是最新版本了。 确定好分支后,我们就要从AOSP仓库下载源码了;

国内建议直接使用清华大学开源软件镜像站,下载速度比较快。

使用每月更新的初始化包,repo init 切换到对应android-14.0.0_r20的branch即可

shell 复制代码
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r20
repo sync

Android源码通常100G~200G之间,需要漫长的等待。 一般sync完成提示success,代码就算下载完成了。

3.编译

Android的源码要想得到img或者运行模拟器,还需要进行完整的编译。 关于配置Ubuntu编译源码环境,网上有很多,不再赘述,官网也有链接参考:搭建构建环境

环境搭建好后,在Intel平台上编译运行,一般选择X86_64 具体命令:

bash 复制代码
cd aosp
source build/envsetup.sh
lunch sdk_car_x86_64-userdebug
make

其中sdk_car_x86_64-userdebug 就代表是Android Automotive车机版本,编译出来的img可以直接运行模拟器展示车机

本质上AOSP就一套代码,然后通过lunch不同的project 区分了car、phone、tablet ;

shell 复制代码
Lunch menu .. Here are the common combinations:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     ......
     76. sdk_car_arm-userdebug
     77. sdk_car_arm64-userdebug
     78. sdk_car_md_x86_64-userdebug
     79. sdk_car_portrait_x86_64-userdebug
     80. sdk_car_x86-userdebug
     81. sdk_car_x86_64-userdebug
     82. sdk_pc_x86_64-userdebug
	......

4.遇到错误处理

编译过程中主要遇到了一个ninjia failed with: exit status 137错误记录一下 一般报这种错误的,感觉还是和内存大小有关,显示编译途中退出,返回了status 137;代码一行未改,本身没有啥错误;

网上有很多答案是改JavacHeapSize,但是对于我这个Ubuntu 虚拟机修改没有用;

我这边开发环境是windows11 + Ubuntu虚拟机;硬件总内存是32G,分给Ubuntu虚拟机是22G,编译多次还是不行。

后来尝试不断加大内存,加大到24G,编译就通过了,也没有报status 137错误了

5.模拟器运行

编译完源码,在目录下输入emulator,就可以启动模拟,会自动加载当前编译的project;

下面就是Android Automotive 14的界面截图:

6.总结

源码编译完成,代表hello world的环境搭建书写完毕,剩下的AAOS14等待着持续探索。

我是练习时长两年半的阿坤iKun,下期再见!

相关推荐
五彩小白12 小时前
自回归和上下文
android
事圆则缓14 小时前
Android 多渠道打包实战:Product Flavors、签名、AAB 与发包校验
android
树下困觉眯16 小时前
View绘制流程学习--获取WindowManager的三种方式
android·系统架构·view design
vilya17 小时前
我怎么给手机 GUI Agent 做双通道感知:无障碍树为主,投屏像素兜底
android·人工智能
李子红了时18 小时前
阿狸舞台APP(安卓端手机EncFS解密+压缩包解压+视频播放)
android·音视频
事圆则缓18 小时前
Android 使用 Jenkins 实现 CI/CD,并用 SonarQube 建立质量门禁
android·ci/cd·jenkins
其实防守也摸鱼19 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
恋猫de小郭19 小时前
Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机
android·前端·flutter
素师良码2 天前
第5篇:显示驱动必备调试工具浅析
android
维克兜率天2 天前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化