Designated device density: the dpi Android actually runs at
A display has two densities and they are rarely equal. The physical ppi is fixed by the panel — resolution divided by diagonal inches. The designated density is a software value the vendor assigns, and it is the one Android uses to turn dp into pixels. This page compares both for 63 real devices we track, so you can see exactly where the two diverge.
The two densities, defined
| Property | Physical ppi | Designated density (dpi) |
|---|---|---|
| Set by | Hardware: pixels and panel size | Software: vendor or user override |
| Value space | Any number (e.g. 418.3) | Usually a bucket: 120 / 160 / 240 / 320 / 480 / 640 |
| What it controls | Sharpness you can see | dp viewport, drawable folder, UI scale |
| Where to read it | Calculated from resolution ÷ diagonal | adb shell wm density |
The formula for the designated density follows from the dp viewport the vendor wants: density = physical width ÷ desired dp width × 160. A 1080 px wide phone that must present 360 dp therefore runs at 1080 ÷ 360 × 160 = 480 dpi, no matter what the panel measures.
Devices where designated density is not the nearest bucket (21)
These are the clearest examples: the panel's ppi would snap to one bucket, but the device ships at another. Every row is derived from the tracked device data — no numbers are typed in by hand.
| Device | Resolution | Physical ppi | Designated dpi | Gap | Bucket | dp width |
|---|---|---|---|---|---|---|
| Sony Xperia 1 V | 1644×3840 | 643 | 480 | -25.3% | xxhdpi | 548 |
| Galaxy S20 | 1440×3200 | 566 | 480 | -15.2% | xxhdpi | 480 |
| iPhone 15 | 1179×2556 | 461 | 460 | -0.3% | xxhdpi | 410 |
| iPhone 15 Pro Max | 1290×2796 | 460 | 460 | +0.1% | xxhdpi | 449 |
| iPhone 14 | 1170×2532 | 457 | 460 | +0.6% | xxhdpi | 407 |
| Xiaomi 14T Pro | 1220×2712 | 446 | 440 | -1.3% | xxhdpi | 444 |
| Pixel 4a | 1080×2340 | 444 | 440 | -0.8% | xxhdpi | 393 |
| Pixel 3a | 1080×2220 | 441 | 440 | -0.2% | xxhdpi | 393 |
| Android 10 emulator (default AVD) | 1080×2160 | 439 | 440 | +0.2% | xxhdpi | 393 |
| Pixel 5 | 1080×2340 | 430 | 440 | +2.4% | xxhdpi | 393 |
| Galaxy A54 5G | 1080×2340 | 403 | 450 | +11.7% | xxhdpi | 384 |
| Galaxy A14 | 1080×2408 | 400 | 420 | +5.0% | xxhdpi | 411 |
| Redmi Note 12 | 1080×2400 | 395 | 440 | +11.5% | xxhdpi | 393 |
| Redmi Note 10 Pro | 1080×2400 | 395 | 440 | +11.5% | xxhdpi | 393 |
| Nothing Phone (2a) | 1084×2412 | 395 | 420 | +6.4% | xxhdpi | 413 |
| Nothing Phone (2) | 1080×2412 | 394 | 420 | +6.5% | xxhdpi | 411 |
| Galaxy A34 5G | 1080×2340 | 390 | 420 | +7.6% | xxhdpi | 411 |
| Asus ROG Phone 8 | 1080×2400 | 388 | 420 | +8.2% | xxhdpi | 411 |
| Pixel 9 Pro Fold | 2076×2152 | 374 | 480 | +28.4% | xxhdpi | 692 |
| Galaxy Z Fold 5 | 1812×2176 | 373 | 480 | +28.8% | xxhdpi | 604 |
| Generic 720p Android phone | 720×1600 | 270 | 320 | +18.5% | xhdpi | 360 |
Which buckets each density is used by
| Bucket | Density | Scale | Devices tracked | Their physical ppi | Examples |
|---|---|---|---|---|---|
| ldpi | 120 dpi | 0.75× | 0 | — | — |
| mdpi | 160 dpi | 1× | 1 | 189–189 ppi | Generic 8-inch Android tablet |
| hdpi | 240 dpi | 1.5× | 1 | 224–224 ppi | Generic 10-inch Android tablet |
| xhdpi | 320 dpi | 2× | 3 | 270–326 ppi | Xiaomi Pad 6, iPhone SE (3rd gen), Generic 720p Android phone |
| xxhdpi | 480 dpi | 3× | 42 | 373–643 ppi | Pixel 9 Pro, Pixel 9, Pixel 9 Pro XL |
| xxxhdpi | 640 dpi | 4× | 0 | — | — |
Read the ppi range column: a single bucket covers a wide spread of physical sharpness. That spread is why two phones that both report 480 dpi can look noticeably different, and why the reported dpi alone never tells you how sharp a screen is.
Why vendors do not use the nearest bucket
- Layout stability. Apps are designed against dp widths such as 360, 384, 411 and 600. Snapping to the nearest bucket on every new panel would drift the dp width from model to model, so vendors lock the density to keep the dp width constant across a family.
- Panel yield and power. Running a 1440 px panel at 480 dpi gives the same 360 dp viewport as a 1080 px panel at 360 dpi, so a flagship can add pixels without changing the layout — the extra pixels only improve sharpness.
- OEM skin scaling. Vendors that ship a custom density (440 dpi on the Pixel 5, for example) are nudging the dp viewport by a few dp to fit their own chrome and settings UI.
- Foldables and multi-display devices. A device with an inner and outer panel has one density property applied per display; the inner panel is often designated at the same bucket as the outer one so content does not reflow when the device unfolds.
Check and change the designated density
adb shell wm size # physical panel, e.g. 1080x2400 adb shell wm density # designated density, e.g. Physical density: 480 adb shell wm density 420 # override to 420 dpi (360 -> 411 dp wide) adb shell wm density reset # restore the shipped value
Lowering the density widens the dp viewport (more content, smaller text); raising it narrows it. If the change makes the screen unusable, reboot — wm density reset survives the reboot and the shipped value comes back. For the full procedure and caveats, see how to change Android DPI, and to look up a specific phone's values use the DPI calculator.
Related
- Density buckets and drawable folders — what each bucket means for assets
- Screen resolutions list — every resolution we track with its dp viewport
- Android DPI explained — dpi, ppi and dp from first principles
- Resolution to DPI converter
FAQ
What does designated device density mean?
It is the runtime density (in dpi) that the platform or the device vendor assigns to a display, which is what Android actually uses to scale dp into pixels. It is shipped as a software property (densityDpi in the display configuration) and does not change when the panel's physical pixel count changes — only when the vendor or the user picks a different value.
Is designated density the same as physical ppi?
No. Physical ppi is resolution divided by diagonal inches — a property of the hardware. Designated density is a chosen bucket value, almost always one of 120/160/240/320/480/640. A 6.3-inch 1080×2424 panel is about 418 ppi but typically ships at 480 dpi, so the two numbers differ by 15% or more.
Why would a phone ship at a density that isn't the nearest bucket?
Because the vendor chooses a dp viewport first and derives the density from it. To give apps a 360 dp wide canvas on a 1080 px wide panel, the density must be 1080 / 360 × 160 = 480 dpi, even if the panel measures 400 ppi. Snapping to the nearest bucket instead would produce a 411 dp or 432 dp viewport and break layouts designed around 360 dp.
How do I read the designated density on my device?
Run adb shell wm density. The value printed is the override or the shipped density in dpi. adb shell wm size gives the physical resolution. Dividing width by (density / 160) gives the dp width that all layouts are measured in.
Can I change the designated density?
Yes, with adb shell wm density <value> (and wm density reset to restore it). It is a debug property, so apps see a different dp viewport immediately, but it can make text and icons tiny or clip layouts. Root is not needed for adb over USB, but it does not survive a factory reset.
Does designated density matter for image assets?
Yes — it decides which drawable folder the system loads. A device running at 480 dpi reads drawable-xxhdpi; if you only ship drawable-hdpi, the bitmap is upscaled 3× and looks soft. This is why the reported dpi matters more than the raw panel resolution for asset quality.
Device data last verified 2026-10-20. Values marked as shipped come from the device's runtime density; the rest are the nearest-bucket estimate.