在device/sample
文件夹中的 android 源代码中,有一个名为overlays
. 您会在例如cyanogen mods中看到相同的覆盖文件夹。
这个覆盖文件夹是什么?它是如何工作的?这有什么用途?我在哪里可以阅读更多关于它的信息?
提前致谢
在device/sample
文件夹中的 android 源代码中,有一个名为overlays
. 您会在例如cyanogen mods中看到相同的覆盖文件夹。
这个覆盖文件夹是什么?它是如何工作的?这有什么用途?我在哪里可以阅读更多关于它的信息?
提前致谢
例如,假设您想为您的设备修改 Android 源代码中的一些文件(例如,您想向 Launcher 资源添加额外的字符串)。不建议修改Android的实际来源。
取而代之的是,您创建了模仿 Android 的实际文件系统路径布局的叠加层,并将更改的文件放在那里。如果是 Laucher 中的字符串,则创建与路径相对应的目录:packages/apps/Launcher2/res/values
并将修改后的内容放在那里strings.xml
因此,当您构建设备时,该文件将被替换。
覆盖是自定义资源文件的一种方式,不适用于源文件。
替换适用于字符串粒度。这意味着,对于覆盖文件中不存在的字符串,将使用原始字符串中的相应字符串。
从简短的文档中:
Android 构建系统在构建时使用资源覆盖来定制产品。资源覆盖指定在默认值之上应用的资源文件。要使用资源覆盖,请修改项目构建文件以将 PRODUCT_PACKAGE_OVERLAYS 设置为相对于您的顶级目录的路径。当构建系统搜索资源时,该路径将成为与当前根一起搜索的影子根。
最常用的自定义设置包含在文件 frameworks/base/core/res/res/config.xml 中。