android - 如何覆盖 config.xml 中的值?

标签 android resources

在Android框架的源代码中,有一个名为config.xml的文件,它存储了Android内部使用的一些值。

还有一个值控制手指之间的最小距离,这将被视为缩放手势:

<!-- Minimum span needed to begin a touch scaling gesture.
     If the span is equal to or greater than this size, a scaling gesture
     will begin, where supported. (See android.view.ScaleGestureDetector)

     This also takes into account the size of any active touch points.
     Devices with screens that deviate too far from their assigned density
     bucket should consider tuning this value in a device-specific overlay.
     For best results, care should be taken such that this value remains
     larger than the minimum reported touchMajor/touchMinor values
     reported by the hardware. -->
<dimen name="config_minScalingSpan">27mm</dimen>

如其所说,如果我们想修改这个值,我们可以

tune this value in a device-specific overlay.

经过简短的谷歌搜索,作为应用开发者,我找不到任何修改此值的方法。

我还尝试在我的项目的 res/values 下添加一个名为 config.xml 的新文件,但它不起作用。

这可能吗?我只想调整最小距离以将其视为缩放手势,但 ScaleGestureDetector 没有这样的 API。

最佳答案

我知道这是一个老问题,但我会回答它以防其他人遇到同样的问题。请注意,这是创建自定义 Android ROM 版本时的完成方式。由于权限原因,它可能无法与 Android APK 一起使用。但是,如果您希望在自定义 ROM 中执行此操作,请继续阅读。

这很容易做到。下面是我将如何尝试在 android 设置中覆盖 config.xml 文件的示例:

  1. 在项目的顶部,创建一个名为“overlay”的新目录
  2. 在该目录中创建一个路径,该路径与您希望更改的 packages/apps/Settings 中配置文件的位置相对应 packages/apps/Settings/res/values
  3. 将 Android 源中的 config.xml 复制/粘贴到您的新目录(在 values 文件夹中)。这降低了出错的风险
  4. 删除所有您不想修改的配置条目,但不要删除 XML 格式!
  5. 您现在可以根据需要对此 config.xml 进行更改
  6. 最后,在您的项目顶部,将以下内容添加到您的 make 文件 (.mk) 中,并使用正确的覆盖目录路径: PRODUCT_PACKAGE_OVERLAYS += \ <path/to/overlay/directory/from/step/one>
  7. 完成!您现在也可以使用这个覆盖目录来覆盖其他存储库中的其他文件!无论您在覆盖目录下添加什么,现在都应该成功应用(只要路径/文件与 Android 源正确匹配)

这是我在这个论坛上的第一个答案。希望它能帮助某人:)

关于android - 如何覆盖 config.xml 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49249703/

相关文章:

haskell - 如何使用功能语言实现语言?

java - Android如何从外部存储获取资源标识符

android - DialogFragment 给出 NullPointerException

android - 将标记的标题与从 FirebaseDatabase 获取的字符串进行比较后,无法从标记数组以及 map 中删除标记

Android - 通过解码文件或解码流将选定的 Uri 转换为位图时出现内存不足错误

android - 为什么新创建的文件夹中的图像不显示?

c# - T4 命名空间和类型解析

c++ - 从 VB6 访问 C++ DLL 中的位图资源

c# - 卫星资源 .dll 编译为错误的 .net 框架?

android - 需要额外的传递给 Activity