Translate

Android на экране хаос: функция, а не ошибка


Один из самых надоедливых проблемам фрагментации Android программисты должны беспокоиться о разных размеров экрана.

С изменение разрешения с одного телефона на другой, у программистов, чтобы выяснить точно, как много места они могут посвятить иконки, фотографии, видео-игры, фоновые рисунки, диалоговые окна. Но, Google утверждает, заплатив цену платит авансом программистов обратно в долгосрочной перспективе-и помогает им избежать фиксированной разрешение трудностей, страдающих Ладони.

Действительно, еще до первого телефона Android появятся на рынке, компания Google поставила на подходе, предназначен для размещения не только разные пикселей резолюции, а также пиксель плотность-количество пикселей на дюйм. Android рамках инженер Диана Hackborn, описанные в философии компании в Google+ пост вчера:

Большая часть мотивации для этого приехали из опыта на Ладони/PalmSource. Palm устройства традиционно был 160x160 экран. Позже в своей жизни, Sony представила 320x320 экрана; это работало очень хорошо, просто удвоение координаты, поставляемых приложений, поэтому (если не используете новые Api) , он все еще думал, что это был рисунок на 160x160 экране, но ОС бы конвертировать, и воспользоваться более высоким разрешением экрана, чтобы показать более контрастного текста и рисованных фигур.Pixel-per-inch densities vary, so Android programmers need to include graphic elements in multiple sizes.

Эта стратегия стала проблематичной в PalmOS позднее, однако, когда он хотел, чтобы корабль QVGA [320 x 240] экраны. Это были дешевле в производстве, так как они были использованы во многих других устройств, поставив в области рукописного ввода в нижней части экрана можно еще ожидать площади для app. Однако их плотность была на полпути между 160x160 в 320x320, давая коэффициента 1,5, и здесь проблемы появились.

Масштабирование до размеров объекта по 1.5x означало, например, что "ваш хороший сплошные линии теперь получить различные серые пятна на них в зависимости от того, как они совпадают с реальной пикселах экрана,-сказала она.

Для решения своих проблем с размерами экрана и разрешение, операционная система использует идею называется плотность-независимый пиксель, по-разному сокращенное dp или dip.

Android подход к разрешение экрана может быть непонятным, и Android поставляется с различных инструментов макет. Как только вы освоите их, -это ноль усилий-просто, чтобы сделать макеты, которые автоматически изменять размер для портретного/ландшафтного устройства различной ориентации и размеров экрана,-сказал Меридиан Приложения программист Ник Фарина в блоге.

-Если бы вы указать, в вашем приложении, кнопка с шириной 100 пикселей, это будет выглядеть на много меньше, в 640x480 устройства, чем на 320х480 устройства. Теперь, если вы укажите ширину кнопку, чтобы быть на 100 dip [плотность-независимый пикселей], кнопка будет выглядеть точно такого же размера на два устройств" ,-сказал Android инженер Ромен Парень в сообщении.
Пикселей на дюйм плотность отличаться, поэтому Android программистов нужно, чтобы включать графические элементы в несколько размеров.
Android is vibrant, but it's messy, too.

Пикселей на дюйм плотность отличаться, поэтому Android программистов нужно, чтобы включать графические элементы в несколько размеров.
(Кредит: Google)

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

Так что предварительной работы, кодировщиков и графических дизайнеров. Но в результате, сказала она, заключается в том, что программное обеспечение адаптировано достаточно хорошо, чтобы прибытия Галактики Nexus и его 316dpi, 1280x720 экран.

"Android и ее приложения смогли довольно много работы на нем, как есть" ," Hackborn сказал.

Так что, да, Android подход является гибким. Это должно было быть, конечно, с самого начала, Google предусмотрено Android в качестве операционной системы для многих производителей.
Android является энергичным, но он's грязный, тоже.

Android является энергичным, но это неприятно, тоже.
(Кредит: Стивен Шенкланд/CNET)

Все работает очень по-разному в мире iPhone, Apple, где находится в твердый контроль.

С iOS, программисты больше обращать внимание на каждый пиксель. Когда iPhone 4 прибыли, разрешение экрана вдвое именно с 480x320 к 960x640, делая пиксель-удвоение математике легко. Многие признаки указывают на следующее поколение iPad, возьмем тот же подход, удвоение первый Ipad' разрешение 1024x768 до 2,048x1,536 пикселей.

Apple подход удивился Тим Брей, Android developer evangelist в Google, когда он понял, как он работал с Фарина объяснение.

"Сначала я покачал головой, не веря в происходящее на все маленькие кусочки жестко-закодированных арифметики, как y += 7 и крае - 30. Ясно, что эта логика не является устойчивость в условиях различной формы экрана. Но бьюсь об заклад, это быстро,-Брей сказал. Он добавил: Это правдоподобно, как Ник Фарина подразумевает, что iOS фиксированной размеры экрана модель частично отвечает за поразительно быстрое выполнение Apple выжимает из базового оборудования.

И я даже не говорю, что Apple выбор здесь неправильно. Компромисс, если я правильно понимаю, это форм-фактор гибкости для простоты и производительности, и пока это работает довольно хорошо для них.