在 Android 14 源代码的上下文中,我想在 car-ui-lib 上使用 RRO 对资源文件应用一些更改。问题在于该库已预编译并位于目录
prebuilts/sdk/current/aaos-libs/car-ui-lib.aar
内。如果我在存档管理器中打开“res/”目录中的 aar 文件,就会有一个 overlayable.xml
文件允许我覆盖所需的资源,但是当我使用正确的目标包(“com.android”)编译 RRO 包时.car.ui”)和目标名称(“car-ui-lib”),直接从库中获取,系统无法将其识别为正确的。我的想法是该库不直接安装在系统上,并且 RRO 机制对此不起作用。
这是我的
AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.reply.settings_rro">
<application android:hasCode="false" />
<overlay
android:isStatic="false"
android:priority="10"
android:resourcesMap="@xml/overlays"
android:targetName="car-ui-lib"
android:targetPackage="com.android.car.ui" />
</manifest>
这是用于编译 RRO 的
Android.bp
文件:
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
android_app {
name: "SettingsRRO",
resource_dirs: ["res"],
certificate: "platform",
platform_apis: true,
manifest: "AndroidManifest.xml",
aaptflags: [
"--no-resource-deduping",
"--no-resource-removal",
],
}
我做错了什么吗?如果错在哪里?因为用同样的操作方式,我成功修改了一些系统应用的资源。
https://source.android.com/docs/automotive/hmi/car_ui/customize#configure-rros
本文档介绍了如何使用 RRO for Car UI 库。你检查过这份文件吗?