KR101249735B1 - 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체 - Google Patents

범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체 Download PDF

Info

Publication number
KR101249735B1
KR101249735B1 KR1020110032475A KR20110032475A KR101249735B1 KR 101249735 B1 KR101249735 B1 KR 101249735B1 KR 1020110032475 A KR1020110032475 A KR 1020110032475A KR 20110032475 A KR20110032475 A KR 20110032475A KR 101249735 B1 KR101249735 B1 KR 101249735B1
Authority
KR
South Korea
Prior art keywords
android
application
general
operating system
framework
Prior art date
Application number
KR1020110032475A
Other languages
English (en)
Other versions
KR20120113160A (ko
Inventor
류혁곤
한상진
Original Assignee
주식회사 인프라웨어테크놀러지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인프라웨어테크놀러지 filed Critical 주식회사 인프라웨어테크놀러지
Priority to PCT/KR2012/000642 priority Critical patent/WO2012138046A1/ko
Publication of KR20120113160A publication Critical patent/KR20120113160A/ko
Application granted granted Critical
Publication of KR101249735B1 publication Critical patent/KR101249735B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 기술에 관한 것이다. 특히, 본 발명은 구글 안드로이드 플랫폼이 아닌 범용 운영체제가 설치된 통상의 개인용컴퓨터나 키오스크 단말장치 등에서 웹 브라우저의 플러그인(plug-in) 형태나 일반 PC 어플리케이션 형태로 안드로이드 어플리케이션을 실행할 수 있는 기술을 개시한다. 본 발명에 따르면, 안드로이드 어플리케이션을 범용 운영체제가 설치된 개인용컴퓨터나 키오스크 장치 등에서도 간단한 절차를 통해서 쉽게 한번 실행시켜 볼 수 있는 장점이 있다. 또한, 안드로이드 어플리케이션을 구매하고자 하는 구매자는 미리 개인용컴퓨터나 키오스크 단말장치에서 한번 사용해보고 구매 여부를 판단할 수 있어, 정확한 구매결정을 할 수 있게 되어 안드로이드 어플리케이션을 판매하는 오픈 마켓의 신뢰성을 높일 수 있고, 이를 통해 안드로이드 어플리케이션 시장의 활성화를 달성할 수 있다.

Description

범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체{Device and method for executing Android applications on general purpose operating systems, and computer readable recording medium for the same}
본 발명은 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 기술에 관한 것이다. 특히, 본 발명은 구글 안드로이드 플랫폼이 아닌 범용 운영체제가 설치된 통상의 개인용컴퓨터나 키오스크 단말장치 등에서 웹 브라우저의 플러그인(plug-in) 형태나 일반 PC 어플리케이션 형태로 안드로이드 어플리케이션을 실행할 수 있는 기술을 개시한다.
이를 위하여, 본 발명은 안드로이드 어플리케이션을 윈도우즈나 리눅스 등의 개인용컴퓨터 환경에서 실행시킬 수 있도록 이들 운영체제에 맞게 포팅된 달빅 VM(Dalvik VM)과 안드로이드 어플리케이션 프레임워크(Android Application Framework)를 제공하며, 안드로이드 어플리케이션 프레임워크가 동작하는데 필요한 네이티브 라이브러리를 범용 운영체제 기반으로 포팅하여 제공한다. 뿐만 아니라, 본 발명은 사용자의 사용 편의성을 높이기 위해서, 웹 브라우저 상에서 바로 실행시킬 수 있도록 액티브액스(ActiveX)와 NPAPI같은 개별 브라우저가 요구하는 플러그인 형태로도 제공한다.
구글 안드로이드 플랫폼은 구글(Google) 사가 주도하는 OHA(Open Handset Alliance)에서 공개한 소프트웨어 스택으로, 리눅스(Linux) 커널, 가상머신(Virtual Machine: VM), 프레임워크(Framework), 어플리케이션(Applicatoin)을 모두 포함하는 소프트웨어 패키지이다. 주로 해상도 800x480의 WVGA와 같은 비교적 큰 크기의 디스플레이와 터치 스크린 입력을 제공하는 고사양의 단말기(즉, 스마트폰)에만 적용될 수 있다.
안드로이드 어플리케이션은 일반적으로는 이러한 안드로이드 플랫폼 상에서만 구동이 가능하다. 하지만, 안드로이드 어플리케이션을 일반 범용 운영체제가 설치된 개인용컴퓨터(PC)에서 실행시키는 것이 완전히 불가능한 것은 아니다. 종래에도 안드로이드 에뮬레이터가 제공되었으며, 안드로이드 에뮬레이터가 개인용컴퓨터를 구글 안드로이드 플랫폼인 것처럼 에뮬레이션해주면, 안드로이드 플랫폼 전용으로 개발된 안드로이드 어플리케이션을 일반 개인용컴퓨터에서 구동하는 것이 가능하였다.
그러나, 안드로이드 에뮬레이터는 단말장치에 설치된 안드로이드 소프트웨어 스택 전체를 프로세서 수준에서 에뮬레이션하는 것이어서 재부팅 등과 같은 초기 로딩 시간이 필요하며, 그에 따라 상당한 작업을 요구한다. 안드로이드 에뮬레이터는 프로세서(CPU)를 에뮬레이션하는 구조로 되어 있어, 단말장치에 들어가는 모든 모듈에 대한 초기화 과정을 거쳐야 하고 상이한 방식의 기계어를 에뮬레이션해서 실행시켜야 하므로 성능 및 편의성이 많이 떨어진다.
따라서, 종래로 사용되어온 안드로이드 에뮬레이터는 어떠한 안드로이드 어플리케이션을 사용자가 간단하게 한번 실행해 보는 용도로는 그다지 적절하지 못한 방식이었다. 그에 따라 구글 안드로이드 플랫폼이 아닌 범용 운영체제가 설치된 개인용컴퓨터나 키오스크 단말장치 등에서 안드로이드 어플리케이션을 간편하게 실행하기 위한 기술이 관련 업계에 요구되어 왔다.
본 발명의 목적은 안드로이드 어플리케이션을 구글 안드로이드 플랫폼이 아닌 범용 운영체제가 설치된 통상의 개인용컴퓨터나 키오스크 단말장치 등에서 웹 브라우저의 플러그인(plug-in) 형태나 일반 PC 어플리케이션 형태로 실행될 수 있도록 하는 기술을 제공하는 것이다.
이를 위하여, 본 발명은 안드로이드 어플리케이션을 윈도우즈나 리눅스 등의 개인용컴퓨터 환경에서 실행시킬 수 있도록 이들 운영체제에 맞게 포팅된 달빅 VM과 안드로이드 어플리케이션 프레임워크를 제공하며, 안드로이드 어플리케이션 프레임워크가 동작하는데 필요한 네이티브 라이브러리를 범용 운영체제 기반으로 포팅하여 제공한다. 뿐만 아니라, 본 발명은 사용자의 사용 편의성을 높이기 위해서, 웹 브라우저 상에서 바로 실행시킬 수 있도록 액티브액스와 NPAPI같은 개별 브라우저가 요구하는 플러그인 형태로도 제공한다.
이러한 목적을 달성하기 위하여, 본 발명에 따라 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 단말장치는, 범용 운영체제에 의존적인 코드로 단말장치의 하드웨어를 관리하는 포팅 API를 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 안드로이드 프레임워크를 요청받으면 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하는 PAF 콤포넌트부(200); 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거를 관리하고, 단말장치 내에서 안드로이드 어플리케이션에 대한 실행 명령이 제공되면 PAF 콤포넌트부로 요청하여 안드로이드 프레임워크를 실시간으로 제공받아 사용함으로써, 위 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, 안드로이드 프레임워크를 활용하여 안드로이드 어플리케이션을 범용 운영체제의 대기화면을 거치지 않고 직접 브라우저에서 실행시키는 안드로이드 어플리케이션 구동부(100);를 포함하여 구성된다.
본 발명에 따라 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 단말장치에서, 안드로이드 어플리케이션 구동부(100)는, 안드로이드 어플리케이션의 설치 및 제거를 관리하는 어플리케이션 제어관리부(110); 어플리케이션 제어관리부를 통해 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, PAF 콤포넌트부로 안드로이드 프레임워크를 요청하여 실시간으로 제공받아 이를 활용하여 안드로이드 어플리케이션을 범용 운영체제의 대기화면을 거치지 않고 안드로이드 프레임워크를 활용하여 직접 브라우저에서 실행시키는 어플리케이션 런처부(120);를 포함하여 구성된다.
또한, 본 발명에 따라 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 단말장치에서, PAF 콤포넌트부(200)는 범용 운영체제(300)와 안드로이드 어플리케이션 구동부(100)를 매개하기 위하여, 안드로이드 어플리케이션의 실행에 필요한 자바 API를 제공하는 코어 클래스 라이브러리 모듈(211)과 클래스 라이브러리를 제공하는 안드로이드 프레임워크 모듈(212)을 구비하는 클래스 라이브러리 계층부(210); 범용 운영체제에 의존적인 코드를 활용하여 단말장치의 하드웨어를 관리하기 위한 포팅 API를 제공하는 포팅 계층부(230); 클래스 라이브러리와 자바 API를 통한 안드로이드 어플리케이션 실행시 포팅 계층부에서 제공하는 포팅 API를 통해 하드웨어 리소스를 사용하며, 플랫폼 독립형 모듈인 쓰레드 관리 모듈, 동적 라이브러리 관리 모듈, 외부 함수 인터페이스, 동기화 모듈, 메모리 관리 모듈을 이용하여, 안드로이드 어플리케이션을 범용 운영체제 상에서 실행되도록 하는 가상머신 모듈(221)과, 안드로이드 프레임워크 모듈의 클래스 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리 모듈(222)을 구비하는 네이티브 라이브러리 계층부(220);를 포함하여 구성된다.
이때, 가상머신 모듈(221)은 리눅스 의존적인 모듈을 제거하고 범용 운영체제(300)에서 제공하지 않는 모듈로서 쓰레드 관리 모듈(pthread), 동적 라이브러리 관리 모듈(shared object, DLL), 외부 함수 인터페이스(FFI: Foreign Function Interface), 동기화 모듈, 메모리 관리 모듈의 적어도 하나 이상을 추가 재구성하는 것이 바람직하다. 또한, 안드로이드 어플리케이션 구동부(100)는 PC 어플리케이션 또는 브라우저 플러그인으로 구성된다.
본 발명에 따라 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 방법은, (a) 범용 운영체제에 의존적인 코드로 단말장치의 하드웨어를 관리하는 포팅 API를 마련하는 단계; (b) 포팅 API를 사용하여 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 마련하는 단계; (c) 안드로이드 어플리케이션에 대한 조작 명령을 제공받는 단계; (d) 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거에 대한 관리를 실행하는 단계; (e) 위 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받는 단계; (f) 안드로이드 프레임워크를 실시간으로 동적 로딩하는 단계; (g) 위 동적으로 로딩된 안드로이드 프레임워크를 활용하여 안드로이드 어플리케이션을 직접 브라우저에서 실행하는 단계;를 포함하여 구성된다.
본 발명에 따른 컴퓨터로 판독가능한 기록매체는, 단말장치의 하드웨어를 관리하는 포팅 API를 범용 운영체제에 의존적인 코드로 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 안드로이드 프레임워크에 대한 요청을 접수하면 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하도록 동작하는 PAF 콤포넌트부(200)와 연동함으로써 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 프로그램을 기록한 것으로서, 안드로이드 어플리케이션의 설치 및 제거를 관리하는 어플리케이션 제어관리 수단; 어플리케이션 제어관리 수단을 통해 단말장치에 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, PAF 콤포넌트부로 안드로이드 프레임워크를 요청하여 실시간으로 제공받아 이를 활용하여 안드로이드 어플리케이션을 범용 운영체제의 대기화면을 거치지 않고 안드로이드 프레임워크를 활용하여 직접 브라우저에서 실행시키는 어플리케이션 런처 수단;을 포함하여 이루어진 프로그램을 기록한 것이다.
본 발명에 따른 컴퓨터로 판독가능한 기록매체는, 단말장치의 하드웨어를 관리하는 포팅 API를 범용 운영체제에 의존적인 코드로 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 안드로이드 프레임워크에 대한 요청을 접수하면 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하도록 동작하는 PAF 콤포넌트부(200)와 연동함으로써 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 프로그램을 기록한 것으로서, (h) 안드로이드 어플리케이션에 대한 조작 입력을 제공받는 단계; (i) 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거에 대한 관리를 실행하는 단계; (j) 위 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받는 단계; (k) PAF 콤포넌트부(200)로 안드로이드 프레임워크를 요청하는 단계; (l) PAF 콤포넌트부(200)로부터 안드로이드 프레임워크를 실시간으로 제공받는 단계; (m) 안드로이드 프레임워크를 활용하여 안드로이드 어플리케이션을 직접 브라우저에서 실행하는 단계;를 수행하는 프로그램을 기록한 것이다.
본 발명에 따르면, 안드로이드 어플리케이션을 범용 운영체제가 설치된 개인용컴퓨터나 키오스크 장치 등에서도 간단한 절차를 통해서 쉽게 한번 실행시켜 볼 수 있는 장점이 있다. 또한, 안드로이드 어플리케이션을 구매하고자 하는 구매자는 미리 개인용컴퓨터나 키오스크 단말장치에서 한번 사용해보고 구매 여부를 판단할 수 있어, 정확한 구매결정을 할 수 있게 되어 안드로이드 어플리케이션을 판매하는 오픈 마켓의 신뢰성을 높일 수 있고, 이를 통해 안드로이드 어플리케이션 시장의 활성화를 달성할 수 있다.
[도 1]은 본 발명에 따라 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하는 단말장치의 일 실시예 구성을 나타낸 블록도.
[도 2]는 본 발명을 위한 PAF 콤포넌트부의 일 실시예 구성을 나타낸 블록도.
[도 3]은 본 발명에 따라 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하는 방법의 일 실시예를 나타낸 순서도.
[도 4]는 본 발명에 따라 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위하여 안드로이드 어플리케이션 구동부가 수행하는 동작의 일 실시예를 나타낸 순서도.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
[도 1]은 본 발명의 기술적 사상에 따라 범용 운영체제(300) 상에서 안드로이드 어플리케이션(101, 102)을 실행하는 단말장치(1000)의 일 실시예 구성을 나타낸 블록도이다.
안드로이드 플랫폼은 리눅스 커널을 기반으로 달빅 가상머신(Dalvik VM)과 자바 기반 어플리케이션 프레임워크를 통해 어플리케이션이 실행될 수 있는 환경을 제공한다. 본 발명은 윈도우즈, 리눅스, 맥(Mac)과 같은 개인용컴퓨터를 위한 범용 운영체제에서도 안드로이드 어플리케이션을 실행시킬 수 있는 환경을 제공하기 위한 소프트웨어 구조와 그 구현기술에 관한 것이다.
본 발명에 따른 안드로이드 실행 단말장치(1000)는 안드로이드 어플리케이션 구동부(100)와 포터블 안드로이드 프레임워크 콤포넌트부(200)로 이루어진다. 안드로이드 어플리케이션 구동부(100)는 PC 어플리케이션이나 브라우저의 플러그인 형태로 제공되며, PAF 콤포넌트부(200)는 안드로이드 어플리케이션 구동부(100)가 사용 가능한 동적 연결 라이브러리로 제공된다.
먼저, 안드로이드 어플리케이션 구동부(100)에 대해 기술한다. 안드로이드 어플리케이션 구동부(100)는 통상의 범용 운영체제(300)가 설치된 개인용컴퓨터 환경에서 안드로이드 어플리케이션(101, 102)을 실행시킬 수 있는 런처 프로그램이다. 이 런처 프로그램의 형태는 PC 어플리케이션이나 브라우저 플러그인의 형태로 구현된다. 브라우저 플러그인은 개별 브라우저가 지원하는 플러그인 기술사양에 맞게 개발해야 하는데, 일반적으로 마이크로소프트 익스플로러(MS Explorer)에 대해서는 액티브액스로 구현하고 구글크롬(Google Chrome)이나 모질라 파이어폭스(Mozilla FilreFox)에 대해서는 NPAPI(Netscape Plugin Application Programming Interface)로 개발한다.
안드로이드 어플리케이션 구동부(100)는 어플리케이션 제어관리부(110)와 어플리케이션 런처부(120)로 이루어진다. 어플리케이션 제어관리부(110)는 안드로이드 어플리케이션(101, 102)을 단말장치(1000)에 설치(install)하거나 단말장치(1000)로부터 삭제(uninstall)하는 것을 관리하는 구성요소이다. 안드로이드 어플리케이션은 로컬에서 로딩될 수도 있고, 리모트에서 로딩될 수도 있다. 로컬 로딩의 예로는 내장 스토리지 또는 메모리 카드로부터 판독하여 로딩하는 것을 생각할 수 있고, 리모트 로딩의 예로는 원격지의 서버(2000)로부터 안드로이드 어플리케이션에 관한 데이터를 제공받는 것을 생각할 수 있다.
어플리케이션 런처부(120)는 단말장치(1000)에 설치된 안드로이드 어플리케이션(APP)을 대기화면(HOME UI)을 거치지 않고 직접 브라우저에서 실행시키는 구성요소이다. 안드로이드 어플리케이션(101, 102)을 단말장치(1000)에서 실행할 때, 어플리케이션 런처부(120)는 PAF 콤포넌트부(200)로 안드로이드 프레임워크를 요청하고, 그에 대하여 안드로이드 프레임워크를 실시간으로 제공받는다. 본 명세서에서 '안드로이드 프레임워크를 실시간으로 제공받는다'라는 말의 의미는 어플리케이션 런처부(120)가 필요할 때 안드로이드 프레임워크를 요청하면 너무 오래지않은 시간 내에 제공된다는 것을 의미한다.
이어서, PAF 콤포넌트부(200)에 대해 기술한다. PAF 콤포넌트부(200)는 안드로이드 어플리케이션 구동부(100)가 안드로이드 프레임워크를 동적으로 로딩하여 사용하기 위해 PAF를 동적 라이브러리 형태로 구현한 부분이다. 포터블 안드로이드 프레임워크(PAF)는 코어 클래스 라이브러리 모듈(211), 안드로이드 프레임워크 모듈(212), 달빅 가상머신(221), 네이티브 라이브러리 모듈(222)을 구비하며, 단말 플랫폼 의존성을 줄여주고 이식성(portability)을 높여주기 위해 포팅 계층부(210)를 더 구비한다. 안드로이드 프레임워크 모듈(212)은 안드로이드 어플리케이션(101, 102)의 실행에 필요한 클래스 라이브러리와 각종 서비스로서 바람직하게는 안드로이드 플랫폼에 내장된 것을 재활용한다.
달빅 가상머신(221)은 안드로이드 플랫폼의 핵심이 되는 구성으로, 바람직하게는 안드로이드 플랫폼의 달빅 가상머신을 수정하여 사용한다. 네이티브 라이브러리 모듈(222)는 안드로이드 프레임워크 모듈(212)을 구현하는데 필요한 각종의 네이티브 모듈을 제공하는데, 바람직하게는 공개 소스 기반의 소프트웨어를 사용하여 구성할 수 있다.
포팅 계층부(210)에서는 안드로이드나 리눅스가 아닌 타 플랫폼, 즉 범용 운영체제(300)에 적용할 때 필요한 모듈을 추가로 구현하며, 쓰레드(thread) 관리, 동적 라이브러리 관리, 외부 함수 호출 방법, 동기화 방법, 메모리 관련 추가 기능 등을 제공한다. 포팅 계층부(210)는 범용 운영체제(300)에서 클래스 라이브러리 계층부(210)와 네이티브 라이브러리 계층부(220)가 원활하게 동작할 수 있도록 단말장치(1000)의 하드웨어를 관리하기 위한 각종의 포팅 API를 범용 운영체제(300)에 의존적인 코드를 활용하여 구현한다. 이러한 포팅 API의 일 예로 리눅스 표준 API를 생각할 수 있다.
한편, 포터블 안드로이드 프레임워크(PAF) 콤포넌트부(200)에 대해서는 [도 2]를 참조하여 자세하게 후술한다. 특히, 본원 출원인에 의해 출원된 대한민국 특허출원 제10-2009-0121002호와 특허출원 제10-2010-0073395호에 PAF에 대해 자세하게 기재되어 있으므로 이를 참조한다.
[도 2]는 본 발명을 위한 PAF 콤포넌트부(200)의 일 실시예 구성을 나타낸 블록도이다.
PAF 콤포넌트부(200)는 각 계층별로 클래스 라이브러리 계층부(210), 네이티브 라이브러리 계층부(220), 포팅 계층부(230)로 구분된다. 각 계층은 아래쪽으로 갈수록 물리계층에 밀접해지는데, 최하단의 포팅 계층부(230)는 범용 운영체제(300)와 연결되고, 최상단의 클래스 라이브러리 계층부(210)는 어플리케이션 계층부(10)와 연결된다.
클래스 라이브러리 계층부(210)는 코어 클래스 라이브러리 모듈(211)과 어플리케이션 프레임워크 모듈(212)을 포함한다. 어플리케이션 프레임워크 모듈(212)은 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리를 제공하고, 코어 클래스 라이브러리 모듈(211)은 자바 API를 제공한다.
본 발명의 일 실시예에서, 어플리케이션 프레임워크 모듈(212)은 구글 안드로이드 플랫폼에서 어플리케이션 프레임워크 계층을 수정하거나 재사용하여 사용하는 것이 바람직하다. 구글 안드로이드에 포함된 어플리케이션 프레임워크 계층에는 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리와 각종의 서비스가 구비되어 있다. 이때, 어플리케이션의 호환성과 무관한 일부 서비스는 경량화를 위해 제거될 수 있다. 또한, 코어 클래스 라이브러리 모듈(211)은 구글 안드로이드 플랫폼에서 안드로이드 런타임에 속하는 코어 라이브러리를 재사용하는 것이 바람직하다. 안드로이드의 코어 라이브러리에는 자바 언어로 프로그래밍을 하기 위한 기본적인 자바 API가 구비되어 있다.
네이티브 라이브러리 계층부(220)는 가상머신 모듈(221)을 포함하는데, 가상머신 모듈(221)은 어플리케이션 프래임워크 모듈(212)에 구비된 클래스 라이브러리와 코어 클래스 라이브러리 모듈(211)에 구비된 자바 API를 통하여 어플리케이션 계층부(10)에 위치한 안드로이드 어플리케이션(101, 102)이 실행될 수 있도록 제공한다. 또한, 네이티브 라이브러리 계층부(220)는 어플리케이션 프레임워크 모듈(212)의 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리 모듈(222)을 구비한다.
본 발명의 일 실시예에서, 가상머신 모듈(221)은 구글 안드로이드 플랫폼의 달빅(Dalvik) 가상머신을 수정하여 사용한다. 즉, 기존의 달빅 가상머신으로부터 리눅스 의존적인 모듈을 제거하고 타 플랫폼에서 제공하지 않는 기능들을 추가하며 선택적으로는 싱글 태스크 상에서도 실행될 수 있는 구조로 가상머신을 재구성하여 사용할 수 있다. 범용 운영체제(300)는 일반적으로 멀티 태스크를 원활하게 제공하므로 굳이 싱글 태스크에서 실행하도록 재구성할 필요성은 높지 않으나, 프로그램의 편이를 위해 선택할 수도 있다.
또한, 네이티브 라이브러리 모듈(222)은 구글 안드로이드 플랫폼의 어플리케이션 프레임워크 계층의 아래에 위치한 라이브러리를 재사용한다. 이때, 네이티브 라이브러리 모듈(222)은 일반적으로 공개 소스(open source) 기반의 소프트웨어를 사용하고 있으며 이를 필요에 따라 수정 및 포팅하여 네이티브 라이브러리 계층부(220)에 배치하는 것이 바람직하다.
포팅 계층부(230)는 네이티브 라이브러리 계층부(220)와 범용 운영체제(300)을 연결하며, 범용 운영체제(300)을 통해 단말의 하드웨어를 관리하는 기능을 제공한다. 즉, 포팅 계층부(230)는 타 운영체제에 쉽게 이식할 수 있도록 운영체제 의존적인 코드를 내부에서 처리하여 상위 계층으로는 포팅 API(예: 리눅스 표준 API)를 제공하는 계층이다.
포팅 계층부(230)는 파일 시스템 모듈, 메모리 할당 모듈, 네트워크 모듈, 기본 라이브러리 모듈(stdio, stdlib, math 등), 타이머 모듈, 디바이스 제어 모듈(디스플레이, 미디어, 입력장치, 3D 등), 기타 유틸리티 등의 하드웨어 관리 모듈을 포함한다. 그리고, 포팅 계층부(230)는 하드웨어 관리 모듈을 통해 단말장치(1000)의 하드웨어에 접근하여 관리 및 제어한다. 예컨대, 포팅 계층부(230)에는 Kernel (DLL, pthread, etc), System (file, memory, socket, stdio, stdlib, string, math, time), Device (framebuffer, media, input, 3D, etc), Utils (log, debug, etc) 등이 구비된다.
가상머신 모듈(221)은 안드로이드 플랫폼의 달빅 가상머신을 수정하여 구성하는 것이 바람직하다. 달빅 가상머신은 구글 안드로이드 플랫폼에서 제공하는 가상머신으로, 자바 가상머신보다 작은 메모리환경에서 동작할 수 있도록 구성되었다. 본 발명을 위한 가상머신 모듈(221)은 리눅스 의존적인 모듈을 제거하고 범용 운영체제(300)에서 제공하지 않는 기능을 추가 재구성한다. 이처럼, 범용 운영체제(300)에서 제공하지 않아 가상머신 모듈(221)이 추가 재구성하는 모듈의 일 예를 정리하면 쓰레드 관리 모듈(pthread), 동적 라이브러리 관리 모듈(shared object, DLL), 외부 함수 인터페이스(FFI: Foreign Function Interface), 동기화 모듈, 메모리 관리 모듈을 포함한다.
코어 클래스 라이브러리 모듈(211)은 자바 언어로 프로그래밍을 하기 위한 기본적인 자바 API를 제공한다.
네이티브 라이브러리 모듈(222)은 상위 계층의 라이브러리를 구현하는데 기반이 되며 리눅스 외의 범용 운영체제(예: 윈도우즈 XP, Vista, Windows7)에 맞도록 포팅된다.
네이티브 라이브러리 계층부(220)에는 포팅 계층부(230)의 하드웨어 관리 모듈과 연동하여 동작하는 다양한 네이티브 라이브러리 모듈(222)을 구비한다.
어플리케이션 프레임워크 모듈(212)에는 전화 서비스, 위치 서비스, 블루투스 서비스, WIFI 서비스, USB 서비스, 센서 서비스 등의 다양한 서비스 모듈이 포함될 수 있다. 이때, 서비스 모듈에서 제공하는 서비스는 전체 시스템 내에서 서버 또는 데몬과 같은 역할을 하며 안드로이드 어플리케이션의 실행에 따라 해당 서비스를 백그라운드로 실행시킨다.
각 서비스 모듈은 필요에 따라 수정되며, 경량화를 위해 필요없는 서비스 모듈은 제거된다. 즉, 호스트 플랫폼에서 제공하는 모듈은 PAF 콤포넌트부(200)에서 제거되는 것이 바람직하다.
[도 3]은 본 발명에 따라 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하는 방법의 일 실시예를 나타낸 순서도이다. 대부분의 기술적 구성이 [도 1]과 [도 2]를 참조하여 이미 설명한 바와 공통되므로, 이하에서는 프로세스의 흐름에 대해서만 순차적으로 설명한다. 다만, 프로세스의 순서는 [도 3]에 도시된 것에 한정되지 않으며, 발명의 목적을 달성하는 범위 내에서 일부 단계가 서로 순서를 바꾸어 구성될 수도 있다.
(S110) 단계 : 범용 운영체제(300)에 의존적인 코드를 사용하여 본 발명에 따른 안드로이드 실행 단말장치(1000)의 하드웨어를 관리하는 포팅 API를 마련한다. 전술한 바와 같이, PAF 콤포넌트부(200)의 포팅 계층부(210)는 플랫폼 의존성을 줄여주고 이식성을 높여주기 위해 제공되는 것으로, 쓰레드) 관리, 동적 라이브러리 관리, 외부 함수 호출 방법, 동기화 방법, 메모리 관련 추가 기능 등에 관한 각종의 포팅 API(예: 리눅스 표준 API)를 범용 운영체제(300)에 의존적인 코드를 활용하여 구현한다.
(S120) 단계 : 포팅 API를 사용하여 안드로이드 어플리케이션(101, 102)의 실행에 필요한 안드로이드 클래스 라이브러리(210)를 범용 운영체제(300)에서 동작하도록 하는 포터블 안드로이드 프레임워크(200)를 동적 라이브러리로 마련한다. 본 발명에서는 포팅 계층부(210)가 범용 운영체제(300) 상에서 포팅 API를 제공함에 따라 안드로이드 클래스 라이브러리(210)가 범용 운영체제(300) 상에서 동작할 수 있게 된다. 이렇게 구성된 포터블 안드로이드 프레임워크(200)는 동적 라이브러리로 마련되는 것이 바람직하다.
(S130) 단계 : 안드로이드 어플리케이션(101, 102)에 대한 조작 입력을 수신한다. 사용자가 예컨대 인터넷 브라우저를 통하여 안드로이드 어플리케이션(101, 102)을 안드로이드 실행 단말장치(1000), 예컨대 개인용컴퓨터에서 한번 실행해보고자 하는 조작을 입력한다.
(S140) 단계 : 위의 조작에 대응하여 안드로이드 어플리케이션 구동부(100)의 어플리케이션 제어관리부(110)에서는 안드로이드 어플리케이션을 로컬 로딩하거나 리모트 로딩한 후, 범용 운영체제(300) 상에서 안드로이드 어플리케이션(101, 102)에 대한 설치 및 제거에 대한 관리를 실행한다.
(S150) 단계 : 이어서, 사용자의 조작에 따라 안드로이드 어플리케이션(101, 102)에 대한 실행 명령을 수신한다.
(S160) 단계 : 안드로이드 어플리케이션(101, 102)을 실행하기 위하여 단말장치(1000)는 안드로이드 프레임워크를 실시간으로 동적 로딩한다. 좀더 구체적으로 기술하자면, 사용자의 실행 명령에 대응하여, 안드로이드 어플리케이션 구동부(100)의 어플리케이션 런처부(120)은 PAF 콤포넌트부(200)로 안드로이드 프레임워크를 요청한다. 이에 대응하여, PAF 콤포넌트부(200)는 안드로이드 프레임워크를 동적으로 로딩하고, 그 결과를 어플리케이션 런처부(120)로 제공한다. 이러한 과정을 통하여 단말장치(1000)는 안드로이드 프레임워크를 실시간으로 동적 로딩한다.
(S170) 단계 : 이러한 과정을 통하여 동적으로 로딩된 안드로이드 프레임워크를 활용하여 단말장치(1000)는 안드로이드 어플리케이션(101, 102)을 직접 브라우저에서 실행한다.
[도 4]는 본 발명에 따라 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 프로세스 중에서, 안드로이드 어플리케이션 구동부(100)가 수행하는 동작의 일 실시예를 나타낸 순서도이다. 대부분의 기술적 구성이 [도 3]을 참조하여 이미 설명한 바와 공통되므로, 이하에서는 프로세스의 흐름에 대해서만 개략적으로 기술한다. 다만, 프로세스의 순서는 [도 4]에 도시된 것에 한정되지 않으며, 발명의 목적을 달성하는 범위 내에서 일부 단계가 서로 순서를 바꾸어 구성될 수도 있다.
(S110) 단계 : 안드로이드 어플리케이션(101, 102)에 대한 조작 입력을 수신한다. 사용자가 예컨대 인터넷 브라우저를 통하여 안드로이드 어플리케이션(101, 102)을 안드로이드 실행 단말장치(1000), 예컨대 개인용컴퓨터에서 한번 실행해보고자 하는 조작을 입력한다.
(S210) 단계 : 위의 조작에 대응하여 안드로이드 어플리케이션 구동부(100)의 어플리케이션 제어관리부(110)에서는 안드로이드 어플리케이션을 로컬 로딩하거나 리모트 로딩한 후, 범용 운영체제(300) 상에서 안드로이드 어플리케이션(101, 102)에 대한 설치 및 제거에 대한 관리를 실행한다.
(S220) 단계 : 이어서, 사용자의 조작에 따라 안드로이드 어플리케이션(101, 102)에 대한 실행 명령을 수신한다.
(S230) 단계 : 사용자의 실행 명령에 대응하여, 안드로이드 어플리케이션 구동부(100)의 어플리케이션 런처부(120)은 PAF 콤포넌트부(200)로 안드로이드 프레임워크를 요청한다.
(S240) 단계 : 어플리케이션 런처부(120)의 요청에 대응하여 PAF 콤포넌트부(200)는 안드로이드 프레임워크를 동적으로 로딩하고, 그 결과를 어플리케이션 런처부(120)로 제공한다. 이러한 과정을 통하여 단말장치(1000)는 안드로이드 프레임워크를 실시간으로 동적 로딩한다.
(S250) 단계 : 이러한 과정을 통하여 동적으로 로딩된 안드로이드 프레임워크를 활용하여 안드로이드 어플리케이션 구동부(100)는 안드로이드 어플리케이션(101, 102)을 직접 브라우저에서 실행한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (8)

  1. 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치로서,
    상기 범용 운영체제에 의존적인 코드로 상기 단말장치의 하드웨어를 관리하는 포팅 API를 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 상기 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 안드로이드 프레임워크를 요청받으면 상기 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하는 PAF 콤포넌트부(200);
    상기 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거를 관리하고, 상기 단말장치 내에서 안드로이드 어플리케이션에 대한 실행 명령이 제공되면 상기 PAF 콤포넌트부로 요청하여 상기 안드로이드 프레임워크를 실시간으로 제공받아 사용함으로써, 상기 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, 상기 안드로이드 어플리케이션을 상기 안드로이드 프레임워크를 활용하여 직접 브라우저에서 실행시키는 안드로이드 어플리케이션 구동부(100);
    를 포함하여 구성되는 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치.
  2. 청구항 1에 있어서,
    상기 안드로이드 어플리케이션 구동부(100)는,
    상기 안드로이드 어플리케이션의 설치 및 제거를 관리하는 어플리케이션 제어관리부(110);
    상기 어플리케이션 제어관리부를 통해 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, 상기 PAF 콤포넌트부로 안드로이드 프레임워크를 요청하여 실시간으로 제공받아 이를 활용하여 상기 안드로이드 어플리케이션을 상기 안드로이드 프레임워크를 활용하여 직접 브라우저에서 실행시키는 어플리케이션 런처부(120);
    를 포함하여 구성되는 것을 특징으로 하는 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치.
  3. 청구항 2에 있어서,
    상기 PAF 콤포넌트부(200)는 상기 범용 운영체제(300)와 상기 안드로이드 어플리케이션 구동부(100)를 매개하기 위하여,
    상기 안드로이드 어플리케이션의 실행에 필요한 자바 API를 제공하는 코어 클래스 라이브러리 모듈(211)과 클래스 라이브러리를 제공하는 안드로이드 프레임워크 모듈(212)을 구비하는 클래스 라이브러리 계층부(210);
    상기 범용 운영체제에 의존적인 코드를 활용하여 상기 단말장치의 하드웨어를 관리하기 위한 포팅 API를 제공하는 포팅 계층부(230);
    상기 클래스 라이브러리와 상기 자바 API를 통한 상기 안드로이드 어플리케이션 실행시 상기 포팅 계층부에서 제공하는 상기 포팅 API를 통해 하드웨어 리소스를 사용하며, 플랫폼 독립형 모듈인 쓰레드 관리 모듈, 동적 라이브러리 관리 모듈, 외부 함수 인터페이스, 동기화 모듈, 메모리 관리 모듈을 이용하여, 상기 안드로이드 어플리케이션을 상기 범용 운영체제 상에서 실행되도록 하는 가상머신 모듈(221)과, 상기 안드로이드 프레임워크 모듈의 클래스 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리 모듈(222)을 구비하는 네이티브 라이브러리 계층부(220);
    를 포함하여 구성되는 것을 특징으로 하는 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치.
  4. 청구항 3에 있어서,
    상기 가상머신 모듈(221)은 리눅스 의존적인 모듈을 제거하고 상기 범용 운영체제(300)에서 제공하지 않는 모듈로서 쓰레드 관리 모듈(pthread), 동적 라이브러리 관리 모듈(shared object, DLL), 외부 함수 인터페이스(FFI: Foreign Function Interface), 동기화 모듈, 메모리 관리 모듈의 적어도 하나 이상을 추가 재구성하는 것을 특징으로 하는 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치.
  5. 청구항 4에 있어서,
    상기 안드로이드 어플리케이션 구동부(100)는 PC 어플리케이션 또는 브라우저 플러그인으로 구성되는 것을 특징으로 하는 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 단말장치.
  6. 범용 운영체제에서 안드로이드 어플리케이션을 실행하기 위한 방법으로서,
    (a) 상기 범용 운영체제에 의존적인 코드로 단말장치의 하드웨어를 관리하는 포팅 API를 마련하는 단계;
    (b) 상기 포팅 API를 사용하여 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 상기 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 마련하는 단계;
    (c) 안드로이드 어플리케이션에 대한 조작 명령을 제공받는 단계;
    (d) 상기 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거에 대한 관리를 실행하는 단계;
    (e) 상기 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받는 단계;
    (f) 상기 안드로이드 프레임워크를 실시간으로 동적 로딩하는 단계;
    (g) 상기 동적으로 로딩된 안드로이드 프레임워크를 활용하여 상기 안드로이드 어플리케이션을 직접 브라우저에서 실행하는 단계;
    를 포함하여 구성되는 방법.
  7. 단말장치의 하드웨어를 관리하는 포팅 API를 범용 운영체제에 의존적인 코드로 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 상기 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 상기 안드로이드 프레임워크에 대한 요청을 접수하면 상기 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하도록 동작하는 PAF 콤포넌트부(200)와 연동함으로써 상기 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체로서,
    상기 안드로이드 어플리케이션의 설치 및 제거를 관리하는 어플리케이션 제어관리 수단;
    상기 어플리케이션 제어관리 수단을 통해 상기 단말장치에 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받으면, 상기 PAF 콤포넌트부로 안드로이드 프레임워크를 요청하여 실시간으로 제공받아 이를 활용하여 상기 안드로이드 어플리케이션을 상기 안드로이드 프레임워크를 활용하여 직접 브라우저에서 실행시키는 어플리케이션 런처 수단;
    을 포함하여 이루어진 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  8. 단말장치의 하드웨어를 관리하는 포팅 API를 범용 운영체제에 의존적인 코드로 마련함으로써 안드로이드 어플리케이션의 실행에 필요한 안드로이드 클래스 라이브러리를 상기 범용 운영체제에서 동작하도록 하는 안드로이드 프레임워크를 동적 라이브러리로 구비하여, 상기 안드로이드 프레임워크에 대한 요청을 접수하면 상기 동적 라이브러리를 로딩하여 안드로이드 프레임워크를 실시간으로 제공하도록 동작하는 PAF 콤포넌트부(200)와 연동함으로써 상기 범용 운영체제에서 안드로이드 어플리케이션을 실행하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체로서,
    (h) 안드로이드 어플리케이션에 대한 조작 입력을 제공받는 단계;
    (i) 상기 범용 운영체제 상에서 안드로이드 어플리케이션에 대한 설치 및 제거에 대한 관리를 실행하는 단계;
    (j) 상기 설치된 안드로이드 어플리케이션에 대한 실행 명령을 제공받는 단계;
    (k) 상기 PAF 콤포넌트부(200)로 상기 안드로이드 프레임워크를 요청하는 단계;
    (l) 상기 PAF 콤포넌트부(200)로부터 상기 안드로이드 프레임워크를 실시간으로 제공받는 단계;
    (m) 상기 안드로이드 프레임워크를 활용하여 상기 안드로이드 어플리케이션을 직접 브라우저에서 실행하는 단계;
    를 수행하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
