为什么我的 android 模拟器和我的 android phone 会给我不同的设备密度和 DPI 结果?
Why does my android emulator, and my android phone give me different results for a devices density and DPI?
在我的 Lg G stylo h634 上,它的分辨率为 (720*1280),尺寸为 5.7 英寸,实际 PPI 为 258。有了这些信息,phone 应该有:
DP width: 240
DP height: 240
Density: 1.5
Density PPI: 240
然而,当我 运行 在这个真实设备上进行测试时,它给了我:
DP width: 257
DP height: 258
Density: 2.0
Density PPI: 320
现在,当我 运行 具有相同规格的 phone 的模拟版本时,会给出第一个指标(密度:1.5,PPI:240 等),这是正确的指标。我不确定为什么会这样,但有人能解释为什么模拟版本比真实设备更准确吗?
它并不总是关于 DPI 和 PPI。真正的 phone 带有各种硬件组件。尽管真实 phone 和模拟器的规格相同,但真实 phone 呈现的东西不同,它的缩放比例也不同。我的建议是尝试 运行 你的应用程序。在更多的物理设备上并与仿真器进行比较,其中一个等效规格的结果不会有太大差异。
but can anybody explain why an emulated version is more accurate than the real device?
不是。设备就是设备。
在DisplayMetrics
、xdpi
和ydpi
上是实际的物理密度值。例如,the documentation for xdpi
has:
The exact physical pixels per inch of the screen in the X dimension.
在您的问题中,您声明该设备具有 "a real PPI of 258"。这符合您从 DisplayMetrics
获得的值,请记住像素很少是方形的,因此 xdpi
和 ydpi
值很少完全相等。
density
的值基于制造商设置(我认为是 ro.sf.lcd_density
in /system/build.prop
)。为什么 LG 决定使用 xhdpi
而不是 hdpi
,我不能说。如果我不得不猜测的话,他们认为现有应用程序在具有这种逻辑密度的设备上看起来更好。模拟器将使用自己的算法。具有类似屏幕的另一家制造商可能会选择 hdpi
(模拟器选择的内容)。
densityDpi
的值直接来自 density
。
在我的 Lg G stylo h634 上,它的分辨率为 (720*1280),尺寸为 5.7 英寸,实际 PPI 为 258。有了这些信息,phone 应该有:
DP width: 240
DP height: 240
Density: 1.5
Density PPI: 240
然而,当我 运行 在这个真实设备上进行测试时,它给了我:
DP width: 257
DP height: 258
Density: 2.0
Density PPI: 320
现在,当我 运行 具有相同规格的 phone 的模拟版本时,会给出第一个指标(密度:1.5,PPI:240 等),这是正确的指标。我不确定为什么会这样,但有人能解释为什么模拟版本比真实设备更准确吗?
它并不总是关于 DPI 和 PPI。真正的 phone 带有各种硬件组件。尽管真实 phone 和模拟器的规格相同,但真实 phone 呈现的东西不同,它的缩放比例也不同。我的建议是尝试 运行 你的应用程序。在更多的物理设备上并与仿真器进行比较,其中一个等效规格的结果不会有太大差异。
but can anybody explain why an emulated version is more accurate than the real device?
不是。设备就是设备。
在DisplayMetrics
、xdpi
和ydpi
上是实际的物理密度值。例如,the documentation for xdpi
has:
The exact physical pixels per inch of the screen in the X dimension.
在您的问题中,您声明该设备具有 "a real PPI of 258"。这符合您从 DisplayMetrics
获得的值,请记住像素很少是方形的,因此 xdpi
和 ydpi
值很少完全相等。
density
的值基于制造商设置(我认为是 ro.sf.lcd_density
in /system/build.prop
)。为什么 LG 决定使用 xhdpi
而不是 hdpi
,我不能说。如果我不得不猜测的话,他们认为现有应用程序在具有这种逻辑密度的设备上看起来更好。模拟器将使用自己的算法。具有类似屏幕的另一家制造商可能会选择 hdpi
(模拟器选择的内容)。
densityDpi
的值直接来自 density
。