Pull to refresh

Существующие приложения и будущие Android x86 устройства

Reading time 4 min
Views 14K
Вскоре на рынке появятся новые смартфоны и планшеты, работающие на базе x86 архитектуры, о своих планах на выпуск подобных устройств уже заявили компании Lenovo и Motorola. Что принетсет новая платформа разработчикам программного обеспечения? Об этом я и хотел бы поговорить в данной статье.

Но сначала немного о планах и серьезности намерений производителей «железа».

В этом году на всемирной выставке CES 2012 компания Intel продемонстрировала первый Android-смартфон работающий на базе x86 архитектуры. Данный смартфон является «атомным», т.к. работает на мобильной платформе Metfield и использует чип Atom Z2460.

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



На верхних графиках результаты тестов на энерго-эффективность при использовании 3G, воспроизведении аудио и видео. Синим отмечены результаты работы смартфона на базе Metfield. В нижней части – результаты тестов на производительность. Как видно из графиков Medfield имеет лучшие показатели во всех тестах.

Прототип-прототипом, но а как же реальные устройства? Там же на CES компания Lenovo показала первый Android-смартфон на базе x86 архитектуры — Lenovo K800. Данный аппарат работает на платформе Medfield, тактовая частота процессора — 1,6 ГГц, имеет 4.5-й дюймовый дисплей и 8-ми мегапиксельную камеру. Продемонстрированная модель работает на базе Android версии 2.3, но производитель обещает, что к моменту выпуска аппарат будет работать на Android 4.0.



Первые Android-смартфоны К800 от компании Lenovo появятся на рынке во втором квартале 2012 года.

О своих планах по выпуску Android устройств на базе х86-й архитектуры так же заявила компании Motorola, заключившая с компанией Intel многогодичное соглашение о партнерстве. Компания Motorola собирается представить первое устройство на базе Atom так же во втором квартале 2012 года.

Помимо производительности мобильные устройства на базе платформы Medfield будет отличать наличие технологий NFC и WiDi. Если первая технология уже проникает на рынок смартфонов, то вторая является уникальной для устройств на базе Android.

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

Первая волна устройств, судя по озвученным планам, появится уже во втором квартале 2012 года. С точки зрения потребителей это будут новые устройства, обладающие рядом отличительных особенностей таких как производительность, энерго-эффективность, наличие WiDi. С точки зрения разработчика — добавится новая аппаратная платформа, и, в некоторых случая, возникнет необходимость адаптации существующих приложений под новую платформу.

В каких случаях может потребоваться адаптация? Прежде чем ответить на этот вопрос давайте вкратце рассмотрим способы создания приложения для Android.

Все приложения для Android можно условно разделить на два типа — Dalvik приложения и приложения использующие NDK

Dalvik это виртуальная машина, являющаяся чатью платформы Android. Dalvik позволяет запускать и исполнять приложения написанные на Java.

NDK это набор инструментов позволяющий создавать и использовать в своем приложении библиотеки написанные на C \ C++. Прибегать к помощи NDK приходится в тех случаях когда есть необходимость, например, использовать готовый С++ код написанный под другую платформу (чтобы не терять готовые наработки), когда необходимо повысить производительность приложения (как бы не был хорош Dalvik но проигрывает «нативному» коду в вопросах производительности).

Если Вы являетесь разработчиком приложение, то для Вас не составит труда определить использует ли приложение NDK библиотеки или нет. Если приложение Вам досталось со стороны, то для того, чтобы определить — использует ли приложение NDK библиотеки или нет необходимо открыть APK файл (который по сути является ZIP архивом) приложения с помощью любого архиватора (например 7-Zip) и проверить наличие подкаталога lib.




Если таковой имеется, то название внутренних подкаталогов укажет на наличие NDK библиотек для различных аппаратных платформ.




Так же можно воспользоваться утилитой APK Info, доступной в Android Market. С помощью данной утилиты можно посмотреть список установленных приложений и получить, в том числе, информацию о наличие NDK библиотек.



Что произойдет с появлением новой платформы? Для Dalvik приложений ничего не изменится, т.к. они работают поверх виртуальной машины, и обеспечение совместимости и работоспособности этой машины на новой аппаратной архитектуре задача разработчиков Dalvik.

Для многих NDK приложений, по сути, тоже ничего не изменится. Не смотря на то, что архитектура будет новой большинство NDK приложений не заметят разницы. Причина — бинарный транслятор, так же анонсированный и продемонстрированный компанией Intel на CES 2010. Смысл работы транслятора простой — он интерпретирует ARM код в x86 код, что обеспечивает совместимость приложений с новой архитектурой.

Транслятор решит проблемы совместимости приложений с х86 и разработчику NDK приложение не придется думать о добавлении поддержки новой аппаратной платформы.С одной стороны. С другой — если разработчик заинтересован в том чтобы «выжать» все, что можно из новой платформы и создать эффективное в плане производительности и энерго-потребления приложение, то ему необходимо будет добавить поддержку новой архитектуры в свое приложение.

К счастью сделать это очень просто. Поддержка x86 платформы появилась в NDK еще в прошлом году с выходом Android NDK 6.

Первое, что необходимо сделать это убедится, что у Вас установлен Android NDK версии 6 или выше. Скачать последнюю версию Android NDK можно на официальной странице.

Далее необходимо добавить новый target для сборки в make файл для сборки библиотек. Обычно в этом файле прописано что-то вроде:

APP_ABI := armeabi armeabi-v7a

К данной строке необходимо добавить x86:

APP_ABI := armeabi armeabi-v7a x86

В последней, на данный момент, версии Android NDK 7 добавился новый параметр – all.
Указав его можно собирать приложение под все поддерживаемые аппаратные платформы:

APP_ABI := all

После сборки библиотек их необхоимо включить в APK файл и «перезалить» пакет приложения в Android Market.

Разработчику не придется создавать отдельную версию приложения для x86-й платформы. Он может включить библиотеки для x86 в уже существующий установочный пакет и обеспечить, тем самым, совместимость одного пакета со всеми аппаратными платформами.

В панели управления приложениями Android Market так же не придется вносить каких-либо изменений, т.к. Android Market сам позаботится о проверке совместимости приложения и целевой платформы.
Tags:
Hubs:
+47
Comments 92
Comments Comments 92

Articles