KR1020110032475A 2011-04-04 2011-04-08 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체 KR101249735B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2012/000642 WO2012138046A1 (ko) 2011-04-04 2012-02-03 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110030730 2011-04-04
KR20110030730 2011-04-04

Publications (2)

Publication Number Publication Date
KR20120113160A KR20120113160A (ko) 2012-10-12
KR101249735B1 true KR101249735B1 (ko) 2013-04-03

Family

ID=47282845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110032475A KR101249735B1 (ko) 2011-04-04 2011-04-08 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체

Country Status (1)

Country Link
KR (1) KR101249735B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200032233A (ko) * 2017-08-10 2020-03-25 주식회사 드림에이스 차량 시스템
KR20200032014A (ko) * 2018-09-17 2020-03-25 주식회사 드림에이스 차량용 소프트웨어 제어 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016026449A1 (zh) * 2014-08-20 2016-02-25 深圳光启智能光子技术有限公司 一种操作系统中控制硬件设备的方法和模块
KR101950484B1 (ko) * 2018-08-08 2019-02-20 엘아이지넥스원 주식회사 안드로이드의 실시간 태스크 관리 장치
KR101950485B1 (ko) * 2018-08-08 2019-05-21 엘아이지넥스원 주식회사 안드로이드의 실시간 태스크 관리 방법
KR102631745B1 (ko) 2018-10-16 2024-02-01 삼성전자주식회사 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
KR102495920B1 (ko) * 2020-10-16 2023-02-06 위더스(주) 디스플레이가 없는 안드로이드 디바이스에서 안드로이드 플랫폼을 동작시키기 위한 무선 통신 시스템 및 그 무선 통신 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240171A1 (en) 2006-03-29 2007-10-11 Nokia Corporation Device, Method, And Computer Program Product For Accessing A Non-Native Application Executing In Virtual Machine Environment
KR100989613B1 (ko) 2009-12-08 2010-10-26 (주)제이모바일 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240171A1 (en) 2006-03-29 2007-10-11 Nokia Corporation Device, Method, And Computer Program Product For Accessing A Non-Native Application Executing In Virtual Machine Environment
KR100989613B1 (ko) 2009-12-08 2010-10-26 (주)제이모바일 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200032233A (ko) * 2017-08-10 2020-03-25 주식회사 드림에이스 차량 시스템
KR102367725B1 (ko) * 2017-08-10 2022-02-28 주식회사 드림에이스 차량 시스템
KR20200032014A (ko) * 2018-09-17 2020-03-25 주식회사 드림에이스 차량용 소프트웨어 제어 장치
WO2020059957A1 (ko) * 2018-09-17 2020-03-26 주식회사 드림에이스 차량용 소프트웨어 제어 장치
KR102262926B1 (ko) * 2018-09-17 2021-06-09 주식회사 드림에이스 차량용 소프트웨어 제어 장치
US11059435B2 (en) 2018-09-17 2021-07-13 Drimaes, Inc. Vehicle software control device

