WO2012015083A1 - Rtos 기반의 안드로이드 어플리케이션 실행 장치 - Google Patents

Rtos 기반의 안드로이드 어플리케이션 실행 장치 Download PDF

Info

Publication number
WO2012015083A1
WO2012015083A1 PCT/KR2010/004998 KR2010004998W WO2012015083A1 WO 2012015083 A1 WO2012015083 A1 WO 2012015083A1 KR 2010004998 W KR2010004998 W KR 2010004998W WO 2012015083 A1 WO2012015083 A1 WO 2012015083A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
rtos
library
android application
virtual machine
Prior art date
Application number
PCT/KR2010/004998
Other languages
English (en)
French (fr)
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/KR2010/004998 priority Critical patent/WO2012015083A1/ko
Publication of WO2012015083A1 publication Critical patent/WO2012015083A1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Definitions

  • the present invention relates to an RTOS-based Android application execution apparatus, and more particularly to an RTOS-based Android application execution apparatus optimized for low-end devices to run the Android application in a terminal operating in a different RTOS than the Android terminal.
  • the Google Android platform is a software stack released by the Open Handset Alliance (OHA), which is led by Google, and is used to build Linux kernels, virtual machines (VMs), frameworks, and applications. All means a software package.
  • OHA Open Handset Alliance
  • the Google Android platform is only applicable to high-end smartphone handsets that offer large screen displays and touchscreen inputs with a wide VGA (WVGA) class with a resolution of 800 ⁇ 480.
  • WVGA wide VGA
  • the Android software stack includes the Linux kernel and includes many basic services such as the system daemon, making it a good platform for high-end, high-end smartphones.
  • the Android application has a limitation that must be run only on high-end smartphones, there is a limit that can not run the Android application on a general feature phone operating on other platforms.
  • the present invention allows the Android application to run on a real-time operating system of a mobile terminal that does not have a Linux kernel or on a platform configured by a manufacturer or a chip supplier on a real-time operating system, and thus a low-end mobile terminal rather than a high-end smartphone. You can also run the Android application on.
  • the RTOS-based Android application execution apparatus executes the Android application based on the application layer module including the Android application, the RTOS layer module including the Real Time Operating System (RTOS) and the real-time operating system.
  • the middleware module is configured to include a middleware module to mediate, preferably, a class library layer module including a class framework module including a class library for executing an Android application, and a core class library module providing a Java API.
  • the ability to manage hardware through the RTOS layer module including the system, memory allocation module, memory management module, thread management module, network module, basic library, timer, and device control module.
  • Run Android application through the provided porting layer module and class library and Java API, including dynamic library management module, external function interface, synchronization module, and linking the porting layer module to Android application to run RTOS layer module instead of Linux kernel. It includes a virtual machine to be executed through, and comprises a native library layer module having a native library that is based on the implementation of the library of the application framework module.
  • the virtual machine is preferably a Dalvik Virtual Machine (VM).
  • VM Dalvik Virtual Machine
  • the virtual machine is provided with an emulator (emulator), it is preferable to be processed as a single task when a multi-task is requested in the Android application or virtual machine.
  • emulator emulator
  • the native library layer module preferably includes one or more native libraries that operate in conjunction with the porting layer module.
  • the application framework module preferably includes one or more service modules of a telephone service, a location service, a Bluetooth service, and a WLAN service to execute a corresponding service in the background according to the execution of an Android application.
  • the Google Android application can be executed not only on the terminal of the Google Android platform but also on a terminal operating in another operating system, thereby creating various added values by serving the Android application through more terminals.
  • the lightweight platform has the effect of serving Android applications through a lower-end general RTOS-based feature phone rather than a high-end smartphone.
  • FIG. 1 is a block diagram schematically showing the configuration of an RTOS-based Android application execution apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing in more detail the configuration of a middleware module according to an embodiment of the present invention.
  • FIG. 3 is a block diagram showing in more detail the configuration of a middleware module according to another embodiment of the present invention.
  • FIG. 4 is a block diagram illustrating an enlarged left configuration of a class library layer module and a native library layer module in FIG. 3.
  • FIG. 4 is a block diagram illustrating an enlarged left configuration of a class library layer module and a native library layer module in FIG. 3.
  • FIG. 5 is a block diagram illustrating an enlarged right configuration of a class library layer module and a native library layer module in FIG. 3.
  • FIG. 5 is a block diagram illustrating an enlarged right configuration of a class library layer module and a native library layer module in FIG. 3.
  • FIG. 1 is a block diagram schematically showing a configuration of an RTOS-based Android application execution apparatus according to an embodiment of the present invention.
  • the RTOS-based Android application execution apparatus 100 is the Android application layer module 102, middleware module 104, RTOS (Real Time Operating System) layer module 106, the terminal processor ( 108), and terminal hardware 110.
  • the RTOS-based Android application execution device 100 generally refers to a mobile device such as a mobile phone, MP3, etc. In addition, it may include all devices that operate based on the RTOS by a processor such as a printer or a camcorder. For example, when the camcorder has a Real Time Operating System (RTOS), the user may edit using a camcorder app, which is an Android application.
  • RTOS Real Time Operating System
  • the application in the Android application layer module 102 refers to an Android application executed through middleware provided with a porting layer and a virtual machine.
  • the middleware module 104 is located between the RTOS layer module 106 and the Android application layer module 102 to mediate an Android application based on the RTOS. To this end, the middleware module 104 is provided with a virtual machine and a library for running an Android application, and a porting layer for connecting with the RTOS layer. Specific details of the middleware module 104 will be described in more detail later with reference to FIGS. 2 to 5.
  • the terminal processor 106 is a central processing unit, and in the case of a mobile terminal, a lightweight mobile dedicated processor capable of processing various multimedia processing and communication functions may be used.
  • the terminal hardware 108 includes a screen output unit, an audio output unit, a user input unit, and the like constituting the terminal device.
  • FIG. 2 is a block diagram showing in more detail the configuration of a middleware module according to an embodiment of the present invention.
  • the middleware module 220 may include a class library layer module 226, a native library layer module 224, and a porting layer module 222 for each layer.
  • the porting layer 222 is adjacent to the RTOS layer module 210 including a real time operating system (RTOS), and the class library layer 226 is connected to the application layer module 230 including an Android application. May be adjacent.
  • RTOS real time operating system
  • the middleware module 220 mediates the execution of the Android application based on the RTOS, and includes a class library layer module 226, a native library layer module 224, and a porting layer module 222.
  • the class library hierarchy module 226 includes an application framework module 226-2 having a class library required to run an Android application, and a core class library module 226-1 providing a Java API.
  • the application framework module 226-2 may include one or more service modules of a telephone service, a location service, a Bluetooth service, and a WLAN service to execute a corresponding service in the background according to the execution of the Android application.
  • the native library layer module 224 includes a native library 224-2, which is the basis for implementing the library of the virtual machine 224-1 and the application framework module.
  • the native library layer module 224 may include one or more native libraries that operate in conjunction with the porting layer module 222.
  • the virtual machine 224-1 runs an Android application through a class library and Java API, and includes a dynamic library management module, an external function interface, and a synchronization module. Run through the layer module.
  • the virtual machine may be a Dalvik virtual machine (VM), Linux-dependent modules may be removed from the Dalvik virtual machine, and functions not provided by other platforms may be additionally implemented.
  • VM Dalvik virtual machine
  • the virtual machine may include an emulator so that when a multi-task is requested from an Android application or a virtual machine, the virtual machine may be processed as a single task.
  • the RTOS supports multitasking by default, but assigns a single task for each specific function (for example, UI-related functions), so that the Dalvik virtual machine can have an emulator to run on a specific single task. Even if multiple tasks are requested on the machine, they are processed as a single task.
  • the porting layer module 210 may include a file system, a memory allocation module for initially securing memory for processing, a memory management module for performing memory management such as allocating the reserved memory as needed by a virtual machine, and a thread.
  • the RTOS layer module 210 may provide a function of managing hardware. That is, the porting layer module 210 is a layer generated to be applied to a platform configured by a manufacturer or a chip supplier based on a real-time operating system (RTOS) or a real-time operating system, such as a mobile terminal other than Linux provided by Android. to be.
  • RTOS real-time operating system
  • FIG. 3 is a block diagram showing in detail the configuration of a middleware module according to another embodiment of the present invention.
  • the middleware module 20 may be divided into a class library layer module 21, a native library layer module 22, and a porting layer module 23 for each layer. At this time, each layer is closer to the physical layer toward the bottom so that the bottom porting layer module 23 is adjacent to the RTOS layer module 30, the top class library layer module 21 is the application layer module 10 Adjacent to.
  • the class library hierarchy module 21 includes an application framework module 21-2 having a class library necessary for executing an Android application, and a core class library module 21-1 providing a Java API.
  • the application framework module 21-2 modifies or reuses the application framework layer on the Google Android platform.
  • Google Android's application framework layer contains the class libraries and services needed to run Android applications. In this case, some services may not be necessary for compatibility of the application and may be removed for light weight.
  • the core class library module 21-1 reuses core libraries belonging to the Android runtime on the Google Android platform.
  • Android's core library includes basic Java APIs for programming in the Java language.
  • the native library layer module 22 uses the class library included in the application framework module 21-2 and the Android application located in the application layer module 10 through the Java API provided in the core class library module 21-1. And a virtual machine 22-1 for operating.
  • the native library layer module 22 also includes a native library 22-2, which is the basis for implementing the library of the application framework module 21-2.
  • the virtual machine 22-1 modifies and uses the Dalvik virtual machine of the Google Android platform. In other words, it removes Linux-dependent modules from the existing Dalvik virtual machine, adds functions not provided by other platforms, and reconfigures the virtual machine into a structure that can be executed on a single task.
  • the native library 22-2 reuses the library located under the application framework layer of the Google Android platform. In this case, most of the native library 22-2 uses open source-based software, and modify and port it as necessary to place it in the native library layer module 22.
  • the porting layer module 23 connects the native library layer module 22 and the RTOS layer module 30 and provides a function of managing hardware of the terminal through the RTOS layer module 30.
  • the porting layer module 23 provides file system, memory allocation, memory management, thread management, network, basic library (stdio, stdlib, math, etc.), timer, device control (display, media, Hardware management modules such as input devices, 3D, etc.), and other utilities.
  • the porting layer module 23 accesses and manages and controls the corresponding hardware of the device 100 through the above hardware management module.
  • the porting layer module 23 includes Kernel (DLL, pthread, etc), System (file, memory, socket, stdio, stdlib, string, math, time), Device (framebuffer, media, input, 3D, etc), Utils (log, debug, etc) are provided.
  • Kernel DLL, pthread, etc
  • System file, memory, socket, stdio, stdlib, string, math, time
  • Device framebuffer, media, input, 3D, etc
  • Utils log, debug, etc
  • FIG. 4 is an enlarged block diagram of a left structure of a class library hierarchy module and a native library hierarchy module in FIG. 3.
  • the virtual machine 22-1 is a modification of the Dalvik virtual machine.
  • Dalvik Virtual Machine is a virtual machine provided by Google's Android platform. It refers to a virtual machine made with a concept that is slightly different from Java virtual machine to operate in a smaller memory environment than Java virtual machine.
  • the virtual machine 22-1 includes a dynamic library management module such as a shared object or a DLL, a foreign function interface (FFI), a synchronization module, and the like.
  • a dynamic library management module such as a shared object or a DLL, a foreign function interface (FFI), a synchronization module, and the like.
  • the module included in the above virtual machine 22-1 is a platform-independent module, and the virtual machine 22-1 is a platform independent module that is independent of the Linux-dependent functions of the existing Android and is not affected by the platform. It works in conjunction with the module 30.
  • the core class library 21-1 provides a basic Java API for programming in the Java language as described above.
  • the native library 22-2 is based on implementing a library of a higher layer and is ported and provided for other platforms other than Linux.
  • FIG. 5 is an enlarged block diagram of a right side structure of a class library layer module and a native library layer module in FIG. 3.
  • the native library layer module 22 includes various native libraries 22-2 that operate in conjunction with the hardware management module of the porting layer module 23.
  • the application framework module 21-2 may include various service modules such as a telephone service, a location service, a Bluetooth service, and a WLAN service.
  • the service provided by the service module acts as a server or daemon in the whole system and executes the service in the background according to the execution of the Android application.
  • Each service module is provided as modified as necessary, and the service module which is not necessary for light weight can be removed.

