外观
Android 资源是怎样选中的 RRO 能改变什么?
标准回答
应用通过 Resources 和 AssetManager 等层访问编译后的资源,系统根据当前 Configuration 选择语言、密度、尺寸、方向等限定符最匹配的候选。屏幕或窗口配置改变时,资源选择也可能变化。Runtime Resource Overlay 允许通过 overlay 包覆盖目标包的适用资源,映射和启用受 overlayable、签名、分区和权限等规则约束。RRO 适合更换颜色、尺寸、字符串及其他被允许覆盖的资源;修改 Java 控制流程或任意第三方资源不能靠普通 RRO 自动实现。
延伸追问
资源尺寸问题要确认拿到的是正确窗口或 Display 的 Context,不能用一个全局 Context 解释所有屏幕配置。
内容来源
- Android Framework 知识手册 · 原条目
6-4