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