Android Automotive OS相关库的编译

android.car 是 Android Automotive OS 重要的模块,在此称之为 Car Lib,相关的 Car API 调用都需要依赖 Car Lib。基于 Android 源码进行开发的时候,相关模块可以通过 Android.mk 或 Android.bp 导入 Car Lib 的依赖。如下:

[Android.mk]
         LOCAL_JAVA_LIBRARIES += android.car

[Android.bp]
        android_app {
        ...
                libs:  ["android.car"],
        ...        
        }

除此之外,在进行应用开发的时候,可能希望将 Car Lib 导入 Android Studio 工程,或者有的时候第三方负责部分模块开发的时候无法基于完整的源码进行开放,这种情况下需要将 Car Lib 单独导出。

尤其是 Android 9 或 10 Revision 5 之前版本的项目,谷歌官方SDK中尚未包含 Car Lib,因此需要以额外依赖包的形式导入到工程中,以获得使用Car API 的相关依赖。

与其他 Android API 一样,Car API 对不同方法设置了不同的访问等级,并不是所有的API 都是公开的,部分隐藏的API 不建议第三方应用进行调用。在单独编译 Car Lib 的时候,允许根据方法可见性导出不同的包。在 Car Lib 的构建文件(Android.mk 或 Android.bp)中,定义了以下三个模块:

android.car  //包含所有 Car Lib中定义的方法
android.car-system-stubs  //包含除了不应被其他模块使用的系统方法外所有方法
android.car-stubs  //仅包含公开的 Car API(较高稳定性的)

通过 make 加上模块名的方式,可以单独编译特定模块:

make android.car android.car-system-stubs android.car-stubs

编译后的结果以 JAR 包的形式存放在 out/soong/.intermediates 路径中,并以对应的工程路径命名的子目录下(如 out/soong/.intermediates/packages/services/Car/car-lib/android.car/android_common/javac/android.car.jar)。

如何将 jar 包导入 Android Studio略过…

除了Car Lib 以外,Android Automotive OS中还包含其他专为车载开发的库可供使用,可以像编译 Car Lib一样在找到模块名后对这些库进行单独编译。对于编译类型为 Android 库(Android Archive,即AAR文件) 的模块来说,成功编译后,可以在 android_common 目录下找到对应的 AAR 包。
Automotive 相关模块列表:

模块概述
car-assist-client-lib短信朗读功能客户端 API
car-assist-lib短信朗读功能服务端 API
car-broadcastradio-support广播开发支持库
car-media-common媒体中心开发支持库
car-messenger-common消息应用开发支持库
car-settings-lib系统设置开发支持库
car-telephony-common电话应用开发支持库
car-ui-libUI 控件支持库
android.car.userlib多用户支持库
com.android.car.obd2OBD 诊断开发支持库
car-setup-wizard-lib谷歌开机向导开发支持库

上述表格中这些开发库各有其用途,与 Car Lib不同的是这些库主要面向的是系统模块和部分系统应用的开发者,第三方应用开发者一般不需要使用这些库。

基于 Android Automotive OS 进行开发,以上这些库还是值得关注的,许多功能已经可以在这些库中找到现成的实现。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Automotive 12L 是 Android Automotive 的最新版本,它基于 Android 12 平台开发,提供了更多的功能和优化。以下是在 Linux 系统上编译 Android Automotive 12L 的具体步骤: 1. 安装必要的依赖项 在 Linux 系统上编译 Android Automotive 12L 之前,需要安装以下依赖项: - JDK 8 或以上版本 - Python 2.7 - Git - GNU Make - ccache - curl - zlib1g-dev、libssl-dev 和 libncurses5-dev 等必要的开发 您可以根据自己的 Linux 发行版和版本进行相应的安装。 2. 下载 Android Automotive 12L 源代码 打开终端并进入您要保存源代码的目录,运行以下命令: ``` $ repo init -u https://android.googlesource.com/platform/manifest -b refs/tags/android-auto-12.0.0_r1 $ repo sync -j8 ``` 其中 -j8 表示使用 8 个线程进行代码下载,可以根据自己的计算机性能进行调整。 3. 配置编译环境 进入源代码目录,并运行以下命令: ``` $ source build/envsetup.sh $ lunch aosp_car_x86_64-eng ``` 其中,aosp_car_x86_64-eng 是要编译的设备名称,可以根据自己的需求进行修改。 4. 开始编译 运行以下命令开始编译: ``` $ make -j8 ``` 其中,-j8 表示使用 8 个线程进行编译,可以根据计算机性能进行调整。 编译过程可能需要一段时间,具体时间取决于您的计算机性能。如果编译成功,就会在 out/target/product/{设备名称}/ 目录下生成编译完成的系统镜像文件。 5. 刷入系统镜像 将编译完成的系统镜像文件刷入目标设备中,并启动设备。 注意:编译系统镜像需要一定的编译知识和经验,如果您没有相关经验,建议先在虚拟机或者模拟器中进行尝试。同时,编译系统可能会导致设备数据丢失,请务必备份数据并谨慎操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值