본문 바로가기

프로그래밍언어/Tizen

[타이젠] 네이티브 API 'EFL'이란?

EFL은 타이젠 OS의 네이티브 개발 API입니다.

API는 [application programming interface]의 약어입니다.

운영체제나 C, C++, 자바 등과 같은 언어로 응용 프로그램을 만들 때,
윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 수 많은 함수로 구성되어 있습니다.

여러가지 라이브러리가 합쳐진 복합 라이브러리 구조를 취하고 있는 타이젠의 API인 EFL에 대해 알아봅시다.

 

위 그림은 EFL이 구성되어 있는 블록 다이어그램입니다.

그림에서 상위에 존재하는 라이브러리는 하위 라이브러리를 참조할 수 있습니다.
예를 들어 Elementary 라이브러리는 모든 영역에서 하위에 존재하는 라이브러리들을 의존하고 있습니다.
Evas 라이브러리의 경우 Eet와 Eina를 의존하고 있습니다.

하위 라이브러리부터 차례대로 알아보도록 하겠습니다.

  1. Eina
    자료 구조 라이브러리
    배열, 리스트, 해시, 트리 등과 같은 다소 복잡한 로직을 쉽고 빠르고 안전하게 구현하도록 기능 제공
  2. Eet
    데이터 인코딩 및 디코딩 역할
    임의의 자료 구조나 이미지 데이터 등을 압축하여 파일로 저장 또는 네트워크를 통해 전송할 수 있도록 기능 제공

    zip과 압축 기법 유사
  3. Evas
    캔버스 역할
    윈도우 내에 이미지, 사각형, 선, 폴리곤, 텍스트 등을 표현할 수 있도록 기능 제공
  4. Ecore
    사용자 편의를 위한 시스템 기반 라이브러리
    메인루프, 타이밍, 이벤트 등과 관련된 기능을 제공
    EFL 어플리케이션은 Ecore에서 제공하는 메인 루프를 기반으로 작동
  5. Edje
    복잡한 GUI 구성을 위한 기능 제공
    EDC라는 스크립트 언어를 제공하며 이를 통해 프로그램 코드로부터 GUI를 분리하여 작성 가능
    이러한 특성을 이용해 어플리케이션을 재컴파일 하지 않아도 GUI 디자인 변경 가능
  6. Embryo
    일종의 바이트코드 가상 머신
    Embryo 스크립트는 PAWN 컴파일러를 통해 PAWN 바이너리로 변환
    PAWN 프로그램은 기기의 환경에 의존하지 않고 AMX 가상머신에 의해 해석되어 작동이 가능
    즉 하나의 출력물을 가지고 다른 기기 환경에서도 동일한 동작을 보장 함
  7. Emotion
    비디오/오디오 플레이백 라이브러리
    이를 통해 사용자는 동영상 재생과 함께 GUI를 결합한 화면 구성을 쉽고 간단히 구현할 수 있음
  8. Elementary
    위젯 툴 킷 라이브러리이며 버튼, 리스트, 레이블, 슬라이더와 같은 범용 위젯 제공
    Look & Feel 을 지원하기 위한 동적 테마 변경, 다양한 스키린 해상도 지원 제공
  9. Efreet
    아이콘, 데스크톱 파일, 메뉴 등과 관련하여 Freedesktop.org의 표준에 맞춰 작동할 수 있도록 기능 제공
  10. Eio
    비동기 입출력을 위한 라이브러리
  11. Ethumb
    frame 이미지를 더한 썸네일 이미지를 생성해주는 기능 제공
  12. Eeze
    udev를 통하여 하드웨어 장비를 조작
    ODD의 디스크 삽입 여부, CPU 온도, 배터리와 같은 장비의 상태 및 정보를 얻고 조작
  13. Eldbus
    메세지 버스 시스템
  14. Languauge Bindings
    EFL은 기본적으로 C 언어를 지원하고 있으며, 그 외에 JavaScript, 파이썬, Perl, C++ 등의 랭귀지 바인딩 제공

 

이 글은 인제대학교 의용공학부 네트워크 팀 '11 신윤호가 작성하였습니다.

http://brian-s.tistory.com/30