Главная » Программирование игр под Android » УСТРОЙСТВА, УСТРОЙСТВА, УСТРОЙСТВА – ANDROID

0

 

Android не ограничивается одной аппаратной экосистемой. Такие известные производители устройств, как НТС, Motorola и Samsung, быстро сориентировались и предлагают широкий спектр устройств, работающих на этой платформе. Помимо смартфонов на рынке в последнее время появилось много планшетов, использующих Android. Некоторые ключевые концепции соблюдаются для всех устройств, что несколько упрощает жизнь разработчика игр.

 

Аппаратная составляющая

Для Android-устройств не определены минимальные требования к аппаратной начинке. Однако Google рекомендует следующие характеристики, которым удовлетворяют (и чаще всего значительно их превосходят) практически все Android-гаджеты.

ARM-процессор CPU – на момент написания и это требование перестало быть обязательным, теперь Android работает и на архитектуре х86. Новейшие устройства на базе ARM также поддерживают двухъядерные процессоры.

128 Мбайт ОЗУ – это минимальное требование. В настоящее время устройства high-end оснащаются 512 Мбайт оперативной памяти, преодоление рубежа в 1 Гбайт ожидается в самое ближайшее время.

256 Мбайт флэш-памяти – это минимальный объем памяти для хранения системных изображений и приложений. Долгое время недостаток памяти был прокрустовым ложем для пользователей Android, поскольку сторонние приложения не могли устанавливаться на карту памяти. Все изменилось с выходом версии Froyo.

Карта памяти Mini SD или Micro SD – большинство устройств поставляются с картой памяти на несколько гигабайт, которая может быть заменена пользователем на носитель большего объема.

16-битный TFT LCD сенсорный дисплей с разрешением HVGA – до выпуска версии 1.6 Android поддерживала только HVGA-экраны (480 х 320 пикселов). Начиная с версии 1.6 поддерживаются также более высокие и более низкие разрешения. Нынешние устройства высшей ценовой категории могут похвастаться WVGA-дисплеями (800 х 480, 848 х 480 или 852 х 480 пикселов), при этом некоторые бюджетные модели используют разрешение QVGA (320 х 280 пикселов). Сенсорные экраны почти повсеместно емкостные, поддержка мультитач отсутствует только на устаревших устройствах.

Выделенные аппаратные клавиши используются для навигации. В большинстве телефонов присутствуют кнопки Меню, Поиск, Домашний экран и Назад. Однако некоторые производители отклоняются от этой рекомендации и снабжают свои аппараты частью этих клавиш или вообще обходятся без них.

Естественно, в устройствах Android много и других аппаратных составляющих. Почти все гаджеты обладают GPS, акселерометром и компасом. Во многих есть датчики приближения и освещенности. Эти устройства предоставляют разработчикам игр новые возможности для взаимодействия с пользователем (мы рассмотрим их позже). Некоторые смартфоны оснащаются полной QWERTY-клавиатурой и трекболом (последний чаще всего можно обнаружить на устройствах НТС).

Камера также присутствует на большинстве устройств. Некоторые телефоны и планшеты имеют даже две камеры: одну на задней части, другую спереди (для видеочатов). Решающее значение для разработки игр имеет наличие выделенных графических процессоров (GPU). Самый первый Android-аппарат уже имел графический процессор, совместимый с OpenGL ES 1.0. Более современные устройства снабжаются GPU, по производительности сравнимыми с Xbox и PlayStation 2 и поддерживающими версию OpenGL ES 2.0. При отсутствии графического процессора платформа предлагает программный обработчик графики PixelFlinger. Многие бюджетные устройства полагаются на программный рендерер, чьей мощности обычно достаточно для экранов с низким разрешением.

Помимо графического процессора современные Android-гаджеты оснащаются и выделенным аппаратным звуковым процессором. Многие аппаратные платформы также имеют специальные чипы аппаратного декодирования различных мультимедиа-форматов (Н.264).

Возможности подключения реализуются аппаратными компонентами для мобильной связи, Wi-Fi и Bluetooth. Все они в большинстве случаев интегрируются в одном чипе (SoC); подобное решение часто используется во встроенных системах.

Первое поколение, второе поколение, следующее поколение

Исходя из различия в возможностях (особенно с точки зрения производительности), Android-разработчики обычно делят все устройства на три группы – первого, второго и следующего поколений. Эта терминология довольно красноречива, особенно когда дело касается разработки игр для Android. Рассмотрим значение используемых терминов.

Каждое поколение обладает своим набором характеристик, представляющим собой комбинацию версии ОС, процессора/графического чипа и разрешения дисплея. Хотя аппаратные характеристики не меняются, это не касается версии Android, установленной на аппарате.