Also Published As

Publication number Publication date
KR20120113160A (ko) 2012-10-12

Similar Documents

Publication Publication Date Title
US11693680B2 (en) Virtual computing systems and methods
KR101249735B1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
CN106293880B (zh) 在Windows系统上运行Android应用程序的方法及装置
CN106445576B (zh) 主机板及其计算机实现方法及非暂态计算机可读储存装置
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
JP5694301B2 (ja) 非アンドロイドプラットフォームにおいてアンドロイドアプリケーションを実行する端末装置、および非アンドロイドプラットフォームにおいてアンドロイドアプリケーションを実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2012138046A1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US7721080B2 (en) Management of option ROM
US9489220B1 (en) Displaying guest operating system statistics in host task manager
EP4100829A1 (en) Firmware update patch
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
KR101015573B1 (ko) Rtos 기반의 안드로이드 어플리케이션 실행 장치
CN110780930A (zh) 启动Android系统的方法、装置、电子设备及存储介质
US6961848B2 (en) System and method for supporting legacy operating system booting in a legacy-free system
CN113672342A (zh) 嵌入式虚拟化系统及构建、测试方法、终端及介质
US9047134B2 (en) System and method for increasing the capabilities of a mobile device
CN111966470B (zh) 虚拟机监控器的加载方法、装置和电子设备
US20070214345A1 (en) System and method for porting an operating system
US9448782B1 (en) Reducing a size of an application package
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
CN109697102A (zh) 一种实现虚拟机桌面访问的方法及装置
US20220012036A1 (en) System and method for modularizing update environment in life cycle manager
JP2022536681A (ja) 不揮発性記憶区画識別子
CN117555558A (zh) 一种在嵌入式Linux操作系统上运行Android应用的方法
CN115202754A (zh) 处理方法和处理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160322

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170308

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee