Android设备在调试和签名的APK中使用来自不同密度集的资源

时间:2018-12-29 00:13:52

标签: android dpi screen-density pixel-density

我注意到我的应用程序在同一设备上的显示布局略有不同,具体取决于我运行的是调试APK还是签名发行的APK。经过大量的研究后,我将问题隔离到特定于设备密度的资源值。当我在调试模式下运行应用程序时,设备使用v alues-xxhdpi / dimens.xml 中的尺寸,当我运行应用程序时,设备使用 values-xxxhdpi / dimens.xml 中的尺寸运行签名的APK。有问题的设备是运行Android 7.0的Samsung Galaxy S7

为确认这一点,我创建了一个新的空项目,其中仅包含一个hello world字符串。我在 values / strings.xml values-xxhdpi / strings.xml values-xxxhdpi / strings.xml 中为字符串定义了不同的值。这是结果。

  • 调试apk显示xxhdpi字符串。按预期工作。
  • 运行android studio中的发布apk(通过在gradle文件中指定签名配置)显示xxhdpi字符串。按预期工作。
  • 通过选择生成|生成签名的apk。生成签名的APK并运行它。这次应用程序显示xxxhdpi字符串。为什么?!

为什么会这样?为什么Android在调试模式下选择xxhdpi资源,在签名的APK中选择xxxhdpi资源?

0 个答案:

没有答案