Начало: первое поколение

Устройства первого поколения – стартовая позиция эволюции Android. Лучше всего эту общность иллюстрирует один из наиболее выдающихся ее образцов – НТС Него.

Это был один из первых телефонов на Android, объявленный убийцей iPhone. Он вышел в ноябре 2009 года и работал на версии 1.5, что было стандартом для платформы в том году. Последнее официально выпущенное обновление для Него – прошивка версии Android 2.1. Обновления до более свежей версии возможны только при получении прав root – полного доступа к системе. Него обладает 3,2-дюймовым сенсорным емкостным HVGA-экраном, комбинацией процессора/ графического чипа Qualcomm с частотой 528 МГц MSM7201A, акселерометром, компасом, а также 5-мегапиксельной камерой. Набор навигационных клавиш традиционен, кроме того, имеется трекбол.

Него – апофеоз устройств первого поколения. Поддержка мультитач сенсорного дисплея страдает ограниченностью – возможны лишь некоторые жесты (например, увеличение и уменьшение масштаба). Нужно заметить, что официально мультитач-жесты устройством не поддерживаются (как и официальным API версии 1.5). С этой точки зрения Него стал большим разочарованием для разработчиков игр, надеявшихся на присутствие такого же набора возможностей мультитач, что и в iPhone.

Другой характерной особенностью устройств первого поколения является разрешение экрана 480 х 320 пикселов (стандарт для версий ОС до 1.6).

Что касается процессора (в том числе графического), Него использует довольно стандартный для своего поколения чип MSM7201А от Qualcomm, не поддерживающий на аппаратном уровне операции с плавающей точкой (еще один весьма важный момент для создания игр). MSM7201A совместим с OpenGL ES 1.0, использующим фиксированный конвейер вместо изменяемого на основе шейдеров. Графический процессор довольно быстр, но сильно уступает по производительности используемому в iPhone 3G чипу PowerVR МВХ Lite (появившемуся в продаже в то же время). НТС использовал тот же чип и в других устройствах первого поколения, например в знаменитом НТС Dream (T-Mobile Gl). MSM7201A быстро превращается в бюджетный процессор, когда дело доходит до аппаратной 3D-графики. Поэтому он становится вашим худшим врагом, когда дело доходит до обеспечения совместимости со всей линейкой Android.

Таким образом, устройства можно отнести к первому поколению по следующим признакам: процессор с частотой до 500 МГц без аппаратной поддержки операций с плавающей точкой; графический чип (в большинстве случаев MSM7201A), поддерживающий

OpenGL ES 1.x; О разрешение экрана 480 х 320 пикселов; О ограниченная поддержка мультитач; первоначальная версия используемой ОС – Android 1.5/1.6 или ниже.

Конечно, эту классификацию нельзя назвать строгой – многие выходящие и сейчас бюджетные устройства обладают примерно тем же набором характеристик. Хотя, строго говоря, они не относятся к первому поколению, мы можем поместить их в ту же категорию, что и Него и ему подобные. На момент написания и смартфоны первого поколения все еще занимают приличную долю рынка, поэтому нам придется учитывать их ограничения и соответствующим образом адаптировать для них игры.

Больше мощи: второе поколение

В конце 2009 года на сцену вышли устройства второго поколения. Первыми появились Motorola Droid и Nexus One (январь 2010) и продемонстрировали невиданные ранее в мобильных телефонах вычислительные мощности. Nexus One оснащен процессором Qualcomm QSD8250 (частота 1 ГГц) из семейства чипов Snapdragon. Motorola Droid использует чип ОМАР3430 (550 МГц) от Texas Instruments. Оба процессора на аппаратном уровне поддерживают векторные операции с плавающей точкой за счет использования расширений Vector Floating Point (VFP) и NEON ARM соответственно. Объем оперативной памяти Nexus One – 512 Мбайт, Motorola Droid – 256 Мбайт,

В телефонах применяется WVGA-экран – с разрешением 800 х 480 пикселов, выполненный по технологии Active-Matrix Organic Light-Emiting Diode (AMOLED) (в случае с Nexus One) и LCD с разрешением 854 x 480 пикселов (у Motorola Droid). Оба эти экрана – емкостные и поддерживают мультитач. Впрочем, несмотря на заявленную поддержку мультитач, в некоторых ситуациях он работает некорректно – наиболее часто встречающейся проблемой является неверный расчет координат касания при близком расстоянии между пальцами и краями экрана.