Landscapes

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

Abstract

본 발명은 RTOS 기반의 안드로이드 어플리케이션 실행 장치에 관한 것으로, 안드로이드 어플리케이션을 안드로이드 단말이 아닌 다른 RTOS로 동작하는 단말에서 실행시킬 수 있도록 저사양 디바이스에 최적화시킴으로써, 안드로이드 어플리케이션을 보다 많은 단말을 통해 서비스할 수 있다.

Description

RTOS 기반의 안드로이드 어플리케이션 실행 장치
본 발명은 RTOS 기반의 안드로이드 어플리케이션 실행 장치에 관한 것으로, 특히 안드로이드 어플리케이션을 안드로이드 단말이 아닌 다른 RTOS로 동작하는 단말에서 실행시킬 수 있도록 저사양 디바이스에 최적화시킨 RTOS 기반의 안드로이드 어플리케이션 실행 장치에 관한 것이다.
구글 안드로이드 플랫폼은 구글(Google) 사가 주도하는 OHA(Open Handset Alliance)에서 공개한 소프트웨어 스택으로, 리눅스(Linux) 커널, 가상머신(VM : virtual machine), 프레임워크(framework), 어플리케이션(application)을 모두 포함하는 소프트웨어 패키지를 의미한다.
구글 안드로이드 플랫폼은 주로 해상도 800×480의 WVGA(wide VGA)급의 큰 화면의 디스플레이와 터치스크린 입력을 제공하는 고사양의 스마트폰 단말기에만 적용이 가능하다.
구글 안드로이드 어플리케이션을 실행시키기 위해서는 단말장치에 안드로이드 전체 소프트웨어 스택을 적용해야 한다. 안드로이드 소프트웨어 스택은 리눅스 커널을 포함하고 있으며, 시스템 데몬과 같은 기본 서비스를 다수 포함하고 있기 때문에 고사양의 하이-엔드(high-end) 스마트폰에 적합한 플랫폼이다.
따라서, 안드로이드 어플리케이션은 고사양 스마트폰에서만 실행시켜야 하는 제약사항이 따르므로 타 플랫폼으로 동작하는 일반 피쳐폰에서는 안드로이드 어플리케이션을 실행시킬 수 없다는 한계점이 있다.
본 발명의 목적은 안드로이드 플랫폼이 설치된 고사양 스마트폰이 아닌 RTOS로 동작하는 보다 낮은 하드웨어 사양의 일반 단말장치에서도 안드로이드 어플리케이션을 실행시키기 위한 RTOS 기반의 안드로이드 어플리케이션 실행 장치를 제공하는 것이다.
즉, 본 발명은 안드로이드 어플리케이션을 리눅스 커널이 존재하지 않는 휴대단말의 실시간 운영체계나 또는 실시간 운영체계 위에서 제조사나 칩 공급업체가 구성한 플랫폼에서도 실행할 수 있도록 하여, 고사양의 스마트폰이 아닌 저사양의 휴대단말에서도 안드로이드 어플리케이션을 실행시킬 수 있다.
본 발명의 실시예에 따른 RTOS 기반의 안드로이드 어플리케이션 실행 장치는 안드로이드 어플리케이션을 포함하는 어플리케이션 계층 모듈, 실시간 운영체제(Real Time Operating System:RTOS)를 포함하는 RTOS 계층 모듈 및 실시간 운영체제를 기반으로 안드로이드 어플리케이션이 실행되도록 매개하는 미들웨어 모듈을 포함하여 구성되고, 미들웨어 모듈은, 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리를 구비하는 어플리케이션 프레임워크 모듈과, 자바 API를 제공하는 코어 클래스 라이브러리 모듈을 포함하는 클래스 라이브러리 계층 모듈,파일 시스템, 메모리 할당 모듈, 메모리 관리 모듈, 쓰레드 관리 모듈, 네트워크 모듈, 기본 라이브러리, 타이머, 디바이스 제어 모듈을 포함하여, RTOS 계층 모듈을 통해 하드웨어를 관리하는 기능을 제공하는 포팅 계층 모듈 및 클래스 라이브러리와 자바 API를 통해 안드로이드 어플리케이션을 동작시키되, 동적 라이브러리 관리 모듈, 외부 함수 인터페이스, 동기화 모듈을 포함하며, 포팅 계층 모듈과 연동하여 안드로이드 어플리케이션을 리눅스 커널이 아닌 RTOS 계층 모듈을 통해 실행되도록 하는 가상머신을 포함하고, 어플리케이션 프레임워크 모듈의 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리를 구비하는 네이티브 라이브러리 계층 모듈을 포함하여 구성되는 것을 특징으로 한다.
이때, 가상머신은 달빅(Dalvik) 가상머신(Virtual Machine:VM)인 것이 바람직하다.
또한, 가상머신은 에뮬레이터(emulator)를 구비하여, 안드로이드 어플리케이션이나 가상머신에서 멀티 태스크가 요청되는 경우 싱글 태스크로 처리되도록 하는 것이 바람직하다.
또한, 네이티브 라이브러리 계층 모듈은 포팅 계층 모듈과 연동하여 동작하는 하나 이상의 네이티브 라이브러리를 구비하는 것이 바람직하다.
또한, 어플리케이션 프레임워크 모듈은 전화 서비스, 위치 서비스, 블루투스 서비스, 무선랜 서비스 중 하나 이상의 서비스 모듈을 포함하여 안드로이드 어플리케이션의 실행에 따라 해당 서비스를 백그라운드로 실행시키는 것이 바람직하다.
본 발명에 따르면 구글 안드로이드 어플리케이션을 구글 안드로이드 플랫폼의 단말뿐만 아니라 타 운영체계에서 동작하는 단말에서도 실행시킬 수 있어 안드로이드 어플리케이션을 보다 많은 단말을 통해 서비스함으로써 다양한 부가가치를 창출하는 효과가 있다.
또한, 플랫폼을 경량화하여 고사양의 스마트폰이 아닌 보다 저사양의 일반 RTOS 기반 피쳐폰을 통해 안드로이드 어플리케이션을 서비스할 수 있는 효과가 있다.
[도 1]은 본 발명의 실시예에 따른 RTOS 기반의 안드로이드 어플리케이션 실행 장치의 구성을 개략적으로 나타낸 블록도.
[도 2]는 본 발명의 일 실시예에 따른 미들웨어 모듈의 구성을 보다 상세히 나타낸 블록도.
[도 3]은 본 발명의 다른 실시예에 따른 미들웨어 모듈의 구성을 보다 상세히 나타낸 블록도.
[도 4]는 [도 3]에서 클래스 라이브러리 계층 모듈과 네이티브 라이브러리 계층 모듈의 좌측 구성을 확대하여 나타낸 블록도.
[도 5]는 [도 3]에서 클래스 라이브러리 계층 모듈과 네이티브 라이브러리 계층 모듈의 우측 구성을 확대하여 나타낸 블록도.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
[도 1]은 본 발명의 실시예에 따른 RTOS 기반의 안드로이드 어플리케이션 실행 장치의 구성을 개략적으로 나타낸 블록도이다.
도면을 참조하면, 본 발명에 따른 RTOS 기반의 안드로이드 어플리케이션 실행 장치(100)는 안드로이드 어플리케이션 계층 모듈(102), 미들웨어 모듈(104), RTOS(Real Time Operating System) 계층 모듈(106), 단말 프로세서(108), 단말 하드웨어(110)를 포함하여 구성된다.
이때, RTOS 기반의 안드로이드 어플리케이션 실행 장치(100)는 일반적으로 휴대폰, MP3 등의 모바일 장치를 의미하지만, 그 밖에도 프린터, 캠코더 등과 같이 프로세서에 의해 RTOS를 기반으로 동작하는 장치를 모두 포함할 수 있다. 예를 들어, 캠코더가 RTOS(Real Time Operating System)를 구비하는 경우, 안드로이드 어플리케이션인 캠코더앱 등을 이용하여 사용자가 편집 등을 수행할 수 있다.
안드로이드 어플리케이션 계층 모듈(102)에서의 어플리케이션은 포팅 계층과 가상머신이 구비된 미들웨어를 통해 실행되는 안드로이드 어플리케이션을 의미한다.
미들웨어 모듈(104)은 RTOS 계층 모듈(106)과 안드로이드 어플리케이션 계층 모듈(102) 사이에 위치하여 RTOS를 기반으로 안드로이드 어플리케이션이 실행되도록 매개한다. 이를 위해, 미들웨어 모듈(104)에는 안드로이드 어플리케이션을 실행시킬 수 있도록 가상머신과 라이브러리가 구비되는 동시에 RTOS 계층과 연결될 수 있도록 포팅 계층이 구비된다. 미들웨어 모듈(104)의 구체적인 세부사항에 대해서는 이후 [도 2]부터 [도 5]의 설명을 통해 보다 자세히 설명하기로 한다.
단말 프로세서(106)는 중앙처리장치로서 모바일 단말의 경우에는 다양한 멀티미디어 처리와 통신 기능을 처리할 수 있으면서 경량화된 모바일 전용 프로세서가 사용될 수 있다.
단말 하드웨어(108)는 단말장치를 구성하는 화면 출력부, 오디오 출력부, 사용자 입력부 등을 포함한다.
[도 2]는 본 발명의 일 실시예에 따른 미들웨어 모듈의 구성을 보다 상세히 나타낸 블록도이다.
도면을 참조하면, 미들웨어 모듈(220)은 각 계층별로 클래스 라이브러리 계층 모듈(226), 네이티브 라이브러리 계층 모듈(224), 포팅 계층 모듈(222)을 포함할 수 있다. 이때, 포팅 계층(222)은 실시간 운영체제(Real Time Operating System:RTOS)를 포함하는 RTOS 계층 모듈(210)과 인접하고, 클래스 라이브러리 계층(226)은 안드로이드 어플리케이션을 포함하는 어플리케이션 계층 모듈(230)과 인접할 수 있다.
미들웨어 모듈(220)은 RTOS를 기반으로 안드로이드 어플리케션이 실행되도록 매개하며, 클래스 라이브러리 계층 모듈(226), 네이티브 라이브러리 계층 모듈(224), 포팅 계층 모듈(222)을 포함한다.
클래스 라이브러리 계층 모듈(226)은 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리를 구비하는 어플리케이션 프레임워크 모듈(226-2)과, 자바 API를 제공하는 코어 클래스 라이브러리 모듈(226-1)을 포함한다. 이때, 어플리케이션 프레임워크 모듈(226-2)은 전화 서비스, 위치 서비스, 블루투스 서비스, 무선랜 서비스 중 하나 이상의 서비스 모듈을 포함하여 안드로이드 어플리케이션의 실행에 따라 해당 서비스를 백그라운드로 실행시킬 수 있다.
네이티브 라이브러리 계층 모듈(224)은 가상머신(224-1)과 어플리케이션 프레임워크 모듈의 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리(224-2)를 구비한다. 이때, 네이티브 라이브러리 계층 모듈(224)은 포팅 계층 모듈(222)과 연동하여 동작하는 하나 이상의 네이티브 라이브러리를 구비할 수 있다.
가상머신(224-1)은 클래스 라이브러리와 자바 API를 통해 안드로이드 어플리케이션을 동작시키고, 동적 라이브러리 관리 모듈, 외부 함수 인터페이스, 동기화 모듈을 포함하며, 포팅 계층 모듈과 연동하여 안드로이드 어플리케이션을 리눅스 커널이 아닌 RTOS 계층 모듈을 통해 실행되도록 한다. 이때, 가상머신은 달빅(Dalvik) 가상머신(Virtual Machine:VM)일 수 있으며, 달빅 가상머신에서 리눅스 의존적인 모듈은 제거되고, 타 플랫폼에서 제공하지 않는 기능들이 추가 구현될 수 있다.
또한, 가상머신은 에뮬레이터(emulator)를 구비하여, 안드로이드 어플리케이션이나 가상머신에서 멀티 태스크가 요청되는 경우 싱글 태스크로 처리되도록 할 수 있다. 즉, RTOS는 기본적으로 멀티 타스크를 지원하지만 특정 기능(예를 들어, UI 관련 기능) 마다 싱글 타스크를 할당하므로, 달빅 가상머신이 특정 싱글 타스크 상에서 실행될 수 있도록 에뮬레이터를 구비하여, 안드로이드 어플리케이션 또는 달빅 가상머신에서 멀티 타스크가 요청되는 경우라도 싱글 태스크로 처리되도록 한다.
포팅 계층 모듈(210)은 파일 시스템, 초기에 프로세싱을 위한 메모리를 확보하기 위한 메모리 할당 모듈, 확보된 메모리를 예를 들어, 가상머신이 필요한 만큼 할당하는 등 메모리 관리를 수행하는 메모리 관리 모듈, 쓰레드 관리 모듈, 네트워크 모듈, 기본 라이브러리, 타이머, 디바이스 제어 모듈을 포함하여, RTOS 계층 모듈(210)을 통해 하드웨어를 관리하는 기능을 제공할 수 있다. 즉, 포팅 계층 모듈(210)은 안드로이드에서 제공하는 리눅스가 아닌 휴대 단말 등의 실시간 운영체제(RTOS) 또는 실시간 운영체제를 기반으로 제조사나 칩 공급업체가 구성한 플랫폼(OEM Platform)에 적용될 수 있도록 생성된 계층이다.
[도 3]은 본 발명의 다른 실시예에 따른 미들웨어 모듈의 구성을 보다 상세히 나타낸 블록도이다.
도면을 참조하면, 미들웨어 모듈(20)은 각 계층별로 클래스 라이브러리 계층 모듈(21), 네이티브 라이브러리 계층 모듈(22), 포팅 계층 모듈(23)로 구분될 수 있다. 이때, 각 계층은 아래쪽으로 갈수록 물리계층에 가까워져서 맨 아래의 포팅 계층 모듈(23)은 RTOS 계층 모듈(30)과 인접하고, 맨 위의 클래스 라이브러리 계층 모듈(21)은 어플리케이션 계층 모듈(10)과 인접한다.
클래스 라이브러리 계층 모듈(21)은 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리를 구비하는 어플리케이션 프레임워크 모듈(21-2)과, 자바 API를 제공하는 코어 클래스 라이브러리 모듈(21-1)을 포함한다.
실제 구현예로서, 어플리케이션 프레임워크 모듈(21-2)은 구글 안드로이드 플랫폼에서 어플리케이션 프레임워크 계층을 수정하거나 재사용하여 사용한다. 구글 안드로이드의 어플리케이션 프레임워크 계층에는 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리와 서비스들이 구비되어 있다. 이때, 일부 서비스는 어플리케이션의 호환에 필요가 없으므로 경량화를 위해 제거될 수 있다.
또한, 코어 클래스 라이브러리 모듈(21-1)은 구글 안드로이드 플랫폼에서 안드로이드 런타임에 속하는 코어 라이브러리를 재사용한다. 안드로이드의 코어 라이브러리에는 자바 언어로 프로그래밍을 하기 위한 기본적인 자바 API가 구비되어 있다.
네이티브 라이브러리 계층 모듈(22)은 어플리케이션 프레임워크 모듈(21-2)에 구비된 클래스 라이브러리와 코어 클래스 라이브러리 모듈(21-1)에 구비된 자바 API를 통해 어플리케이션 계층 모듈(10)에 위치한 안드로이드 어플리케이션을 동작시키는 가상머신(22-1)을 포함한다. 또한, 네이티브 라이브러리 계층 모듈(22)에는 어플리케이션 프레임워크 모듈(21-2)의 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리(22-2)를 구비한다.
실제 구현예로서, 가상머신(22-1)은 구글 안드로이드 플랫폼의 달빅(Dalvik) 가상머신을 수정하여 사용한다. 즉, 기존의 달빅 가상머신으로부터 리눅스(Linux) 의존적인 모듈들을 제거하고 타 플랫폼에서 제공하지 않는 기능들을 추가하고, 싱글 태스크 상에서도 실행될 수 있는 구조로 가상머신을 재구성하여 사용한다.
또한, 네이티브 라이브러리(22-2)는 구글 안드로이드 플랫폼의 어플리케이션 프레임워크 계층의 아래에 위치한 라이브러리를 재사용한다. 이때, 네이티브 라이브러리(22-2)는 대부분 공개 소스 기반의 소프트웨어를 사용하고 있으며 이를 필요에 따라 수정, 포팅하여 네이티브 라이브러리 계층 모듈(22)에 배치한다.
포팅 계층 모듈(23)은 네이티브 라이브러리 계층 모듈(22)과 RTOS 계층 모듈(30)을 연결하며, RTOS 계층 모듈(30)을 통해 단말의 하드웨어를 관리하는 기능을 제공한다.
즉, 포팅 계층 모듈(23)은 RTOS에 쉽게 이식할 수 있도록 파일 시스템, 메모리 할당, 메모리 관리, 쓰레드 관리, 네트워크, 기본 라이브러리(stdio, stdlib, math 등), 타이머, 디바이스 제어(디스플레이, 미디어, 입력장치, 3D 등), 기타 유틸리티 등의 하드웨어 관리 모듈을 구비할 수 있다. 그리고, 포팅 계층 모듈(23)은 이상의 하드웨어 관리 모듈을 통해 장치(100)의 해당 하드웨어에 접근하여 이를 관리, 제어한다.
예컨대, 포팅 계층 모듈(23)에는 Kernel(DLL, pthread, etc), System(file, memory, socket, stdio, stdlib, string, math, time), Device(framebuffer, media, input, 3D, etc), Utils(log, debug, etc) 등이 구비된다.
[도 4]는 [도 3]에서 클래스 라이브러리 계층 모듈과 네이티브 라이브러리 계층 모듈의 좌측 구성을 확대하여 나타낸 블록도이다.
도면을 참조하면, 가상머신(22-1)은 달빅 가상머신을 수정한 것이다. 달빅 가상머신은 구글 안드로이드 플랫폼에서 제공하는 가상머신으로, 자바 가상머신보다 작은 메모리환경에서 동작할 수 있도록 자바 가상머신과는 다소 차이가 있는 개념으로 만들어진 가상머신을 의미한다.
가상머신(22-1)은 shared object나 DLL과 같은 동적 라이브러리 관리 모듈, 외부 함수 인터페이스(FFI : foreign function interface), 동기화 모듈 등을 포함한다.
이상의 가상머신(22-1)에 포함된 모듈은 플랫폼 독립형 모듈로서 가상머신(22-1)은 기존 안드로이드의 리눅스 의존적인 기능에서 벗어나 플랫폼에 영향을 받지 않고 포팅 계층 모듈(23)을 통해 RTOS 계층 모듈(30)과 연동하여 동작한다.
코어 클래스 라이브러리(21-1)은 앞서 설명한 바와 같이 자바 언어로 프로그래밍을 하기 위한 기본적인 자바 API를 제공한다.
네이티브 라이브러리(22-2)는 상위 계층의 라이브러리를 구현하는데 기반이 되며 리눅스 외의 타 플랫폼에 맞게 포팅되어 구비된다.
[도 5]는 [도 3]에서 클래스 라이브러리 계층 모듈과 네이티브 라이브러리 계층 모듈의 우측 구성을 확대하여 나타낸 블록도이다.
도면을 참조하면, 네이티브 라이브러리 계층 모듈(22)에는 포팅 계층 모듈(23)의 하드웨어 관리 모듈과 연동하여 동작하는 다양한 네이티브 라이브러리(22-2)를 구비한다.
어플리케이션 프레임워크 모듈(21-2)에는 전화 서비스, 위치 서비스, 블루투스 서비스, 무선랜 서비스 등의 다양한 서비스 모듈이 포함될 수 있다. 이때, 서비스 모듈에서 제공하는 서비스는 전체 시스템 내에서 서버 또는 데몬과 같은 역할을 하며 안드로이드 어플리케이션의 실행에 따라 해당 서비스를 백그라운드로 실행시킨다. 각 서비스 모듈은 필요에 따라 수정되어 구비되며, 경량화를 위해 필요없는 서비스 모듈은 제거될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (5)

  1. 안드로이드 어플리케이션을 포함하는 어플리케이션 계층 모듈, 실시간 운영체제(Real Time Operating System:RTOS)를 포함하는 RTOS 계층 모듈 및 상기 실시간 운영체제를 기반으로 상기 안드로이드 어플리케이션이 실행되도록 매개하는 미들웨어 모듈을 포함하여 구성되고,
    상기 미들웨어 모듈은,
    상기 안드로이드 어플리케이션을 실행시키는데 필요한 클래스 라이브러리를 구비하는 어플리케이션 프레임워크 모듈과, 자바 API를 제공하는 코어 클래스 라이브러리 모듈을 포함하는 클래스 라이브러리 계층 모듈;
    파일 시스템, 메모리 할당 모듈, 메모리 관리 모듈, 쓰레드 관리 모듈, 네트워크 모듈, 기본 라이브러리, 타이머, 디바이스 제어 모듈을 포함하여, 상기 RTOS 계층 모듈을 통해 하드웨어를 관리하는 기능을 제공하는 포팅 계층 모듈; 및
    상기 클래스 라이브러리와 상기 자바 API를 통해 상기 안드로이드 어플리케이션을 동작시키되, 동적 라이브러리 관리 모듈, 외부 함수 인터페이스, 동기화 모듈을 포함하며, 상기 포팅 계층 모듈과 연동하여 상기 안드로이드 어플리케이션을 리눅스 커널이 아닌 상기 RTOS 계층 모듈을 통해 실행되도록 하는 가상머신을 포함하고, 상기 어플리케이션 프레임워크 모듈의 라이브러리를 구현하는데 기반이 되는 네이티브 라이브러리를 구비하는 네이티브 라이브러리 계층 모듈;
    을 포함하여 구성되는 것을 특징으로 하는 RTOS 기반의 안드로이드 어플리케이션 실행 장치.
  2. 청구항 1에 있어서,
    상기 가상머신은 달빅(Dalvik) 가상머신(Virtual Machine:VM)인 것을 특징으로 하는 RTOS 기반의 안드로이드 어플리케이션 실행 장치.
  3. 청구항 2에 있어서,
    상기 가상머신은 에뮬레이터(emulator)를 구비하여, 안드로이드 어플리케이션이나 가상머신에서 멀티 태스크가 요청되는 경우 싱글 태스크로 처리되도록 하는 것을 특징으로 하는 RTOS 기반의 안드로이드 어플리케이션 실행 장치.
  4. 청구항 3에 있어서,
    상기 네이티브 라이브러리 계층 모듈은 상기 포팅 계층 모듈과 연동하여 동작하는 하나 이상의 네이티브 라이브러리를 구비하는 것을 특징으로 하는 RTOS 기반의 안드로이드 어플리케이션 실행 장치.
  5. 청구항 4에 있어서,
    상기 어플리케이션 프레임워크 모듈은 전화 서비스, 위치 서비스, 블루투스 서비스, 무선랜 서비스 중 하나 이상의 서비스 모듈을 포함하여 상기 안드로이드 어플리케이션의 실행에 따라 해당 서비스를 백그라운드로 실행시키는 것을 특징으로 하는 RTOS 기반의 안드로이드 어플리케이션 실행 장치.
