Android заполонил всё. Куда не глянь — новый супер-пупер смартфон на
Android 2.0, 3.0, 4.0… Техника устаревает на глазах, Прогресс шагает
вперед и это хорошо. Но было время, когда никто не знал про Android, а
телефоны стоили столько сколько сейчас стоят смартфоны.
В те времена на обычных телефонах были и кастомные прошивки, и патчи, но
не хватало приложений — хороших и разных. «А как же ява?» — спросите
вы. Да, были ява-приложения. Но что умеет ява? А главное как быстро она
работает? В общем, когда всем надоела тормознутая ява с ограниченными
возможностями, пришёл он —
ELF.
Эльф — Это unix-формат исполняемого файла. Он позволил использовать все
возможности железа телефона и все возможности прошивки. Словом — это
нативное приложение, которое работает в разы быстрее, чем ява. Эльфы
превращали обычный телефон в смартфон и давали почти безграничные
возможности.
Первой мобильной платформой из известных мне где появились эльфы, был
Siemens, потом они появились на SonyEricsson и Motorola. Нужно сказать,
что просто так эльф на телефоне не запустить — нужен эльфлоадер (elf
loader) специальный патч, который «конвертирует» формат в обычный
бинарик, грузит его в память и запускает на выполнение. Ну если хочется
(а точнее даже приходится для запуска эльфа) использовать уже готовые
функции прошивки, то необходима библиотека функций (названия функций +
адреса). Основная проблема тут в том, что адреса этих функций у всех
прошивок разные, но выход есть — код этих функций практически одинаковый
и можно искать эти самые функции по, так называемым, паттернам.
Весь кодинг эльфов для Motorola достаточно сложное и вместе с тем очень
интересное занятие, которое непосредственно связано с реверсингом кода
прошивки. Добавляет сложности то, что приложения реализованы на событиях
(т.е. практически всё асинхронно). События ставятся в очередь, их ловят
обработчики событий, таким образом реализована многозадачность. Сами
эльфы пишутся на Си или С++, но в большинстве случаев можно обойтись и
без ООП.
Что же могут эльфы? Пусть их возможности продемонстрируют скрины (кстати для создания скринов тоже есть свой эльф):
Informer – слева, Infograph – посередине, DeskUtils – справа. Все эти
эльфы предназначены для отображения различной информации на рабочем
столе: погода, местоположение, баланс на симке, заряд батареи, уровень
сигнала и т.п.
Аудиоплеер eTunes в различных «шкурах». Пожалуй, один из самых масштабных эльфов на Мото.
Ещё несколько приложений слева-направо: читалка, калькулятор, дополнительное меню, hex-редактор.
Ну и куда же без игр: бомбермен, пингвин Тюкс, линии, сапёр, дурак и тетрис
Конечно, это не все эльфы. Есть ещё и джабер, и майл-агент, и аська, и
многое дугое. Все эльфы для Моторола вы можете найти на форуме
motofan.ru
UPD: На мотофане осталась архивная
тема, по которой можно узнать о том как шёл процесс рождения эльфов
PS: Если кто-то обладает информацией о том, как развивались эльфы
на SE и Сименсах, и желает помочь с продолжением статьи, можно отписать
мне в ICQ или ЛС
комментарии (44)