不久前,遊戲開發商Shiftjelly的聯合創始人Russel Ivanovic在個人博客上發表瞭一篇文章,談論的是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屏幕尺寸增大後會展現更多信息,而不僅僅是界面的放大。