본문 바로가기

프로그래밍/Tizen

(9)
[Tizen] 패키징 및 signing 빌드할때 콘솔을 보니 sbi 란 녀석이 패키징과 사이닝을 담당하고 있다. 패키지 정보와 사이닝 정보를 제공하면 .tpk 폴더에 설치할 파일들을 복사하고, 사이닝을 진행한다. 해당 명령은 아래와 같다. 리눅스와의 차이는 sbi.exe , sbi 인듯 하고, action과 -ARCH 정보만 달라진다. 이미 컴파일도 끝나고 바이너리가 나와있으므로 정보제공 외에는 큰 의미는 없는 듯 싶다. /tizen-sdk/tools/smart-build-interface/bin/sbiaction tizen-emulator-2.2.native_llvm31.i386.cpp.app -- buildpackage-BUILD_DIR="/프로젝트/Debug"-ARCH=i386-PKG_TYPE=TPK-PKG_NAME=org.tizen.p..
[EFL] Ecore_Exe 프로세스간 통신 Ecore_exe 는 하위 프로세스를 실행하고, 통신을 수행한다. IPC를 좀더 간단하게 구현해 놓았다고 보면 된다. 부모에서 프로세스간 파이프를 통해 데이터를 전달하면, 자식 프로세스는 표준 입/출력(stdin/stdout)으로 메시지를 교환하게 된다. 복잡한 내용은 없으므로, 제공되는 샘플만 간단히 살펴본다. 부모 프로세스pid_t childPid;Ecore_Exe *child;ecore_init(); // 자식 프로세스 실행 및 객체 얻기child = ecore_exe_pipe_run( "./saple_child", // 실행할 프로그램ECORE_EXE_PIPE_WRITE | ECORE_PIPE_READ, //Ecore_Exe_FlagsNULL ); // data // pid 얻기childPid =..
[EFL] Elementary Elementary는 Evas, Ecore, Edje등을 사용해 Evas 스마트 오브젝트를 구현해 놓은 클래스이다. 이러한 위젯들의 처리와 에니메이션 관련 메쏘드와 Ecore의 메인 루프 관련 메쏘드들로 이루어져 있다. 위젯 외에 기본적인 메쏘드들에 대해 정리한다. GeneralELM_MAIN()elm_init을 포함하는 매크로elm_main() 을 호출하므로, 사용자가 int elm_main(int argc, char** argv)을 구현해야 한다. 초기화, 종료int elm_init( int argc, char **argv);int elm_shutdown();void elm_run(); 메인 루프를 시작한다.void elm_exit(); 배경을 포함한 윈도우 생성Evas_Object *elm_win_..
[EFL] Elementary 위젯 기본사항 Elementary 위젯은 Evas smart object 이다. 위젯은 evas 메쏘드를 사용할 수 있으며, 콜백도 evas 콜백을 사용해 시그널을 처리할 수 있다. 별도의 객체가 아닌 모든 객체가 Evas_Object로 동일하므로 복잡도는 증가된다. 잘못된 오브젝트를 넣을 경우 문제가 발생하므로 주의가 필요하다. 콜백의 경우에도 evas_object_smart_callback_add 와 같은 smart 계열 메쏘드를 사용해야 한다. 기타 evas 관련 내용은 해당 포스트 참조. 레이블 Evas_Object *label;label = elm_label_add( win );elm_object_text_set( label, "문자열" ); evas_object_move( label, 0, 0 );..
[EFL] EDC 스크립트 EDC 스크립트 xml 같이 별도의 스크립트인 edc로 gui 요소를 분리해서 작성할 수 있다. 그대로 사용하면 좋을 텐데 이 역시 컴파일해서 바이너리 형태로 만들어야 한다. 각 gui 요소는 parts, part 블록들에 정의되고, programs, program 블록에서 이벤트처리나 c파일연동부분이 정의된다. edc빌드edc파일은 edje_cc로 컴파일하면 edj가 되고, 빌드된 edj를 바이너리에서 불러와 수행된다. edje 빌드.컴파일 : 'pkg-config --cflags edje'링크 : 'pkg-config --libs edje' EDC 스크립트는 대충 아래와 같은 구조를 가진다.( 참조 : http://docs.enlightenment.org/auto/edje/edcref.html#sec..
[EFL] Evas 오브젝트 EvasEvas는 Efl의 핵심요소 이기에 쉽게 다룰수 있는 분량은 아니다. 그저 자주 사용될 만한 메소드들을 열거해 두고 실제 내용은 해당 레퍼런스를 참조하는것이 맞을 듯 싶다. 기본적인 처리 순서 // Evas는 그래픽 영역이므로 몇가지 설정이 필요하다.Evas* canvas;Evas_Engine_Info_Buffer *info;int method; method = evas_render_method_lookup("buffer");canvas = evas_new();evas_output_method_set( canvas, method);evas_output_size_set( canvas, w, h );evas_output_viewport_set( canvas, 0, 0, w, h);info = (Eva..
[EFL] HTTP 연결 Ecore_Con_Url *ecore_url = NULL; 초기화ecore_init();ecore_con_init();ecore_con_url_init(); ECore_Con_Url 객체 생성ecore_url = ecore_con_url_new( const char *url ); // type을 지정해서 생성const char *type = "POST"; // "GET"ecore_url = ecore_con_url_custom_new( const char *url, type ); 객체의 url 변경ecore_con_url_url_set( ecore_url , const char *new_url ); 헤더추가ecore_con_url_additional_header_add( ecore_url, "Name",..
[EFL] Ecore 이벤트 핸들러 이벤트나 타이머 작업 등은 Ecore 메인 루프 모듈과 관련이 있으며, Ecore_FileEcore_ConEcore_Wind32 등 특정 용도의 라이브러리들로 구성되어 있다. 각 라이브러리는 라이브러리_init() 메쏘드로 초기화한 후 사용하면 된다.각각의 이벤트 들은 ecore_main_loop_begin(); 메쏘드로 메인 루프가 시작되어야동작한다. 기본적인 이벤트 처리 방법과 idle 상태 처리 관련해 알아본다. 이벤트는 이벤트 핸들러, 이벤트 콜백 메쏘드, 이벤트 세 부분으로 이루어진다. Ecore 초기화ecore_init(); EVENT_TYPE이벤트 타입은 몇가지 저의되어 있는데, 필요한 경우 별도로 정의해 사용하면 된다. 사용자 이벤트의 경우 ECORE_EVENT_SIGNAL_USER을 사용..