Nexus One первоначально поставлялся с Android версии 2.1, Motorola Droid использовал версию 2.0. В дальнейшем оба телефона получили обновления до версии Android 2.2. Что важно для разработчиков игр – наличие встроенного графического процессора. PowerVR SGX530 – мощный чип, используемый также в iPhone 3GS. Обратите внимание, что экран в iPhone 3GS вдвое меньше, чем в Motorola Droid, что дает творению Apple небольшое преимущество в производительности (ведь нужно прорисовывать меньше пикселов для каждого кадра). Чип Adreno 200, применяемый в Nexus One (продукт Qualcomm), – слегка менее производительный, чем PowerVR SGX530. В зависимости от вида обрабатываемой сцены оба этих процессора могут быть на порядок производительнее, чем используемый в большинстве устройств первого поколения MSM7201A.

Устройства второго поколения можно отличить по следующим признакам: процессор с частотой от 550 МГц до 1 ГГц с аппаратной поддержкой операций с плавающей точкой; программируемый графический ускоритель с поддержкой OpenGL ES 1.x и 2.0; WVGA-экран; поддержка мультитач; Android версий 2.0, 2.0.1, 2.1 или 2.2.

Стоит заметить, что некоторые телефоны первого поколения получили обновление операционной системы до версии 2.1, что оказало положительное влияние на их общую производительность, но, конечно, никак не выравняло отставание их аппаратной составляющей от устройств второго поколения. Таким образом, разграничение между первым и вторым поколениями можно проводить только с учетом всех факторов (процессор, графический чип и разрешение экрана).

В течение 2010 года появилось множество аппаратов второго поколения (таких как НТС Evo или Samsung i9200 Galaxy S). Хотя их аппаратная составляющая улучшилась по сравнению с пионерами Nexus One и Motorola Droid за счет больших размеров дисплея и немного более быстрых процессоров, эти телефоны также относятся ко второму поколению.

Будущее: следующее поколение

Производители устройств пытаются сохранить информацию о своих новинках в секрете как можно дольше, но им редко удается избежать утечек. Общая тенденция для всех будущих устройств – двухъядерные процессоры, больше оперативной памяти, более мощные графические чипы и улучшенные разрешения экрана. Один из таких аппаратов – Samsung i9200 Galaxy S2, по слухам несущий на борту AMOLED-дисплей с разрешением 1280 х 720, двухъядерный процессор с частотой 2 ГГц и 1 Гбайт оперативной памяти. О графической составляющей известно немногое – возможным кандидатом считают новое семейство чипов NVIDIA Tegra 2, обещающее значительное усиление графических мощностей.

Хотя мобильные телефоны в ближайшем будущем останутся в центре экосистемы Android, в ее эволюции будут играть свою роль и новые форм-факторы. Производители создают планшеты и нетбуки, использующие в качестве операционной системы Android. Портирование Android на другие архитектуры (например, х86) идет полным ходом, что увеличивает количество потенциальных платформ. Для планшетов появилась даже специальная версия – Android 3.0. Каким бы ни было будущее, Android будет к нему готова.

Игровые контроллеры

Осознавая различия методов ввода в различных гаджетах для Android, некоторые производители предлагают специальные игровые контроллеры для них. Поскольку специального API для них в операционной системе не предусмотрено, производители игр вынуждены реализовывать их поддержку с помощью SDK, предлагаемых изготовителями.

Один из таких контроллеров называется Zeemote JS1 (рис. 1.3) и представляет собой аналоговый джойстик с набором кнопок.

Контроллер подключается к устройству с помощью Bluetooth. Разработчики игр обеспечивают поддержку данного устройства с помощью отдельного API, реализованного в Zeemote SDK. Некоторые игры для Android уже поддерживают этот контроллер. Теоретически пользователи могут подключить к своим устройствам контроллер Nintendo Wii (также через Bluetooth). Были показаны несколько прототипов, реализующих возможность использования Wii, но не существует официально поддерживаемого SDK – что делает процесс интеграции слегка затруднительным.

Рис. 1.3. Контроллер Zeemote JS1

Game Gripper – остроумное изобретение, предназначенное для использования с Motorola Droid и Milestone. Это простой резиновый аксессуар, надетый на QWERTY-клавиатуру телефона и реализующий более-менее стандартную компоновку игрового джойстика поверх обычной клавиатуры. Разработчикам игр необходимо лишь добавить поддержку клавиатурных элементов управления – им нет нужды подключать специальную библиотеку для работы с Gripper. В конце концов, это всего лишь кусок резины.

Игровые контроллеры все еще слишком экзотичны в реальности Android. Однако в некоторых успешных играх уже есть их поддержка, что было с энтузиазмом встречено игроками. Поэтому мы будем обсуждать интеграцию поддержки для таких периферийных устройств.

Источник: Mario Zechner / Марио Цехнер, «Программирование игр под Android», пер. Егор Сидорович, Евгений Зазноба, Издательство «Питер»

По теме:

  • Комментарии