PCT/KR2010/004998 2010-07-29 2010-07-29 Rtos 기반의 안드로이드 어플리케이션 실행 장치 WO2012015083A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2010/004998 WO2012015083A1 (ko) 2010-07-29 2010-07-29 Rtos 기반의 안드로이드 어플리케이션 실행 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2010/004998 WO2012015083A1 (ko) 2010-07-29 2010-07-29 Rtos 기반의 안드로이드 어플리케이션 실행 장치

Publications (1)

Publication Number Publication Date
WO2012015083A1 true WO2012015083A1 (ko) 2012-02-02

Family

ID=45530274

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2010/004998 WO2012015083A1 (ko) 2010-07-29 2010-07-29 Rtos 기반의 안드로이드 어플리케이션 실행 장치

Country Status (1)

Country Link
WO (1) WO2012015083A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101325954B1 (ko) 2012-09-13 2013-11-20 주식회사 인프라웨어테크놀러지 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2019144488A1 (zh) * 2018-01-26 2019-08-01 出门问问信息科技有限公司 显示装置、电子设备及屏幕显示控制方法
CN112929565A (zh) * 2021-01-21 2021-06-08 青岛海信移动通信技术股份有限公司 一种摄像头和事件处理方法
WO2022179338A1 (zh) * 2021-02-24 2022-09-01 Oppo广东移动通信有限公司 应用程序的安装方法和装置、电子设备、可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247057B1 (ko) * 1997-12-26 2000-03-15 윤종용 스마트 폰 장치
KR20070083460A (ko) * 2004-07-06 2007-08-24 엠베디오 인코포레이티드 다중 커널을 동시에 실행하는 방법 및 시스템
JP2009506409A (ja) * 2005-08-10 2009-02-12 シンビアン ソフトウェア リミテッド 拡張可能なスレッドステートの利用によりコンピュータ装置を動作させる方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247057B1 (ko) * 1997-12-26 2000-03-15 윤종용 스마트 폰 장치
KR20070083460A (ko) * 2004-07-06 2007-08-24 엠베디오 인코포레이티드 다중 커널을 동시에 실행하는 방법 및 시스템
JP2009506409A (ja) * 2005-08-10 2009-02-12 シンビアン ソフトウェア リミテッド 拡張可能なスレッドステートの利用によりコンピュータ装置を動作させる方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101325954B1 (ko) 2012-09-13 2013-11-20 주식회사 인프라웨어테크놀러지 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2014042297A1 (ko) * 2012-09-13 2014-03-20 주식회사 인프라웨어테크놀러지 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
WO2019144488A1 (zh) * 2018-01-26 2019-08-01 出门问问信息科技有限公司 显示装置、电子设备及屏幕显示控制方法
CN112929565A (zh) * 2021-01-21 2021-06-08 青岛海信移动通信技术股份有限公司 一种摄像头和事件处理方法
CN112929565B (zh) * 2021-01-21 2022-03-25 青岛海信移动通信技术股份有限公司 一种摄像头和事件处理方法
WO2022179338A1 (zh) * 2021-02-24 2022-09-01 Oppo广东移动通信有限公司 应用程序的安装方法和装置、电子设备、可读存储介质

