Введение в EFL
Центральным элементом Tizen Native API является EFL, являющаяся сложной библиотекой, интегрирующей множество библиотек. На следующем рисунке показана диаграмма структуры EFL.
Верхняя библиотека связана с ее подчиненными библиотеками. Например, библиотека Elementary связана со всеми нижележащими библиотеками, поскольку Ecore связана с Evas, Eet, и Eina.
Eina
Eina, один из основных элементов EFL — это библиотека структуры данных. По аналогии с библиотекой стандартных шаблонов в C++ (STL), она предоставляет пользователям полезные возможности, такие как alignment, списки, хэш-таблицы, деревья и shared строки. Эти возможности работы со структурами данных позволяют как приложениям, так и всем библиотекам EFL на верхнем уровне библиотеки Eina эффективно организовывать логику вычислений.
Eet
Eet используется при кодировании и декодировании данных. Можно, например, сохранять данные с произвольной структурой или данные изображений в виде сжатых файлов или передавать их различным компьютерам по сети. Можно, в частности считать сжатый файл и декодировать его позднее. Использование возможностей компрессии Eet, похожих на принцип устройства .zip-файлов позволяет осуществлять мгновенный доступ к данным, расположенным в произвольном месте файла. Если вы используете функцию криптографии, то вы можете хранить данные stably.
Evas
Evas играет роль холста (canvas). Evas позволяет отображать изображения, текст, различные примитивы, включая квадраты, линии и полигоны в окне. Весь вывод является объектно-ориентированным. Поскольку Evas предоставляет эти объекты в виде объектов типа Evas_Object, вы можете получить доступ к графическим объектам с помощью интерфейса Evas_Object в ходе программирования и отображать нужные объекты на экране. Кроме того, Evas позволяет программировать события. Evast обеспечивает эффективный рендеринг за счет поддержки аппаратного ускорения.
Ecore
Ecore предоставляет функции, связанные с главным циклом, таймингом, событиями, соединениями, IPC, нитями, оконными системами и так далее.
Edje
Edje предоставляет функции для создания сложного графического интерфейса пользователя (GUI). Edje использует EDC в качестве скриптового языка. Это позволяет отделять GUI от программного кода при разработке программ. EDC преобразуется в двоичный формат EDJ с помощью компилятора edje_cc. Программа может считывать этот EDJ-файл при компиляции и связывать его с объектом Evas_Object для построения GUI. В силу особенностей Edje мы можем изменять дизайн графического интерфейса пользователя без перекомпиляции проекта.
Embryo
Embryo — это виртуальная машина байт-кода, используемая для небольших программ, которые могут быть реализованы внутри EDC-файла. В большинстве случаев мы можем кроме того использовать скриптовый язык Embryo небольших практических вычислений. Эта разновидность скрипта Embryo преобразуется в двоичный код PAWN с помощью компилятора PAWN.
Emotion
Emotion — это библиотека, предназначенная для воспроизведения аудио и видео. Emotion воспроизводит видео, используя другие видео плагины, такие как Gstreamer, Xine, или VLC. Такое воспроизведение видео синхронизируется с объектами Evas, предоставленными пользователями. Соответственно, пользователь может воспроизводить видео и также легко создавать экран, связанный с GUI.
Elementary
Elementary — это библиотека набора инструментов, предоставляющая такие элементы управления, как кнопки, списки, метки и слайдеры. Кроме того, она позволяет изменять динамические темы и масштабируемость GUI для поддержки технологии Look & Feel' и различных разрешений экрана.
Efreet, Eio, Eeze, Ethumb, and Eldbus
Дополнительные библиотеки включают в себя Efreet, Eio, Eeze, Ethumb, и Eldbus.
Efreet — это библиотека, предназначенная для разработки приложений по стандартам Freedesktop.org относительно иконок, файлов рабочего стола, меню и так далее.
Eio — это библиотека, предназначенная для асинхронного ввода-вывода.
Eeze используется для управления аппаратным обеспечением, например, Eeze может помочь определить вставлен ли диск в CD-Rom, какова температура процессора, каков заряд батареи и так далее.
Eldbus является оболочкой библиотеки dbus, она используется для работы с сообщениями.
Поддерживаемые языки программирования
Хотя, в основном EFL поддерживает язык C, в проектах EFL могут использоваться также такие языки как Elev8 (JavaScript), Python, Pearl, C++, и Vala.