手机游戏巴士

屏幕碎片化?iPhone其实比安卓更惨!

发表于:2024-05-20 作者:巴士阿叔
编辑最后更新 2024年05月20日,不久前,游戏开发商Shiftjelly的联合创始人Russel Ivanovic在个人博客上发表了一篇文章,谈论的是Android屏幕碎片化的问题。人们通常认为,Android设备拥有上千种屏幕尺寸,为其开发应用一定是很痛苦的事情。对此,Russel Ivanovic给出了出人意料的结论。他

  不久前,游戏开发商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屏幕尺寸增大后会展现更多信息,而不仅仅是界面的放大。

0