KR100878044B1 - Application translating method for providing compatible BREW and WIPI and device thereof - Google Patents
Application translating method for providing compatible BREW and WIPI and device thereof Download PDFInfo
- Publication number
- KR100878044B1 KR100878044B1 KR1020060120166A KR20060120166A KR100878044B1 KR 100878044 B1 KR100878044 B1 KR 100878044B1 KR 1020060120166 A KR1020060120166 A KR 1020060120166A KR 20060120166 A KR20060120166 A KR 20060120166A KR 100878044 B1 KR100878044 B1 KR 100878044B1
- Authority
- KR
- South Korea
- Prior art keywords
- conversion
- brew
- variable
- library
- source file
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
브루 및 위피 간의 호환 방법 및 장치가 개시된다. 본 발명의 일측면에 따르면, 위피(WIPI) 및 브루(BREW) 플랫폼 간의 호환성을 제공하기 위해 호환 장치가 입력된 프로젝트 파일의 변환 방법에 있어서, 입력된 프로젝트 파일의 특정 포맷의 소스 파일을 추출하는 단계; 소스 파일의 헤더를 분석하여, 변환 라이브러리 중 목표 플랫폼에 따라 지원 가능한 라이브러리를 추출하는 단계; 및 라이브러리를 이용하여 소스 파일을 변환하여 변환 소스 파일을 생성하는 단계를 포함하는 어플리케이션 변환 방법이 제공된다. 본 발명에 따르면, 브루 및 위피 중 어느 하나로 제작된 어플리케이션의 소스 및 리소스를 이용하여 그 중 다른 플랫폼에 따른 어플리케이션 소스 및 리소스를 생성하는 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환 방법 및 장치를 제공할 수 있다.
BREW, WIPI, 플랫폼, 단말기
A method and apparatus for compatibility between brew and wickies is disclosed. According to an aspect of the present invention, in a method of converting a project file input by a compatible device to provide compatibility between the WIPI and BREW platforms, extracting a source file of a specific format of the input project file. step; Analyzing a header of the source file to extract a supportable library according to the target platform from among the conversion libraries; And generating a conversion source file by converting the source file using the library. According to the present invention, there is provided a method and apparatus for converting an application for providing compatibility between a brew and a wiki which generates an application source and a resource according to another platform by using a source and a resource of an application produced by any one of the brew and a ppi. Can be.
BREW, WIPI, Platform, Terminal
Description
도 1은 본 발명의 일 실시예에 따른 브루 및 위피의 호환을 위한 장치의 기능에 따른 구성을 개략적으로 도시한 도면.1 is a view schematically showing the configuration according to the function of the device for the compatibility of brew and wickie according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 소스분석 과정을 도시한 도면.2 is a diagram illustrating a source analysis process according to an embodiment of the present invention.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 프로젝트 파일들을 예시한 도면.3 through 5 illustrate project files according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 컴파일러부의 소스 변환기의 처리 과정을 도시한 도면.6 is a flowchart illustrating a process of a source converter of a compiler unit according to an exemplary embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 호환 장치의 이벤트 처리기에서의 이벤트 처리의 일례를 도시한 도면.7 illustrates an example of event processing in an event handler of a compatible device according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 BREW, WIPI-C, WIPI-Java의 변화율을 예시한 도면.8 is a diagram illustrating the rate of change of BREW, WIPI-C, WIPI-Java according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 호환 장치가 입력된 프로젝트 파일을 분석하여 목표한 플랫폼에 상응하는 어플리케이션을 생성하는 과정을 도시한 도면.9 is a diagram illustrating a process of generating an application corresponding to a target platform by analyzing a project file input by a compatible device according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호 설명><Description of the symbols for the main parts of the drawings>
100 : 호환 장치100: compatible device
110 : 컴파일러부110: compiler
112, 소스 분석기 114 : 전처리기 116 : 소스 변환기112, source analyzer 114: preprocessor 116: source converter
130 : 변환 라이브러리부130: conversion library unit
132 : BREW to WIPI 변환 라이브러리132: BREW to WIPI Conversion Library
134 : WIPI to BREW 변환 라이브러리134: WIPI to BREW Conversion Library
136 : C++ to C 변환 라이브러리136: C ++ to C Conversion Library
150 : 리소스 처리부150: resource processing unit
152 : 이미지 변환기 154 : 음원 변환기152: Image Converter 154: Sound Converter
본 발명은 이종 플랫폼(platform)간의 호환에 관한 것으로서, 좀 더 상세하게는 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환 방법 및 장치에 관한 것이다.The present invention relates to compatibility between heterogeneous platforms, and more particularly, to a method and apparatus for converting an application for providing compatibility between brews and wickies.
위피는 영어 'Wireless Internet Platform for Interoperability'의 머리글자를 딴 것이다. 이동통신 업체들이 같은 플랫폼을 사용하도록 함으로써 국가적 낭비를 줄이자는 목적으로 우리나라에서 2001년부터 국책사업으로 추진되기 시작하였다. 무선인터넷 플랫폼이란 이동전화 단말기에서 퍼스널컴퓨터의 운영체계(OS)와 같은 역할을 하는 기본 소프트웨어를 말한다.Wippy is an acronym for the English word Wireless Internet Platform for Interoperability. In order to reduce national waste by allowing mobile operators to use the same platform, it has been promoted as a national project since 2001 in Korea. The wireless internet platform refers to basic software that functions as an operating system (OS) of a personal computer in a mobile phone terminal.
한국의 이동통신 업체들은 그 동안 회사마다 각기 다른 방식으로 무선인터넷 플랫폼을 만들어 사용하였기 때문에 콘텐츠 제공업체들도 같은 콘텐츠를 여러 개의 플랫폼으로 만들 수밖에 없었다. 따라서 콘텐츠 제작과 서비스에 따르는 여러 가지 불필요한 낭비 요소가 발생하였는데, 위피는 국가적인 차원에서 이러한 낭비 요소를 줄일 목적으로 탄생한 것이다.Since Korean mobile operators have made and used wireless Internet platforms in different ways, content providers have no choice but to make the same content into multiple platforms. Therefore, various unnecessary wastes occurred due to content creation and service, and Wi-Fi was created to reduce such wastes at the national level.
브루는 미국 퀄컴(Qualcomm)사가 부호 분할 다중 접속(CDMA) 방식의 이동 통신용으로 개발한 플랫폼이다. 데스크톱 컴퓨터와 마찬가지로 휴대폰으로 프로그램 내려받기(download)나 업데이트, 저장, 삭제는 물론 이메일, 단순 메시지, 실시간 탐색, 대화, 단체 게임 등을 편리하게 이용할 수 있는 환경을 제공한다. 자바 기반의 기존 플랫폼과는 달리 이용자들이 원하는 소프트웨어를 단말기에 직접 내려 받아 쓸 수 있는 점이 특징이며, 통신 사업자마다 플랫폼이 달라 많은 문제를 초래하고 있는 이동 콘텐츠 분야의 기술 표준으로 무선 인터넷 활성화에 크게 기여하고 있다.Brew is a platform developed by Qualcomm for code division multiple access (CDMA) mobile communications. Just like a desktop computer, it provides a convenient environment for downloading, updating, saving, and deleting programs on a mobile phone, as well as accessing e-mail, simple messages, real-time browsing, conversations, and group games. Unlike Java-based platforms, users can download and write the software they want directly on their devices.It is a technology standard in the mobile content field that causes a lot of problems due to different platforms. Doing.
상기한 위피 및 브루는 그 방식이 서로 상이하여, 위피가 적용된 단말기로는 브루 방식의 응용 프로그램(Application program)이 실행되지 않으며, 마찬가지로 브루가 적용된 단말기로는 위피 방식의 응용 프로그램을 실행하지 못한다. 즉, 위피 및 브루에 따른 응용 프로그램을 생성하기 위해서는, 각기 다른 환경으로 소스 코드 작성 및 컴파일 등이 실행된다. 따라서, 응용 프로그램 개발자는 동일한 기능을 수행하는 응용 프로그램에 대해서도 브루 및 위피에 상응하도록 각각의 소스 코드를 제작해야 하는 불편이 있었다.The Wipy and the brew are different from each other, the application of the brew method is not executed by the terminal to which the Wippy is applied, and similarly, the Wipy method cannot be executed by the terminal to which the Brew is applied. In other words, in order to generate an application program according to Wifi and Brew, source code writing and compilation are executed in different environments. Therefore, the application developer was inconvenient to produce each source code corresponding to the brew and the Wi-Fi even for an application that performs the same function.
따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 브루 및 위피 중 어느 하나로 제작된 어플리케이션의 소스 또는 리소스를 이용하여 그 중 다른 플랫폼에 따른 어플리케이션 소스 또는 리소스를 생성하는 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환 방법 및 장치를 제공하기 위한 것이다.Accordingly, the present invention has been made to solve the above-described problem, and the compatibility between the brew and the Wi-Fi to generate an application source or resource according to the other platform using the source or resource of the application produced by any one of the Brew and Wi-Fi To provide an application conversion method and apparatus for providing.
또한, 본 발명은 브루에 따른 어플리케이션 또는 위피에 따른 어플리케이션 중 어느 하나를 이용하여 다른 하나의 플랫폼에 따른 어플리케이션을 자동으로 생성하여, 기존과 같이 개발자가 오랜 시간 동안 수작업을 수행할 필요가 없는 개발 효율성을 제공할 수 있는 할 수 있는 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환 방법 및 장치를 제공하기 위한 것이다.In addition, the present invention automatically generates an application according to another platform using either the application according to the brew or the application according to the Wi-Fi, development efficiency that does not require the developer to perform a manual operation for a long time as before An object of the present invention is to provide an application conversion method and apparatus for providing compatibility between a brew and a wigee capable of providing a.
본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.Other objects of the present invention will become more apparent through the preferred embodiments described below.
상술한 목적을 달성하기 위한 본 발명의 일측면에 따르면, 위피(WIPI) 및 브루(BREW) 플랫폼 간의 호환성을 제공하기 위해 호환 장치가 입력된 프로젝트 파일의 변환 방법에 있어서, 입력된 프로젝트 파일의 특정 포맷의 소스 파일을 추출하 는 단계; 상기 소스 파일의 헤더를 분석하여, 변환 라이브러리 중 목표 플랫폼에 따라 지원 가능한 라이브러리를 추출하는 단계; 및 상기 라이브러리를 이용하여 상기 소스 파일을 변환하여 변환 소스 파일을 생성하는 단계를 포함하는 어플리케이션 변환 방법 및 그 방법을 실행하는 프로그램이 기록된 기록매체가 제공된다.According to an aspect of the present invention for achieving the above object, in the conversion method of the project file input the compatible device to provide compatibility between the WIPI and BREW platform, the specific of the input project file Extracting a source file of a format; Analyzing a header of the source file to extract a supportable library according to a target platform from among conversion libraries; And a method of converting the source file using the library to generate a conversion source file, and a recording medium having recorded thereon a program for executing the method.
상술한 목적을 달성하기 위한 본 발명의 다른 측면에 따르면, 위피(WIPI) 및 브루(BREW) 플랫폼 간의 호환성을 제공하기 위해 입력된 프로젝트 파일을 변환하는 장치에 있어서, 상기 위피 및 브루 플랫폼에 상응하는 라이브러리를 포함하며, 상기 위피 및 브루 간의 소스 변환을 위한 변환 라이브러리를 포함하는 변환 라이브러리부; 및 프로젝트 파일의 특정 포맷의 소스 파일을 추출하고, 상기 소스 파일의 헤더를 분석하여, 상기 변환 라이브러리 중 목표 플랫폼에 따라 지원 가능한 라이브러리를 추출하며, 상기 추출된 라이브러리를 이용하여 상기 소스 파일을 변환하여 변환 소스 파일을 생성하는 컴파일러부를 포함하는 어플리케이션 변환 장치가 제공된다.According to another aspect of the present invention for achieving the above object, in the apparatus for converting the input project file to provide compatibility between the WIPI and BREW platform, corresponding to the Wi-Fi and Brew platform A conversion library unit including a library, the conversion library including a conversion library for source conversion between the Wi-Fi and Brew; Extracting a source file of a specific format of a project file, analyzing a header of the source file, extracting a supportable library according to a target platform among the conversion libraries, and converting the source file using the extracted library; An application conversion apparatus including a compiler unit for generating a conversion source file is provided.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms including ordinal numbers such as first and second may be used to describe various components, but the components are not limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 첨부한 도면들을 참조하여 본 발명에 따른 실시예들을 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성 요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and in describing the present invention with reference to the accompanying drawings, the same or corresponding elements are denoted by the same reference numerals regardless of the reference numerals, and duplicates thereof. The description will be omitted.
도 1은 본 발명의 일 실시예에 따른 브루 및 위피의 호환을 위한 장치의 기능에 따른 구성을 개략적으로 도시한 도면이고, 도 2는 본 발명의 일 실시예에 따른 소스분석 과정을 도시한 도면이고, 도 3 내지 도 5는 본 발명의 일 실시예에 따른 프로젝트 파일들을 예시한 도면이다.1 is a view schematically showing the configuration according to the function of the device for the compatibility of the brew and Wipy according to an embodiment of the present invention, Figure 2 is a view showing a source analysis process according to an embodiment of the
도 1을 참조하면, 본 실시예에 따른 브루 및 위피 간의 호환을 제공하는 장치(100, 이하 호환 장치)는 컴파일러부(110), 변환 라이브러리부(130) 및 리소스 처리부(150)를 포함한다.Referring to FIG. 1, an apparatus 100 (hereinafter referred to as a compatible apparatus) that provides compatibility between a brew and a Wippy according to the present embodiment includes a
여기서, 호환 장치(100)는 반드시 하드웨어적으로 구현될 필요는 없으며, 컴퓨터 등에 인스톨되어 실행될 수 있는 프로그램과 같이 소프트웨어적으로 구현될 수도 있다. Here, the
호환 장치(100)가 브루 및 위피에 따른 응용 프로그램 소스 또는 리소스를 변환하기 위해서는 다음과 같은 세가지 요소가 고려되어야 한다.In order for the
첫째로, 플랫폼 고유 라이브러리 분석 및 플랫폼간 라이브러리 비교, 변환, 구현 방법이다. 예를 들어, 어플리케이션 개발에 사용되는 함수 API(Application Programming Interface) 목록이나 자원 목록 등의 분석이다.First, platform-specific library analysis and cross-platform library comparison, conversion, and implementation. For example, it is analysis of function API (Application Programming Interface) list or resource list used for application development.
둘째로, 응용 프로그램의 리소스의 처리 및 변환 방안이다. 예를 들어, 브루 에서 사용하는 바(BAR)와 같은 이미지 리소스의 위피에서의 처리 방법 등이다.Secondly, it is a method of processing and converting resources of an application program. For example, how to handle image resources such as BAR used in brews.
셋째는 언어적인 측면의 소스 변환 방법이다. 언어적인 측면의 변환이라 함은 변환된 소스에 대한 실행보다는 언어의 신텍스(Syntax)나 시맨틱(Semantic)적인 변환을 만족하는지에 중점을 두는 것이다. 이를 위해 전통적인 컴파일러의 단계를 만족하도록 구현할 수 있다. 예를 들어, WIPI_Java의 경우 이를 C++로 변환하는 방법이다.Third is the method of source conversion in terms of language. The linguistic transformation focuses on satisfying the syntax or semantic transformation of the language, rather than the execution of the translated source. This can be achieved by satisfying the steps of a traditional compiler. For example, WIPI_Java converts it to C ++.
본 실시예에 따르면, 상기한 첫 번째의 경우에는 래퍼(wrapper, 즉 변환 라이브러리)를 이용하여 API 변환을 수행할 수 있다. 또한 두 번째의 경우 이미지의 포맷, 크기, 색 등의 변환과 mp3, wav, mmf 등의 음원 변환이 해당된다. 세 번째는 BREW C에서 WIPI C(또는 WIPI C에서 BREW C)로의 소스 변환, 그리고 WIPI_Java에서 BREW C++ 로의 소스 변환이 해당된다.According to the present embodiment, in the first case, the API conversion may be performed using a wrapper (ie, a conversion library). In the second case, conversion of image format, size, color, etc., and conversion of sound sources such as mp3, wav, and mmf are applicable. The third is source conversion from BREW C to WIPI C (or WIPI C to BREW C), and from WIPI_Java to BREW C ++.
변환 라이브러리부(130), 리소스 처리부(150) 및 컴파일러부(110)는 상기한 세가지 요소를 수행하기 위한 구성 요소들이다. 변환 라이브러리부(130) 및 컴파일 러부(110)는 위피 및 브루와 밀접한 관련이 있는 부분으로 해당 플랫폼에 대한 선행 분석을 통해 세부 기능 모듈의 설계가 가능하다. 소스 분석은 소스 변환을 위한 해당 프로젝트 파일(어플리케이션일 수 있음)을 분석하여 프로젝트에 포함되어 있는 또는 프로젝트가 참조하는 파일을 찾아냄으로써 수행될 수 있다. 컴파일러부(110)의 소스 변환기(116)는 'BREW to WIPI 변환라이브러리', 'WIPI to BREW 변환 라이브러리'를 이용하여 플랫폼간의 소스 변환을 수행한다. 특히, 컴파일러부(110)는 언어 고유의 컴파일러 영역으로 변환 라이브러리부(130) 및 리소스 처리부(150)와 기능적인 측면으로 연동되어 기능한다.The
이하, 호환 장치(100)의 각 구성부의 기능을 설명하기로 한다.Hereinafter, the functions of the components of the
도면에 도시된 바와 같이, 호환 장치(100)의 컴파일러부(110)는 소스 분석기(112), 전처리기(114) 및 소스 변환기(116)를 포함할 수 있다.As shown in the drawing, the
소스 분석기(112)는 소스 변환을 위한 해당 프로젝트 파일을 분석하여 프로젝트에 포함되어 있는 또는 해당 프로젝트가 참조하는 파일을 추출하는 기능을 수행한다.The
소스 분석기(112)의 처리 대상이 되는 프로젝트 유형은 예를 들어 브루(BREW)를 위한 마이크로소프트(Microsoft)사의 비쥬얼 스튜디오(Visual Studio) 프로젝트 파일(이하 MSVC), WIPI_C, WIPI_Java를 위한 KTF Integrated SDK 프로젝트 파일(이하 KIS) 등이 있을 수 있다. 이하, 설명의 편의를 위해 프로젝트 파일로는 상기한 MSVC와 KIS 두 가지가 존재하는 경우를 가정하여 설명하기로 한다.The type of project being processed by the
도 2를 참조하면, 소스 분석기(112)의 입력 인자가 되는 프로젝트 파일은 MSVC의 프로젝트 파일과 KIS의 프로젝트 파일이다. 그런데 MSVC의 프로젝트 파일인. dsw와 KIS의 프로젝트 파일인 .prj 파일은 공통적으로 .dsp 파일을 참조하고 있다.Referring to FIG. 2, project files serving as input parameters of the
즉, 프로젝트에 사용하거나 참조하고 있는 소스에 대한 목록을 담고 있는 파일은 프로젝트 파일인. dsw와 .prj 파일이 아닌 공통적으로 .dsp 파일을 사용하고 있다. 따라서 프로젝트에 포함되어 있는 소스 파일 목록을 가져오기 위해서는 실질적으로 .dsp 파일을 분석하는 것이며, .dsw 파일과 .prj 파일은 .dsp 파일의 위치와 파일명을 가져오기 위한 용도로 사용된다.In other words, the file containing the list of sources used or referenced in the project is the project file. I use .dsp files in common, not dsw and .prj files. Therefore, to get the list of source files included in the project, the actual analysis of the .dsp file is used. The .dsw and .prj files are used to get the location and file name of the .dsp file.
.dsw 파일, .prj 파일 및 .dsp 파일의 예가 도 3 내지 도 5에 도시되어 있다.Examples of .dsw files, .prj files, and .dsp files are shown in FIGS.
도 3 및 도 4를 참조하면, .dsw 파일 및 .prj 파일에는 프로젝트를 구성하는 소스목록이 존재하지 않음을 확인할 수 있다.3 and 4, it can be seen that the source list constituting the project does not exist in the .dsw file and the .prj file.
프로젝트 파일이 .dsw 파일인 경우, 우선 .dsw 파일의 내용 중 하기 코드에 해당되는 라인을 프로젝트(project)라고 하는 키워드를 이용하여 탐색한다.If the project file is a .dsw file, the line corresponding to the following code among the contents of the .dsw file is first searched using a keyword called project.
[ Project: "jumpse"=".\jumpse.dsp" - Package Owner=<4> ][Project: "jumpse" = ". \Jumpse.dsp"-Package Owner = <4>]
다음, "프로젝트명"을 키워드로 하여 ".\jumpse.dsp" 항목을 찾고, "\"을 키워드로 하여 디렉터리와 파일을 분리한다. 이후, .dsp 파일의 풀 패스(Full Path) 명을 리턴(return)하고, .dsp 파일을 분석하여 소스 목록을 추출한다.Next, find the ". \ Jumpse.dsp" entry using "project name" as a keyword, and separate directories and files using "\" as a keyword. Then, the full path name of the .dsp file is returned, and the source list is extracted by analyzing the .dsp file.
한편, 프로젝트 파일이 .prj 파일인 경우, xml 포맷으로 구성되어 있으나 .prj와 .dsp는 같은 디렉터리에 동일한 프로젝트 명으로 구성되므로 굳이 xml 파 일을 작성할 필요 없이 사용할 수도 있다.On the other hand, if the project file is a .prj file, it is in xml format, but .prj and .dsp can be used without having to create an xml file because they are composed of the same project name in the same directory.
우선, .prj 파일에서 <PRJ_HOME> 태그와 <PRJ_NAME> 태그를 이용하여 프로젝트의 폴더 명과 프로젝트 명을 얻어온다. First, get the project folder name and project name by using the <PRJ_HOME> and <PRJ_NAME> tags in the .prj file.
[ <PRJ_HOME>C: \Trans\jumpse</PRJ_HOME>[<PRJ_HOME> C: \Trans\jumpse </ PRJ_HOME>
<PRJ_NAME>jumpse</PRJ_NAME> ]<PRJ_NAME> jumpse </ PRJ_NAME>]
다음, 폴더명\프로젝트명.dsp 파일이 존재하는 지를 확인하고, .dsp 파일의 풀 패쓰 명을 리턴 한 후, .dsp 파일을 분석하여 소스 목록을 추출한다.Next, check whether the folder name, project name, .dsp file exists, return the full path name of the .dsp file, and analyze the .dsp file to extract the source list.
또한, 프로젝트 파일이 .dsp 파일인 경우의 처리 과정을 살펴보면, "Source="라고 하는 키워드를 이용하여 소스 목록이 있는 라인을 추출하고, "\"을 키워드로 하여 디렉터리와 파일을 분리한다. 여기서, "\"인 경우는 .dsp 파일이 있는 디렉터리와 동일한 디렉터리를 의미한다. 이후, 해당 소스의 풀 패쓰 명을 리턴한다.Also, if the project file is a .dsp file, the process of extracting the line with the source list by using the keyword "Source =" and separating the directory and the file by using "\" as a keyword. Here, "\" means the same directory as the directory where the .dsp file is located. After that, it returns the full path name of the source.
다시 도 1을 참조하면, 전처리기(114)는 BREW와 WIPI_C의 변환 라이브러리를 위한 헤더 파일을 분석하고 처리하는 모듈이다.Referring back to FIG. 1, the
변환 라이브러리를 위한 헤더파일 분석 및 처리는 소스 변환 시 발생하는 플랫폼 별 지원 가능 라이브러리를 분석하여 사용 가능(혹은 사용 불가능) 함수들에 대한 처리를 수행하는 절차로, 헤더파일은 include 파일에 대한 주석처리 및 코멘트를 이용하고 관련 소스는 래퍼(wrapper, 즉 변환 라이브러리)를 지원할 수 있도록 헤더 파일을 추가한다.Header file analysis and processing for the conversion library is a procedure to analyze the available (or unusable) functions by analyzing platform-supportable libraries generated during source conversion, and the header file is commented on the include file. And comments, and the associated source adds a header file to support the wrapper.
WIPI 플랫폼에서는 표준 C 라이브러리 함수 중 일부를 지원한다. 이러한 함 수는 string.h, stdlib.h, stdarg.h, time.h 파일을 include하여 사용한다. 그러나 BREW 플랫폼에서는 표준 C 라이브러리 함수를 지원하지 않기 때문에 사용할 수 없으며, 이와 관련된 헤더 파일을 include 하게 되면 링크 시점에서 에러가 발생하게 되므로 WIPI에서 선언한 헤더 파일을 모두 주석 처리한다.The WIPI platform supports some of the standard C library functions. These functions include the string.h, stdlib.h, stdarg.h, and time.h files. However, the BREW platform does not support standard C library functions, so it cannot be used. If you include the relevant header file, an error occurs at the link point, so all the header files declared by WIPI are commented out.
헤더 파일 분석 및 처리 과정을 설명하자면, WIPI C를 BREW C로 변환하기 위해서는 include 파일의 지원 여부를 판단하고 지원하지 않는 파일들에 대한 처리를 수행해야 하며, 분석 및 처리 절차는 다음과 같다.In order to explain the header file analysis and processing, in order to convert WIPI C to BREW C, it is necessary to determine whether the include file is supported and process the unsupported files. The analysis and processing procedures are as follows.
우선, (비)표준 C 라이브러리 include 파일들에 대한 분석 및 DB 작성을 수행한다. 즉, BREW to WIPI 라이브러리와 WIPI to BREW 라이브러리의 참조 데이터로 작성한다. 이후, 프로젝트 폴더의 대상 파일 목록 분석을 수행하고, 작성한 라이브러리 DB를 통해 WIPI C -> BREW C(혹은 BREW C -> WIPI C, 이하 변환으로 대체)로의 변환 시, DB를 통해 사용 가능 및 불가능 파일을 검사한다. 불가능 include 파일에 대해서는 주석처리 및 코멘트를 추가하고, 래퍼 사용을 위한 헤더 파일("W2BE.h")을 추가한다.First, it analyzes and creates DB for (non) standard C library include files. That is, it is created with reference data of BREW to WIPI library and WIPI to BREW library. Afterwards, the target file list analysis of the project folder is performed, and the files available and impossible through the DB are converted to WIPI C-> BREW C (or BREW C-> WIPI C, replaced by the following transformation) through the library DB created. Check it. Comment out and add comments to the impossible include file, and add a header file ("W2BE.h") to use the wrapper.
소스 변환기(116)는 'BREW to WIPI 변환라이브러리', 'WIPI_C to BREW 변환 라이브러리'를 이용하여 BREW 소스를 WIPI환경에서 구동한 상태로 그리고 WIPI_C를 BREW환경에서 구동 가능한 상태로 변환한다. 또한, 소스 변환기(116)는 WIPI_Java to C++ 변환기를 이용하여 WIPI_Java를 BREW환경에서 구동 가능한 상태로 변화하는 플랫폼간의 소스 변환을 수행하기 위한 모듈이다.The
래퍼는 원본 소스에서 사용되는 API를 실행 대상 환경에 거의 유사한 형태로 동일 기능을 구현한 변환 라이브러리이다. 이를 통해, 브루(BREW) 용으로 작성된 소스코드를 변환 래퍼와 함께 빌드(build)하여, 위피(WIPI)가 탑재된 단말에서 실행될 수 있도록 지원한다(혹은 WIPI 소스 코드를 BREW 단말에서 실행 될 수 있도록 지원). 다만 원본 환경에서 제공되는 기능이 변환 대상환경에서 제공되지 않는 항목은 포함하지 않는다.A wrapper is a transformation library that implements the same functionality in a form that is similar to the environment in which the API used in the original source is executed. Through this, the source code written for BREW can be built with the conversion wrapper so that it can be executed on the terminal equipped with WiPI (or WIPI source code can be executed on the BREW terminal). support). However, the items provided in the original environment are not included in the conversion target environment.
이와 같은 이유로, WIPI 플랫폼에서 제공하는 모든 API들을 BREW 플랫폼에서 변환 라이브러리로 구현 (또는 BREW 플랫폼에서 제공하는 모든 API들을 WIPI 플랫폼에서 변환 라이브러리로 구현)하는 것은 불가능하며, 따라서 소스 변환기(116)에서는 이러한 변환이 불가능한 API에 대한 처리가 요구될 뿐만 아니라 플랫폼의 특성에 따라 지원해야 하는 기능이 요구된다.For this reason, it is not possible to implement all APIs provided by the WIPI platform as a conversion library on the BREW platform (or implement all APIs provided by the BREW platform as a conversion library on the WIPI platform), and thus, in the
이러한 기능 중에 대표적인 것이 전역변수에 대한 처리이다.One such feature is the handling of global variables.
도 6은 본 발명의 일 실시예에 따른 컴파일러부의 소스 변환기의 처리 과정을 도시한 도면이다.6 is a flowchart illustrating a process of a source converter of a compiler unit according to an embodiment of the present invention.
도 6을 참조하면, 단계 610에서 소스 변환기(116)의 래퍼 처리모듈은 .csv 파일을 이용하여 래퍼의 토큰을 등록하고, 래퍼 지원 및 지원 불가능 테이블을 생성한다. 래퍼 치리모듈은 지원 불가 API가 함수의 조건절(if, switch 등)이나 루프절(for, while 등)안에 위치한 경우 주석 처리에 대한 범위를 설정하고, 사용된 래퍼 소스 목록을 생성한다.Referring to FIG. 6, in
변환종류가 위피에서 브루로의 변환인 경우, 단계 620에서 소스 변환기(116) 의 전역변수 처리모듈은 Define, extern, struct 등의 전역변수 처리 토큰을 등록하고, 전역변수 분석 및 전역변수에 대한 블록을 정의한다. 또한, 전역변수 처리모듈은 전역변수 변환을 위한 중간 단계의 파일을 생성하고(예를 들어, .tmp1, .tmp2 등), 전역변수 블록을 주석 처리한다. 이후 단계 640으로 진행된다.If the conversion type is Wipy to Brew, in
만일, 변환종류가 브루에서 위피로의 변환인 경우, 단계 630에서 소스 변환기(116)의 PRJ 생성모듈은 프로젝트 환경을 분석하여 프로젝트 환경 값 및 Xml 기반의 .prj 파일을 생성한다.If the conversion type is Brew to Wipy, in
단계 640에서 소스 변환기(116)의 DSP 생성모듈은 dsp 환경 분석 및 환경 값을 생성하고, 변환 소스 및 래퍼 리스트 정보를 생성한다. 또한, DSP 생성모듈은 환경 값 및 리스트 정보를 이용하여 .dsp 파일을 생성한다.In
이후, 단계 650에서 소스 변환기(116)의 변환 처리모듈은 원본 소스에 헤더 처리, 전역변수 처리, 변환불가 항목에 대한 처리가 완료된 변환 소스 및 변환 리포트를 생성한다.Subsequently, in
여기서, 소스 변환 시 관련 API들에 대한 변환 라이브러리 대체를 위해 가능한 API들의 분석 및 처리가 수행되어야 한다. 우선, 소스 변환기(116)는 프로젝트 폴더의 대상 파일들에 대한 목록을 분석하고, 변환 라이브러리 지원가능 API들을 분석하고 DB를 작성한다. 즉, 소스 변환기(116)는 BREW to WIPI 라이브러리와 WIPI to BREW 라이브러리의 참조 데이터로 작성하며 이는 추후 업데이트 가능하다. 또한, 소스 변환기(116)는 변환 소스 파일의 API 및 관련 변수를 분석하고, 불가능 API 및 변수들에 대한 주석처리 및 코멘트 추가를 수행한다.In this case, analysis and processing of possible APIs should be performed for replacing a conversion library for relevant APIs at the time of source conversion. First,
래퍼 라이브러리 API 검사 및 처리에 따른 하나의 예를 들면, 변환 전 WIPI 소스가 "... M_Int32 currentMode = MC_imGetCurrentMode(); ..."인 경우, 하기와 같은 BREW 소스로 변환될 수 있다.For example, according to the wrapper library API inspection and processing, when the WIPI source before conversion is "... M_Int32 currentMode = MC_imGetCurrentMode (); ...", it may be converted into the following BREW source.
"..."...
//WC2B - 사용 불가능한 API// WC2B-Disabled API
//M_Int32 currentMode = MC_imGetCurrentMode(); ..."// M_Int32 currentMode = MC_imGetCurrentMode (); ... "
변환 처리모듈은 WIPI 플랫폼과 달리 BREW 플랫폼은 전역 변수 지원을 허용하지 않는다. 이는 전역 변수를 사용하는 WIPI 플랫폼 기반의 소스를 BREW 플랫폼 기반의 소스로 변환 시, 문제가 발생 될 수 있다. Unlike the WIPI platform, the transform processing module does not allow global variable support. This can cause problems when converting a WIPI platform based source that uses global variables into a BREW platform based source.
따라서, 전역 변수 처리를 통해 WIPI 소스에 사용된 전역변수들을 사전에 정의된 구조체에 설정하고 BREW 어플리케이션에서 접근할 수 있는 방법을 제공해야 하며 사전에 정의된 함수에 의해 초기화시켜야 한다.Therefore, through global variable processing, global variables used in WIPI source should be set in a predefined structure, provide a way to access from BREW application, and must be initialized by predefined function.
전역 변수를 처리하기 위해서는 변환을 위한 WIPI 소스의 전역 변수를 분석하고 미리 정의한 구조체 및 함수에 관련 변수를 추가하고 변환 소스에 반영해야 한다.To handle global variables, you must analyze the global variables of the WIPI source for conversion, add relevant variables to predefined structures and functions, and reflect them in the conversion source.
따라서, 소스 변환기(116)의 전역변수 처리모듈은 WIPI 프로젝트 폴더의 대상 파일들을 분석하여 전역 변수 목록을 작성하고, 전역 변수 대체를 위한 사전 정의 함수에 변수를 등록하고 변환 소스에 추가시킨다. 즉, 사전에 정의한 함수는 W2Bgen.c 및 W2Bgen.h 파일을 생성하여 전역 변수를 등록하여 초기화될 수 있다. 또한, 전역변수 처리모듈은 변환을 위한 소스의 전역 변수를 대체하고 코멘트를 추가한다.Therefore, the global variable processing module of the
도 1에 도시된 호환 장치(100)의 변환 라이브러리부(130)는 상기한 바와 같은 변환 라이브러리들을 포함한다. 변환 라이브러리(즉 래퍼)는 원본 콘텐츠(Contents)가 원본 플랫폼 환경에서 제공받던 런타임(Runtime) 환경과 플랫폼에서 제공하는 API를 대상 플랫폼 환경에서 에뮬레이션 가능하게 하는 기능으로, 도면에도 도시된 바와 같이, BREW to WIPI, WIPI to BREW 및 C++ to C로 크게 세가지 타입(type)의 기능이 요구된다.The
도 1에는 도시되지 않았으나, 변환 라이브러리부(130)는 이벤트 처리기 및 API 래퍼를 더 포함할 수 있다. 변환 라이브러리부(130)의 이벤트 처리기는 각 플랫폼의 실행방식이나 흐름제어가 각각의 특성을 가지고 있으므로 원본 소스코드의 구성을 대상 환경에서 원활하게 실행되도록 구성하기 위한 것으로 최소한의 영역을 가진다. 또한, API 래퍼는 각 플랫폼에서 제공되는 API를 대상 환경에서 사용하기 위한 라이브러리로 동일 역할의 기능으로 대응시키거나 요구되는 역할을 수행하도록 추가적으로 작성되는 라이브러리이다.Although not shown in FIG. 1, the
이벤트 처리기는 각 플랫폼의 실행방식이나 흐름제어가 서로 다르므로 원본 소스 코드의 구성을 대상 환경에서 원활하게 실행되도록 이벤트를 구성하는 역할을 하는 모듈로서 WIPI 또는 BREW의 플랫폼에서 이벤트가 발생한 경우 이를 이벤트 처리기인 Event Dispatcher가 전달 받아 이를 다시 어플리케이션에 전달함으로써 이 벤트에 대한 처리가 가능하도록 구성한다.Event handler is a module that composes the event to execute the configuration of source source code smoothly in the target environment because each platform's execution method or flow control is different. When an event occurs in WIPI or BREW platform, it is an event handler. Event Dispatcher receives and delivers it back to the application to configure event handling.
이벤트 처리기는 WIPI용 이벤트 처리기와 BREW용 이벤트 처리기로 나눌 수 있다. WIPI용 이벤트 처리기는 WIPI 플랫폼에서 발생하는 이벤트를 받아서 BREW 어플리케이션(Application)에서 사용할 수 있는 이벤트로 변환하여 전달한다. WIPI 플랫폼에서 발생하는 기본적인 이벤트는 startClet(시작), pauseClet(일지 정지), resumeClet(다시 시작), destroyClet(종료), paintClet (화면 갱신)이며 각 이벤트를 BREW 어플리케이션에서 처리할 수 있는 이벤트로 변환하여 전달한다.Event handlers can be divided into event handlers for WIPI and event handlers for BREW. The event handler for WIPI receives events from the WIPI platform and converts them into events that can be used by BREW applications. The basic events that occur on the WIPI platform are startClet, pauseClet, resumeClet, restart, destroyClet, and paintClet (refresh), which translate each event into an event that can be handled by the BREW application. To pass.
도 7은 본 발명의 일 실시예에 따른 호환 장치의 이벤트 처리기에서의 이벤트 처리의 일례를 도시한 도면이고 도 8은 본 발명의 일 실시예에 따른 BREW, WIPI-C, WIPI-Java의 변화율을 예시한 도면이다.FIG. 7 illustrates an example of event processing in an event handler of a compatible device according to an embodiment of the present invention, and FIG. 8 illustrates changes in BREW, WIPI-C, and WIPI-Java according to an embodiment of the present invention. The illustrated figure.
도 7을 참조하면, WIPI 플랫폼에서 어플리케이션 실행 시에 발생하는 startClet 이벤트를 받아서 BREW에서 사용할 수 있는 EVT_APP_START를 변환하여 전달 하기 위해 IShell, IModule, HelperFuncs, IApplet, IDisplay 등의 기본 이벤트를 생성하고 이벤트를 받을 Callback 함수를 등록하여 BREW 어플리케이션으로 EVT_APP_START를 전달한다Referring to FIG. 7, a basic event such as IShell, IModule, HelperFuncs, IApplet, IDisplay, etc. is generated to receive and start an event by receiving a startClet event generated when an application is executed in the WIPI platform and converting and delivering EVT_APP_START that can be used in BREW. Register callback function and send EVT_APP_START to BREW application
변환 라이브러리부(130)의 API 래퍼는 각 플랫폼에서 사용되는 API를 다른 환경에서 사용하기 위한 라이브러리로 동일 역할의 기능으로 대응시키거나 요구되는 역할을 수행하도록 추가적으로 작성되는 라이브러리이다. 예를 들면, BREW의 어플리케이션이 WIPI 플랫폼 상에서 동작되도록 하기 위해서 실행 시에 참조하게 될 WIPI API로 작성된 BREW API와 동일한 이름을 갖는 라이브러리를 의미한다.The API wrapper of the
API 래퍼 라이브러리는 BREW의 경우 인터페이스 단위로, WIPI-C의 경우 기능 단위로, WIPI-Java의 경우에는 클래스 단위로 작성된다.API wrapper libraries are written in interface units for BREW, in functional units for WIPI-C, and in class units for WIPI-Java.
도 8에 전체 BREW, WIPI-C, WIPI-Java에 대한 변환율이 예시되어 있다.The conversion rates for total BREW, WIPI-C, and WIPI-Java are illustrated in FIG.
다시 도 1을 참조하면, 변환 라이브러리부(130)의 BREW to WIPI 변환 라이브러리(132)는 BREW 어플리케이션을 WIPI 플랫폼에서 동작 가능하도록 환경을 제공해주는 라이브러리를 의미한다. BREW to WIPI 변환 라이브러리(132)는 BREW에서 사용하는 각 API를 WIPI의 API로 구현한다. 따라서 WIPI 플랫폼 상에서 또는 SDK(Software Development Kit)에서 지원하지 않는 기능의 경우에는 변환 라이브러리를 작성할 수 없으며, 이에 대한 제약 사항을 갖는다.Referring back to FIG. 1, the BREW to
WIPI to BREW 변환 라이브러리(134)는 WIPI-C 어플리케이션을 BREW 플랫폼에서 동작 가능하도록 환경을 제공해주는 라이브러리를 의미한다. 따라서 WIPI to BREW 변환 라이브러리(134)는 WIPI에서 사용하는 각 API를 BREW의 API로 구현한다. 따라서 BREW 플랫폼 상에서 또는 SDK에서 지원하지 않는 기능의 경우에는 Wrapper 라이브러리를 작성할 수 없으며, 이에 대한 제약 사항을 갖는다.The WIPI to
C++ to C 변환 라이브러리(136)는 WIPI Java 어플리케이션을 BREW 플랫폼에서 동작 가능하도록 환경을 제공해주는 라이브러리를 의미한다. 따라서 C++ to C 변환 라이브러리(136)는 WIPI에서 사용하는 각 API를 BREW의 API로 구현한다. 따라서 BREW 플랫폼 상에서 또는 SDK에서 지원하지 않는 기능의 경우에는 변환 라이브러리를 작성할 수 없으며, 이에 대한 제약 사항을 갖는다.The C ++ to
호환 장치(100)의 리소스 처리부(150)는 이미지 변환기(152) 및 음원 변환기(154)를 포함할 수 있다.The
이미지 변환기(152)는 BREW 또는 WIPI에서 사용한 이미지를 다른 플랫폼에서 사용하기 위해서 해당 플랫폼 또는 해당 플랫폼의 단말기 사양에 맞도록 이미지 속성의 일부를 자동으로 변환하도록 기능한다. 이러한 이미지 변환기(152)가 갖는 기능은 이미지 포맷의 변환, 이미지의 크기 변환, 이미지의 색상 변환 등 3가지이다.The
이미지 포맷의 변환은, WIPI to BREW의 경우 JPEG, PNG(애니메이션 제외), BMP 모두 BMP로 변환할 수 있으며, BREW to WIPI의 경우 BCI 포맷, SIS 포맷을 제외하고는 모든 형태로의 변환이 가능하다. BCI의 경우에는 퀄컴의 자체 포맷이며, SIS의 경우 네오엠텔의 자체 포맷을 사용하기 때문에 해당 포맷에 대해서 임의로 변환할 수 없어 자동 변환에 대해서는 지원할 수 없으며, 해당 이미지 포맷의 경우 다른 툴을 이용하여 BMP, PNG 등의 포맷으로 변경한 후에 사용할 수 있다. The image format can be converted to BMP for JPEG, PNG (except animation) and BMP for WIPI to BREW, and for all formats except BCI format and SIS format for BREW to WIPI. . In the case of BCI, it is Qualcomm's own format, and in case of SIS, it uses NeoMtel's own format, so it cannot be converted arbitrarily and cannot support automatic conversion.In the case of the image format, BMP, Can be used after changing to a format such as PNG.
이미지 포맷에 대한 변환은 변환기 차원에서의 변환을 의미하며, 실질적으로 단말기 상에서 구동이 가능한지의 여부는 JPEG과 GIF의 경우 해당 단말기에 JPEG과 GIF에 대한 디코더가 설치되어 있는 경우에 한해서 동작이 가능하게 된다.Conversion to an image format means conversion at the converter level, and whether or not it can be operated on a terminal is practically possible only when a decoder for JPEG and GIF is installed in the terminal in the case of JPEG and GIF. do.
이미지 크기의 변환은, 원본 이미지의 크기를 변환하고자 하는 크기를 지정한 대로 변환하는 것을 의미한다. 원본 크기 대비 축소/확대 모두 지원 가능하지만 작은 이미지를 큰 이미지로 변환 시 변환 비율에 따라 이미지가 선명하게 표현되지 못할 수 있다. Conversion of the image size means that the size of the original image is converted as specified. It can support both reduction and enlargement compared to the original size, but when converting a small image to a large image, the image may not be clearly displayed depending on the conversion ratio.
이미지 색상의 변환은, 고해상도 이미지를 저해상도 이미지로 변환하는 것을 의미하며, 256칼라의 경우 고정 팔레트를 사용하는데 이 고정 팔레트는 제조사마다 조금씩 다른 팔레트를 사용하고 있으므로 변환이 제대로 이루어지기 위해서는 해당 고정 팔레트가 있어야만 한다.Image color conversion means converting a high-resolution image into a low resolution image. For 256 colors, a fixed palette is used, which uses a slightly different palette for each manufacturer. Must be present
음원 변환기(154)는 단말기에서 사용할 수 있는 포맷으로 음원을 변환해 주도록 기능한다. 단말기에서 사용되는 포맷은 예를 들어 MMF일 수 있다. 음원 변환의 경우에는 WAVE to MMF, MIDI to MMF, MP3 to MMF만을 지원한다. MP3의 경우에는 먼저 MP3를 WAVE 파일로 변환한 후에 MMF로 변환한다. WAVE to MMF의 경우에는 야마하에서 제공하는 WAVE to MMF 변환 라이브러리를 제공 받아 개발 하였으며, 따라서 WAVE to MMF에 대한 변환 제약 사항은 야마하에서 제공하는 라이브러리에 대한 제약 사항과 동일하게 된다.The
도 9는 본 발명의 일 실시예에 따른 호환 장치가 입력된 프로젝트 파일을 분석하여 목표한 플랫폼에 상응하는 어플리케이션을 생성하는 과정을 도시한 도면이다.9 is a diagram illustrating a process of generating an application corresponding to a target platform by analyzing a project file input by a compatible device according to an embodiment of the present invention.
도 9를 참조하면, 호환 장치(100)는 입력된 프로젝트 파일을 분석하여 포함된 원본 소스를 추출한다(단계 910). 즉, 전술한 바와 같이, 호환 장치(100)의 소스 분석기(112)는 .dsp 파일을 추출 및 분석하여, 프로젝트 파일에 포함된 원본 소스를 추출한다. Referring to FIG. 9, the
호환 장치(100)는 추출된 원본 소스에 따른 플랫폼 및 변환하고자 하는 목표 플랫폼을 인식한다(단계 920). 이후, 호환 장치(100)는 원본 소스에 따른 변환 라 이브러리를 위한 헤더 파일을 분석하여 해당 플랫폼 별 지원 가능한 라이브러리를 분석하며, 헤더 파일의 추가가 필요한 경우 이를 처리한다(단계 930).The
이후, 호환 장치(100)는 상응하는 래퍼(즉, 변환 라이브러리)를 이용하여 원본 소스가 변환된 변환 소스를 생성한다(단계 940). 즉, 호환 장치(100)는 BREW to WIPI 또는 WIPI to BREW 등에 따른 래퍼를 이용하여 원본 소스에 헤더 처리, 전역변수 처리 및 변환불가 항목에 대한 처리가 완료된 변환 소스를 생성한다.Thereafter, the
호환 장치(100)는 프로젝트 파일에 포함된 리소스(즉, 이미지 및/또는 음원 데이터)를 상응하는 플랫폼에 따른 포맷으로 변환한다(단계 950). 리소스의 변환 방법은 상술하였으므로 상세한 설명은 생략한다. 여기서, 단계 950은 상기한 모든 단계들에 우선하여 수행될 수도 있으며, 만일 리소스가 포함되지 않은 경우 수행되지 않을 수도 있다.The
호환 장치(100)는 변환 소스를 컴파일링하여 포맷이 변환된 이미지/음원 데이터를 포함하는 목표 플랫폼에 따른 어플리케이션을 생성한다(단계 960).The
따라서, 호환 장치(100)는 BREW 또는 WIPI-C, WIPI-Java로 작성된 어플리케이션을 WIPI나 BREW 플랫폼에서도 구동될 수 있도록 변환할 수 있다.Accordingly, the
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드디스크, 광자기디스크 등)에 저장될 수 있다.The method of the present invention as described above may be implemented in a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.).
본 발명은 상기한 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.The present invention is not limited to the above embodiments, and many variations are possible by those skilled in the art within the spirit of the present invention.
이상에서 상술한 바와 같이 본 발명에 따르면, 브루 및 위피 중 어느 하나로 제작된 어플리케이션의 소스 및 리소스를 이용하여 그 중 다른 플랫폼에 따른 어플리케이션 소스 및 리소스를 생성하는 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환 방법 및 장치를 제공할 수 있다.As described above, according to the present invention, the application conversion for providing compatibility between the brew and the wiki to generate an application source and resources according to the other platform using the source and the resource of the application produced by any one of the brew and the ppi A method and apparatus can be provided.
또한, 본 발명은 브루에 따른 어플리케이션 또는 위피에 따른 어플리케이션 중 어느 하나를 이용하여 다른 하나의 플랫폼에 따른 어플리케이션을 자동으로 생성할 수 있어, 기존과 같이 개발자가 오랜 시간 동안 수작업을 수행할 필요가 없어 개발 효율성을 제공할 수 있는 효과가 있다.In addition, the present invention can automatically generate an application according to the other platform using any one of the application according to the brew or the application according to the Wipi, there is no need for the developer to perform a manual operation for a long time as before There is an effect that can provide development efficiency.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to a preferred embodiment of the present invention, those skilled in the art that various modifications of the present invention without departing from the spirit and scope of the invention described in the claims below And can be changed.
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060120166A KR100878044B1 (en) | 2006-11-30 | 2006-11-30 | Application translating method for providing compatible BREW and WIPI and device thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060120166A KR100878044B1 (en) | 2006-11-30 | 2006-11-30 | Application translating method for providing compatible BREW and WIPI and device thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080049513A KR20080049513A (en) | 2008-06-04 |
KR100878044B1 true KR100878044B1 (en) | 2009-01-13 |
Family
ID=39805283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060120166A KR100878044B1 (en) | 2006-11-30 | 2006-11-30 | Application translating method for providing compatible BREW and WIPI and device thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100878044B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101120614B1 (en) * | 2010-01-06 | 2012-03-20 | 인크로스 주식회사 | Method for processing application |
WO2017135764A1 (en) * | 2016-02-03 | 2017-08-10 | 삼성전자 주식회사 | Electronic device for performing application-related interoperation, and method therefor |
CN111538488B (en) * | 2020-04-17 | 2023-05-02 | 荏原冷热系统(中国)有限公司 | Method and device for generating single-chip microcomputer driver |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02642A (en) * | 1987-05-22 | 1990-01-05 | Bayer Ag | Vinyl copolymer having graft polycarbonate chain, and its preparation and use |
KR20070052038A (en) * | 2005-11-16 | 2007-05-21 | 주식회사 케이티프리텔 | Method for providing application program interface in open mobile business supporting system |
-
2006
- 2006-11-30 KR KR1020060120166A patent/KR100878044B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02642A (en) * | 1987-05-22 | 1990-01-05 | Bayer Ag | Vinyl copolymer having graft polycarbonate chain, and its preparation and use |
KR20070052038A (en) * | 2005-11-16 | 2007-05-21 | 주식회사 케이티프리텔 | Method for providing application program interface in open mobile business supporting system |
Non-Patent Citations (1)
Title |
---|
한국콘텐츠학회 2006 추계 종합학술대회 논문집(강 경보 등 공저, "이기종 모바일 플랫폼 간 어플리케이션의 상호 호환을 위한 변환 솔루션 구현", 제4권, 제2호)* |
Also Published As
Publication number | Publication date |
---|---|
KR20080049513A (en) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
EP2524306B1 (en) | Execution of dynamic languages via metadata extraction | |
Young | Using aspectj to build a software product line for mobile devices | |
CN103218294B (en) | A kind of adjustment method of embedded system, debugging conversion equipment and system | |
US20150242194A1 (en) | System for Translating Diverse Programming Languages | |
US8762963B2 (en) | Translation of programming code | |
JP2005018777A (en) | Common query runtime system and application programming interface | |
US20160321055A1 (en) | Mapping between local and remote for seamless build and design time experience | |
CN111045683A (en) | Applet code compiling method, device, equipment and medium | |
CN101645009A (en) | Web service integrated development system and method | |
CN111813381A (en) | Method, device, medium and electronic equipment for generating executable program in cross-platform mode | |
CN101185116A (en) | Using strong data types to express speech recognition grammars in software programs | |
CN111399840A (en) | Module development method and device | |
CN111427583A (en) | Component compiling method and device, electronic equipment and computer readable storage medium | |
CN111913741A (en) | Object interception method, device, medium and electronic equipment | |
KR100878044B1 (en) | Application translating method for providing compatible BREW and WIPI and device thereof | |
CN110109671A (en) | A kind of webpack label sizes pattern conversion method and device | |
CN109284222B (en) | Software unit, project testing method, device and equipment in data processing system | |
KR20040077410A (en) | System and method for defining and using subclasses declaratively within markup | |
CN110941443B (en) | Method and device for modifying file name in SDK (software development kit) and electronic equipment | |
CN113641594B (en) | Cross-terminal automatic testing method and related device | |
CN113867728A (en) | Fused interface response data applied to third-generation modern Web front end and development framework based on components | |
KR20090122703A (en) | Server and method for providing converting contents | |
CN112162776B (en) | Dependency relationship acquisition method and device | |
US20060010452A1 (en) | Software application program interface method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121228 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140102 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |