# iOS 开发者也要面对屏幕碎片化？

- 作者：积木
- 发布时间：2014-08-27 08:32
- 分类：公司
- 原文：https://www.ifanr.com/446415

[![9620-1447-140617-iPhone6-Compare-l](https://s3.ifanr.com/wp-content/uploads/2014/08/9620-1447-140617-iPhone6-Compare-l.jpg)](http://www.ifanr.com/446415/9620-1447-140617-iphone6-compare-l)

不久前，游戏开发商 Shiftjelly 的联合创始人 [Russel Ivanovic](http://rustyshelf.org/2014/07/08/the-android-screen-fragmentation-myth/) 在个人博客发表了一篇文章，谈论的是 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 开发应用的时候，只考虑四种分辨率。一副图片来形象地表示：

[![screen&#95;res](https://s3.ifanr.com/wp-content/uploads/2014/08/screen_res-360x574.jpg)](http://www.ifanr.com/446415/screen_res)

在 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](http://rustyshelf.org/2014/08/23/the-rumoured-ios-screen-fragmentation/) 用另一张图来形象表示：

[![ios-e1408785841684](https://s3.ifanr.com/wp-content/uploads/2014/08/ios-e1408785841684-360x613.jpg)](http://www.ifanr.com/446415/ios-e1408785841684)

这意味什么呢？Russel Ivanovic 说，如果支持不同屏幕尺寸，iOS 开发者要做的工作甚至要超过 Android 开发者。另外，要做好这件事情，最好的工具在 iOS 8 中，许多开发者可能会只支持 iOS8，比避免手动布局带来的痛苦。不过，这也未必是坏事。一个可能的后果是，应用的 iOS 版会比 Android 好。因为 iPhone 屏幕尺寸增大后会展现更多信息，而不仅仅是界面的放大。

图片来自 [appleinsider](http://appleinsider.com/articles/14/07/13/analyst-ming-chi-kuo-apples-55-inch-iphone-6-faces-production-issues-launch-may-be-pushed-to-2015)
