Найти тему
Дизайн!

Android: Философия дизайна

Хотя Android построен на основе ядра Linux, эта платформа имеет очень мало общего с обычным стеком Linux для настольных ПК. На самом деле, во время презентации на конференции Google IO инженер Google Патрик Брэди недвусмысленно заявил, что Android — это не Linux.

Большая часть пользовательского пространства Android работает в рамках ограничений Dalvik, собственной настраиваемой виртуальной машины Java от Google. Dalvik использует собственный формат байт-кода, называемый Dex, и не совместим с J2ME или другими средами выполнения Java. Сторонние приложения для Android написаны на Java с использованием официальных API Android и инструментария виджетов. Android SDK включает в себя специальные инструменты компиляции, которые преобразуют файлы классов Java в байт-код Dex и создают установочный пакет, который можно развернуть на устройствах Android.

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

Проблема с подходом Google в том, что он превращает Android в остров. Крайне изолированный характер платформы не позволяет пользователям и разработчикам Android использовать преимущества богатой экосистемы существующих сторонних приложений Linux. Android официально вообще не поддерживает родные программы на C, поэтому портировать ваши любимые приложения GTK+ или Qt на Android будет невозможно. Также невозможно запустить существующие приложения MIDP на Android, поскольку они используют несовместимую виртуальную машину.

Другие известные инициативы в области мобильных платформ Linux используют совершенно иной подход и широко используют существующие технологии Linux для настольных компьютеров. Maemo, OpenMoko, ALP, MOTOMAGX, Moblin и Qt Extended — все они обеспечивают некоторую мобильность между настольными и другими мобильными платформами. Например, очень просто перенести существующее настольное приложение GTK+ на устройства Moblin, ALP и Maemo.

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

Android
Android