iphone3gs當時的屏幕分辨率是320x480px,ppi =164。此時蘋果還將iOS系統的邏輯分辨率設計為320x480pt,dpi = 164,後壹個值遵循了這個UI設計規範(1pt的大小大約等於ppi為164的單個像素)。在plus和iPhone系列出現之前,dpi≈164和1pt的物理尺寸是固定的,但對應的像素可能會有所不同。後來出現的plus和iPhone系列的dpi比164小了壹點,所以1pt的尺寸也相應大了壹些,但是變化很小。
蘋果的設計規範壹直是在保持dpi基本不變的情況下,設備分辨率和邏輯分辨率的縮放關系是整數倍。但在plus系列中,雖然我們使用@ 3x關系進行設計開發,但實際上兩者之間並沒有@ 3x關系,實際縮放應該是@2.6倍。那蘋果為什麽不按照規範來呢?這個我不清楚,但我可以分析,如果蘋果嚴格按照@ 3x的話,應該是。
可能是因為Android的開源屬性和終端太亂太復雜,所以Android無法像iOS壹樣在系統層面為不同設備設置邏輯分辨率來方便開發者開發,不過Android也有壹個很好的解決方案,就是使用pd作為邏輯分辨率。從pd的定義(屏幕像素密度為160ppi,長度為1px)來看,pd是壹個固定的物理大小單位。所以如果用pd計算dpi的話,在不同設備上應該是壹樣的160 dpi,和iOS ≈ 164的dpi基本相同,所以在設計開發Android和iOS的時候會把它們劃等號。
安卓圖表