
不久前,遊戲開發Shiftjelly 的聯合創始人 Russel Ivanovic 在個人 Blog 發表了一篇文章,談論的是Android 螢幕解析度版本分裂化的問題。人們通常認為,Android 裝置擁有上千種螢幕尺寸,為其開發應用一定是很痛苦的事情。對此,Russel Ivanovic 給出了出人意料的結論。他說,事情並不是人們想像的那樣困難。
一方面,Google 從一開始就提供了界面佈局工具,允許開發者定義多種界面視圖,適應不同尺寸的裝置,另一方面,Android 螢幕解析度早就開始標準化了,只是人們還沒有意識到這一點。從公司的Pocket Casts 應用收集的數據中,他找出了 10 款最受歡迎的手機,然後加上一款更高解析度的 LG G3,其結果是這樣的:
LG G3: 1440×2560
Nexus 5: 1080×1920
Galaxy S5: 1080×1920
Galaxy S4: 1080×1920
Galaxy S3: 720×1280
Galaxy Note 3: 1080×1920
Galaxy Note: 800×1280
HTC One M8: 1080×1920
HTC One M7: 1080×1920
Nexus 4: 768×1280
Moto X: 720×1280
表面看起來,這裡的解析度有很多種。但是,對於開發者來說,考慮佈局的時候是以 1x 或 1dp 為基礎的。例如,iPhone 3G 解析度是 320×480,iPhone 4 是 640×960,不過,應用軟體界面無需變化的。開發者不需要重新佈置按鈕,或者定制一個界面。 Android 也是同樣的情況。上面提到的設備解析度變為 1x/1dp 形式的時候,是這樣的:
LG G3 @ 1x: 360×640
Nexus 5 @ 1x: 360×640
Galaxy S5 @ 1x: 360×640
Galaxy S4 @ 1x: 360×640
Galaxy S3 @ 1x: 360×640
Galaxy Note 3 @ 1x: 360×640
Galaxy Note @ 1x: 400×640
HTC One M7 @ 1x: 360×640
HTC One M8 @ 1x: 360×640
Nexus 4 @ 1x: 384×640
Moto X @ 1x: 360×640
因此,開發者考慮界面佈局的時候,沒有太多的變體。除了寬度的變化之外,還有高度上的變化,因為在一些設備上,系統按鍵要佔據一部分空間(Android 4.4 後,系統按鍵可以融入到界面之中了)。 Shiftjelly 開發應用的時候,只考慮四種解析度。以圖劃來繪製後就像:
在 Android 發展早期,螢幕尺寸更為多樣。到了 Android 4.0 以後,情況已經有了很大改觀了,而且,由於 Android 裝置數量眾多,即使開發者僅支援 4.0 以上的設備,用戶數量也是相當可觀的。
相比 Android 開發者來說,iOS 開發者一直是比較輕鬆,只是到了iPhone 5 的時候,情況才發生了一些變化。但是,隨著 iPhone 6 的到來,iOS 開發者也要面對螢幕版本分裂問題了。專注蘋果新聞的知名科技作者 John Gruber 最近發表了一篇長文,詳細分析了 iPhone 6 可能的解析度。他認為,4.7 英寸和 5.5 英吋的版本都可能存在,其解析度是這樣的:
4.7 英吋: 1334 × 750, 326 PPI @2x
5.5 英吋: 2208 × 1242, 461 PPI @3x
這樣的話,iOS 開發者需要考慮四種解析度。
320×480 @1x iPhone 4
320×536 @1x iPhone 5
375×667 @1x iPhone 6, 4.7″
414×736 @1x iPhone 6, 5.5″
Russel Ivanovic 用另一張圖來描繪表示:
這意味什麼呢? Russel Ivanovic 說,如果支援不同螢幕尺寸,iOS 開發者要做的工作甚至要超過 Android 開發者。另外,要做好這件事情,最好的工具在 iOS 8 中,許多開發者可能會只支援 iOS8,比避免手動佈局帶來的痛苦。不過,這也未必是壞事。一個可能的後果是,應用的 iOS 版會比 Android 好。因為 iPhone 螢幕尺寸增大後會展現更多訊息,而不僅僅是界面的放大。
(首圖來自:appleinsider)