Similar Documents

Publication Publication Date Title
KR100989613B1 (ko) 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치
KR101015573B1 (ko) Rtos 기반의 안드로이드 어플리케이션 실행 장치
US8490070B2 (en) Unified mobile platform
US10437631B2 (en) Operating system hot-switching method and apparatus and mobile terminal
CN109032706B (zh) 智能合约执行方法、装置、设备和存储介质
WO2012138046A1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US10140145B1 (en) Displaying guest operating system statistics in host task manager
KR101401523B1 (ko) 복수의 가상 머신들 간 조립 공유 gpu 스케줄링 방법 및 장치
WO2021107179A1 (ko) Autosar 기반 응용 소프트웨어의 설정 코드 자동 생성 방법 및 장치
WO2012015083A1 (ko) Rtos 기반의 안드로이드 어플리케이션 실행 장치
Dall et al. The design, implementation, and evaluation of cells: A virtual smartphone architecture
CN105630534A (zh) 基于TrustZone架构的应用程序执行方法、装置和终端
CN114363170A (zh) 容器服务网络配置方法及相关产品
KR101249735B1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US8463972B2 (en) System and method for dynamic, local retriggered interrupt routing discovery
TWI447647B (zh) 用於執行機器人應用程序的終端裝置
CN112313620A (zh) 安卓系统启动的方法、装置、设备及存储介质
US20100031256A1 (en) Method for establishing virtual operating system
WO2020209561A1 (ko) 이종 운영체제를 실행하는 전자 장치 및 그 방법
CN115543334B (zh) 编译优化方法及电子设备
WO2021137659A1 (ko) 이기종 다중 기기 상호작용을 위한 안전한 사용자 인터페이스 분산 방법
KR20100073085A (ko) 다중 코어 플랫폼에서의 하드웨어 디바이스 드라이버 추상화 방법 및 장치
WO2023120830A1 (ko) 확장된 컨테이너 인프라 기반 nfv 인프라 시스템
US11061703B2 (en) Managed runtime data marshaling for native code access using a thread local native buffer
WO2015156627A1 (ko) 스마트 폰의 듀얼 운영체제를 실행하는 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10855355

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10855355

Country of ref document: EP

Kind code of ref document: A1