Новости Software

Разнообразие экранов Android: проблема или преимущество?

Разрешение и плотность пикселей экрана меняется от телефона к телефону, так что программисты вынуждены определять, как много места на экранах они могут отдать под пиктограммы, фотографии, фоновые рисунки видеоигр, диалоговые элементы и так далее. Но Google утверждает, в долгосрочной перспективе это окупается и позволяет разработчикам избежать сложностей, связанных с фиксированным разрешением экранов, которые были известны ещё со времён Palm.

 

Размеры смартфонов сильно разнятся, и Android-аппараты (на рисунке представлены две различных модели Nexus) призваны расширить разнообразие

В самом деле, ещё до выхода первого Android-смартфона на рынок Google предложила подход, позволяющий приспосабливать интерфейсы не только к различным разрешениям экранов, но и к различной плотности пикселей на них (точек на дюйм). В недавнем сообщении в Google+ инженер каркаса приложений Android Диана Хакборн (Diane Hackborn) описала философию компании так:

«Мотивом разработки данного подхода стал опыт Palm/PalmSource. Как известно, устройства Palm традиционно оснащались экранами с разрешением 160x160 пикселей. Затем Sony представила экраны с разрешением 320x320 пикселей. Это работало хорошо благодаря простому удвоению пикселей по горизонтали и вертикали при выводе старых приложений (считавших, что они по-прежнему отображаются на экранах 160x160 пикселей).

Однако эта стратегия стала затем проблематичной для развития PalmOS, когда компания пожелала выпускать устройства с экранами QVGA (320x240 пикселей). Такие экраны было дешевле производить благодаря тому, что они применялись в массе других устройств; размещая внизу экрана область для рукописного ввода можно было по-прежнему получить квадратную область для приложений. Однако плотность точек этой области составляла 240x240, из-за чего приходилось применять масштабирование в 1,5 раза».

Растягивание объектов в 1,5 раза  означает, по словам госпожи Хакборн, что, например, «ваши хорошие точные линии стали обрастать разнообразными серыми точками, в зависимости от того, как они соотносятся с реальными пикселями на экране». Дабы преодолеть подобные трудности с размерами экранов и разрешениями в Android, операционная система использует идею, которая называется «независимые от плотности пиксели» — dip (density-independent pixel).

 

Плотность точек на дюйм сильно варьируется от устройства к устройству, так что Android-программисты должны включать в программы графические элементы различных размеров

Подход Android к разрешением экранов может кого-то привести в замешательство. Однако  Android предоставляет множество инструментов для разметки интерфейса, и когда разработчик с ними освоится, он без особого труда сможет создавать такую разметку, которая будет автоматически подстраиваться по портретный/альбомный режим и различные экраны устройств. Так считает программист Ник Фарина (Nick Farina), создатель приложения Meridian.

«Если задать в приложении размер кнопки шириной в 100 пикселей, она будет выглядеть гораздо меньше на устройстве с экраном 640x480, чем на устройстве с экраном 320x480 [при условии равной диагонали]. Однако если задать ширину кнопки в 100 dpi, она будет иметь ровно такой же физический размер на двух устройствах», — отмечает инженер Android Гомаин Гай (Romain Guy).

Подход Android в теории совместим с любой плотностью пикселей на дюйм. Но для удобства Google установила, как говорит Диана Хакборн, несколько основных сегментов: ldpi (примерно 120 dpi), mdpi (160 dpi), hdpi (240 dpi) и xhdpi (320 dpi). Google призывает программистов предоставлять ресурсы для всех четырёх основных сегментов плотности экранов смартфонов, дабы обеспечить прекрасное отображение приложений на любом устройстве.

Здесь есть над чем потрудиться не только разработчикам, но и дизайнерам графических элементов приложений. Но в результате, как указывает госпожа Хакборн, программное обеспечение адаптируется сравнительно хорошо даже к такому необычному экрану, какой используется в Galaxy Nexus: его разрешение составляет 1280x720 точек, а плотность — 316 dpi. «Android и приложения для неё способны прекрасно исполняться на этом смартфоне без дополнительной доработки», — говорит она.

 

Android — яркая ОС, но также и довольно беспорядочная

Подход Android весьма гибок. Так и должно быть: Google изначально представляла себе Android в качестве ОС для множества различных производителей. В мире iPhone, контролируемом компанией Apple, всё работает иначе.

В iOS программисты и разработчики приложений гораздо больше внимания уделяют каждому пикселю. Когда на рынке появился смартфон iPhone 4, разрешение экрана увеличилось ровно вчетверо, с 480x320 до 960x640, благодаря чему удвоение пикселей по вертикали и горизонтали является простой задачей. Многое указывает на то, что в случае с iPad компания будет идти по тому же пути, увеличив разрешение экрана планшета ровно в 4 раза, с 1024x768 точек до 2048x1536 точек. То есть речь идёт подходе, которого придерживалась и Palm в своё время.

Программист Ник Фарина допускает, что такой подход, в отличие от подхода Google, подразумевающего дополнительные арифметические расчёты при разметке интерфейса, позволяет добиться выдающейся производительности и плавности работы программы в окружении iOS. Однако подход Apple жёстко ограничивает формфактор устройств в угоду простоте и производительности.

Материалы по теме:

Источник:

window-new
Soft
Hard
Тренды 🔥