EFL은 타이젠 OS의 네이티브 개발 API입니다.
API는 [application programming interface]의 약어입니다.
운영체제나 C, C++, 자바 등과 같은 언어로 응용 프로그램을 만들 때,
윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 수 많은 함수로 구성되어 있습니다.
여러가지 라이브러리가 합쳐진 복합 라이브러리 구조를 취하고 있는 타이젠의 API인 EFL에 대해 알아봅시다.
위 그림은 EFL이 구성되어 있는 블록 다이어그램입니다.
그림에서 상위에 존재하는 라이브러리는 하위 라이브러리를 참조할 수 있습니다.
예를 들어 Elementary 라이브러리는 모든 영역에서 하위에 존재하는 라이브러리들을 의존하고 있습니다.
Evas 라이브러리의 경우 Eet와 Eina를 의존하고 있습니다.
하위 라이브러리부터 차례대로 알아보도록 하겠습니다.
- Eina
자료 구조 라이브러리
배열, 리스트, 해시, 트리 등과 같은 다소 복잡한 로직을 쉽고 빠르고 안전하게 구현하도록 기능 제공 - Eet
데이터 인코딩 및 디코딩 역할
임의의 자료 구조나 이미지 데이터 등을 압축하여 파일로 저장 또는 네트워크를 통해 전송할 수 있도록 기능 제공
zip과 압축 기법 유사 - Evas
캔버스 역할
윈도우 내에 이미지, 사각형, 선, 폴리곤, 텍스트 등을 표현할 수 있도록 기능 제공 - Ecore
사용자 편의를 위한 시스템 기반 라이브러리
메인루프, 타이밍, 이벤트 등과 관련된 기능을 제공
EFL 어플리케이션은 Ecore에서 제공하는 메인 루프를 기반으로 작동 - Edje
복잡한 GUI 구성을 위한 기능 제공
EDC라는 스크립트 언어를 제공하며 이를 통해 프로그램 코드로부터 GUI를 분리하여 작성 가능
이러한 특성을 이용해 어플리케이션을 재컴파일 하지 않아도 GUI 디자인 변경 가능 - Embryo
일종의 바이트코드 가상 머신
Embryo 스크립트는 PAWN 컴파일러를 통해 PAWN 바이너리로 변환
PAWN 프로그램은 기기의 환경에 의존하지 않고 AMX 가상머신에 의해 해석되어 작동이 가능
즉 하나의 출력물을 가지고 다른 기기 환경에서도 동일한 동작을 보장 함 - Emotion
비디오/오디오 플레이백 라이브러리
이를 통해 사용자는 동영상 재생과 함께 GUI를 결합한 화면 구성을 쉽고 간단히 구현할 수 있음 - Elementary
위젯 툴 킷 라이브러리이며 버튼, 리스트, 레이블, 슬라이더와 같은 범용 위젯 제공
Look & Feel 을 지원하기 위한 동적 테마 변경, 다양한 스키린 해상도 지원 제공 - Efreet
아이콘, 데스크톱 파일, 메뉴 등과 관련하여 Freedesktop.org의 표준에 맞춰 작동할 수 있도록 기능 제공 - Eio
비동기 입출력을 위한 라이브러리 - Ethumb
frame 이미지를 더한 썸네일 이미지를 생성해주는 기능 제공 - Eeze
udev를 통하여 하드웨어 장비를 조작
ODD의 디스크 삽입 여부, CPU 온도, 배터리와 같은 장비의 상태 및 정보를 얻고 조작 - Eldbus
메세지 버스 시스템 - Languauge Bindings
EFL은 기본적으로 C 언어를 지원하고 있으며, 그 외에 JavaScript, 파이썬, Perl, C++ 등의 랭귀지 바인딩 제공
이 글은 인제대학교 의용공학부 네트워크 팀 '11 신윤호가 작성하였습니다.
'프로그래밍언어 > Tizen' 카테고리의 다른 글
[타이젠] 앱 구동하기 (0) | 2016.05.09 |
---|---|
[타이젠] Wearable Emulator 구동하기 (0) | 2016.05.06 |
[타이젠] Wearable 프로젝트 만들기 (0) | 2016.05.05 |
[타이젠] 삼성의 전략 OS '타이젠'이란? [2] (0) | 2016.05.03 |
[타이젠] 삼성의 전략 OS '타이젠'이란? [1] (0) | 2016.05.02 |