我注意到我的应用程序在同一设备上的显示布局略有不同,具体取决于我运行的是调试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 中为字符串定义了不同的值。这是结果。
为什么会这样?为什么Android在调试模式下选择xxhdpi资源,在签名的APK中选择xxxhdpi资源?