KR20230081250A - Electronic device and method for container screen mirroring - Google Patents

Electronic device and method for container screen mirroring Download PDF

Info

Publication number
KR20230081250A
KR20230081250A KR1020210169136A KR20210169136A KR20230081250A KR 20230081250 A KR20230081250 A KR 20230081250A KR 1020210169136 A KR1020210169136 A KR 1020210169136A KR 20210169136 A KR20210169136 A KR 20210169136A KR 20230081250 A KR20230081250 A KR 20230081250A
Authority
KR
South Korea
Prior art keywords
operating system
mirroring
screen
data
electronic device
Prior art date
Application number
KR1020210169136A
Other languages
Korean (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 KR1020210169136A priority Critical patent/KR20230081250A/en
Publication of KR20230081250A publication Critical patent/KR20230081250A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/04Display device controller operating with a plurality of display units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller

Abstract

컨테이너 화면 미러링을 위한 전자 장치가 제공된다. 상기 전자 장치는 디스플레이, 메모리 및 프로세서를 포함하고, 상기 메모리는 리눅스 기반의 제1 운영체제 기반에서 동작하는 제1 어플리케이션 및 안드로이드 기반의 제2 운영체제 기반에서 동작하는 제2 어플리케이션을 저장하고, 상기 메모리의 실행에 따라, 상기 프로세서는 상기 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체 및 상기 제2 어플리케이션의 실행과 연관된 제2 객체를 출력하되, 상기 제2 운영체제는, 상기 제1 운영체제의 화면의 적어도 일부에 상기 제2 어플리케이션의 실행 화면을 출력하도록 하는 미러링 서버 모듈을 포함한다.An electronic device for mirroring a container screen is provided. The electronic device includes a display, a memory, and a processor, and the memory stores a first application operating on a Linux-based first operating system and a second application operating on an Android-based second operating system, and According to the execution, the processor outputs a first object associated with the execution of the first application and a second object associated with the execution of the second application on the screen of the first operating system, the second operating system and a mirroring server module that outputs an execution screen of the second application on at least a part of the screen of the operating system.

Description

컨테이너 화면 미러링을 위한 전자 장치 및 방법{ELECTRONIC DEVICE AND METHOD FOR CONTAINER SCREEN MIRRORING}Electronic device and method for container screen mirroring {ELECTRONIC DEVICE AND METHOD FOR CONTAINER SCREEN MIRRORING}

본 발명은 컨테이너 화면 미러링을 위한 전자 장치 및 방법에 관한 것이다.The present invention relates to an electronic device and method for mirroring a container screen.

최근 스마트 폰과 같은 사용자의 휴대용 기기의 성능이 급격히 향상되고, 휴대용 기기에서 운용되는 다양한 어플리케이션이 개발됨에 따라, 기존에 비해 휴대용 기기의 활용 영역이 크게 확장되었다. Recently, as the performance of user's portable devices such as smart phones has rapidly improved and various applications operated in portable devices have been developed, the application area of portable devices has been greatly expanded compared to the past.

한편, 현재 대부분의 차량에는 헤드 유닛에 의해 제어되는 차량용 오디오/비디오/네비게이션장치(AVN)에서 출력 되는 영상을 디스플레이하기 위한 차량용 모니터가 설치되어 있으며, 차량용 모니터는 휴대용 기기가 제공하는 화면에 비해 상대적으로 큰 화면을 제공한다. On the other hand, most vehicles currently have a vehicle monitor for displaying an image output from an automotive audio/video/navigation device (AVN) controlled by the head unit, and the vehicle monitor is relatively to provide a large screen.

이에 운전자의 편의성을 증대시키고 안전성을 향상시키기 위해, 최근에는 사용자의 휴대용 기기와 차량의 헤드 유닛(head unit)을 연동하여 사용하는 미러링 기술에 대한 관심이 커지고 있다. 특히, 자율주행차량의 연구 개발이 활발히 진행되는 추세에 따라, 다양한 정보를 표출 및 처리할 수 있는 미러링 기술에 대한 관심이 커지고 있다.In order to increase driver's convenience and safety, interest in mirroring technology, which uses a user's portable device in conjunction with a vehicle's head unit, has recently increased. In particular, as research and development of autonomous vehicles are actively progressing, interest in mirroring technology capable of displaying and processing various information is growing.

공개특허공보 제10-2014-0054742호Patent Publication No. 10-2014-0054742

본 발명이 해결하고자 하는 과제는 이종의 운영체제 기반의 응용 프로그램을 사용 또는 조작함에 있어 이종 운영체제 간의 연동 기능을 원활하게 제공하고, 특히 이종 운영체제에서의 화면 미러링 기능을 용이하게 제공할 수 있는, 컨테이너 화면 미러링을 위한 전자 장치 및 방법을 제공하는 것이다.The problem to be solved by the present invention is to smoothly provide interworking functions between different operating systems in using or manipulating applications based on different operating systems, and in particular, a container screen that can easily provide a screen mirroring function in a heterogeneous operating system. An electronic device and method for mirroring are provided.

다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problem to be solved by the present invention is not limited to the above problem, and other problems may exist.

상술한 과제를 해결하기 위한 본 발명의 제1 측면에 컨테이너 화면 미러링을 위한 전자 장치는 디스플레이, 메모리 및 프로세서를 포함하고, 상기 메모리는 리눅스 기반의 제1 운영체제 기반에서 동작하는 제1 어플리케이션 및 안드로이드 기반의 제2 운영체제 기반에서 동작하는 제2 어플리케이션을 저장하고, 상기 메모리의 실행에 따라, 상기 프로세서는 상기 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체 및 상기 제2 어플리케이션의 실행과 연관된 제2 객체를 출력하되, 상기 제2 운영체제는, 상기 제1 운영체제의 화면의 적어도 일부에 상기 제2 어플리케이션의 실행 화면을 출력하도록 하는 미러링 서버 모듈을 포함한다.In a first aspect of the present invention for solving the above problems, an electronic device for container screen mirroring includes a display, a memory, and a processor, and the memory includes a first application operating on a Linux-based first operating system and an Android-based device. stores a second application operating on the basis of a second operating system, and according to the execution of the memory, the processor executes the first object associated with the execution of the first application on the screen of the first operating system and the execution of the second application Outputs a second object associated with the second operating system, and the second operating system includes a mirroring server module that outputs an execution screen of the second application on at least a part of the screen of the first operating system.

본 발명의 일부 실시예에서, 상기 제2 운영체제의 미러링 서버 모듈은 상기 제2 운영체제의 서피스플린저(Surfaceflinger) 모듈과 제1 운영체제의 웨이랜드(Wayland) 서버 모듈과 연결되어 미러링을 위한 데이터(이하, 미러링 데이터)를 송수신할 수 있다.In some embodiments of the present invention, the mirroring server module of the second operating system is connected to the Surfaceflinger module of the second operating system and the Wayland server module of the first operating system to provide data for mirroring (hereinafter , mirroring data) can be transmitted and received.

본 발명의 일부 실시예에서, 상기 미러링 서버 모듈은, 상기 제2 운영체제의 하드웨어컴포저(Hardware Composer, HWC) 모듈에서 생성한 미러링 데이터를 서피스플린저 모듈을 통해 요청 및 수신하는 서피스플린저(Surfaceflinger) 통신부, 상기 미러링 데이터를 상기 제1 운영체제에서 처리 가능한 형태의 데이터로 변환하는 데이터 변환부, 상기 변환된 미러링 데이터를 저장하는 공유 메모리 및 상기 공유 메모리에 저장된 미러링 데이터를 상기 제1 운영체제의 웨이랜드 서버 모듈로 송신하는 웨이랜드 클라이언트부를 포함할 수 있다.In some embodiments of the present invention, the mirroring server module is a Surfaceflinger that requests and receives mirroring data generated by a Hardware Composer (HWC) module of the second operating system through a Surfaceflinger module. A communication unit, a data converter for converting the mirroring data into data in a form processable by the first operating system, a shared memory for storing the converted mirroring data, and a Wayland server of the first operating system for mirroring data stored in the shared memory. It may include a Wayland client unit that transmits to the module.

본 발명의 일부 실시예에서, 상기 서피스플린저 통신부는 소정의 프레임 갱신 타이밍마다 원시 데이터 타입의 프레임 데이터 기반의 상기 미러링 데이터를 수신하여 저장할 수 있다.In some embodiments of the present invention, the Surface Flinger communication unit may receive and store the mirroring data based on frame data of a raw data type at each predetermined frame update timing.

본 발명의 일부 실시예에서, 상기 데이터 변환부는 상기 프레임 갱신 타이밍마다 저장된 상기 원시 데이터 타입의 미러링 데이터를 프레임 단위마다 상기 제1 운영체제에서 처리 가능한 형태의 데이터로 변환하는 비트맵 컨버터를 포함할 수 있다.In some embodiments of the present invention, the data conversion unit may include a bitmap converter for converting the mirroring data of the original data type stored at each frame update timing into data in a form processable by the first operating system for each frame unit. .

본 발명의 일부 실시예에서, 상기 미러링 서버 모듈은 제2 운영체제가 부팅됨에 따라, 상기 공유 메모리의 정보를 상기 제1 운영체제 상에 등록할 수 있다.In some embodiments of the present invention, the mirroring server module may register information of the shared memory on the first operating system as the second operating system boots.

본 발명의 일부 실시예에서, 상기 데이터 변환부는 상기 제1 운영체제의 화면에서 미러링 중인 제2 어플리케이션의 실행 화면을 통한 입력 이벤트를 제2 운영체제의 인풋플린저(Inputflinger) 모듈에서 처리 가능한 형태의 데이터로 변환하여 상기 인풋플린저 모듈로 전달하는 이벤트 컨버터를 포함할 수 있다.In some embodiments of the present invention, the data conversion unit converts an input event through an execution screen of a second application being mirrored on a screen of the first operating system into data in a form that can be processed by an Inputflinger module of the second operating system. An event converter that converts and transmits the conversion to the input plunger module may be included.

또한, 본 발명의 제2 측면에 따른 전자 장치에서의 컨테이너 화면 미러링 방법은 리눅스 기반의 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체를 출력하는 단계; 안드로이드 기반의 제2 운영체제를 부팅함에 따라, 상기 제1 운영체제의 화면 상에 제2 어플리케이션의 실행과 연관된 제2 객체의 출력을 요청하는 단계; 및 상기 요청에 따라 제2 운영체제의 미러링 서버 모듈을 통해, 제1 운영체제의 화면의 적어도 일부에 상기 제2 어플리케이션의 실행 화면을 출력하는 단계를 포함한다.Also, a container screen mirroring method in an electronic device according to a second aspect of the present invention includes outputting a first object associated with execution of a first application on a screen of a Linux-based first operating system; requesting an output of a second object associated with the execution of a second application on a screen of the first operating system as the Android-based second operating system is booted; and outputting an execution screen of the second application on at least a part of the screen of the first operating system through the mirroring server module of the second operating system according to the request.

또한, 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 전자 장치에서의 컨테이너 화면 미러링 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.In addition, the computer program according to another aspect of the present invention is combined with a computer that is hardware to execute the container screen mirroring method in the electronic device, and is stored in a computer-readable recording medium.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

전술한 본 발명에 따르면, 안드로이드 운영체제의 하드웨어컴포저에서 사용하는 그래픽 데이터 버퍼를 사용하는 것이 아니라, 안드로이드 운영체제의 서피스플린저에서 제공하는 프레임 버퍼 데이터를 통해 안드로이드 화면 영상을 획득하고 변환하므로, 별도의 공유 메모리(Shared Memory) 영역을 지정하여 저장이 가능하다. 또한, Vendor(SoC, 그래픽 카드 등)가 제공하는 그래픽 라이브러리를 사용하기 때문에, 종래 기술 대비 다양한 차량 하드웨어 환경에 빠른 속도로 적용이 가능하며, 소프트웨어의 재활용성이 높으며, 결과적으로 비용 절감이 가능하다는 장점이 있다.According to the present invention described above, since an Android screen image is acquired and converted through frame buffer data provided by the Surface Plunger of the Android operating system, rather than using a graphic data buffer used by the hardware composer of the Android operating system, separate sharing It is possible to save by designating a shared memory area. In addition, since the graphic library provided by the vendor (SoC, graphic card, etc.) is used, it can be applied to various vehicle hardware environments at a high speed compared to the prior art, the software has high reusability, and as a result, cost reduction is possible. There are advantages.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 일 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컨테이너 화면 미러링을 위한 전자 장치의 구성 요소의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 컨테이너 화면 미러링을 위한 전자 장치의 상세 구성 요소의 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시예에서의 서피스플린저 통신부를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에서의 비트맵 컨버터를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에서의 공유 메모리 및 웨이랜드 클라이언트부를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 전자 장치에서의 컨테이너 화면 미러링 방법의 순서도이다.
도 8은 본 발명의 일 실시예에 따른 미러링 화면을 요청하는 과정을 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 입력 이벤트 처리는 과정을 설명하기 위한 순서도이다.
1 is a block diagram of an electronic device in a network environment according to an embodiment of the present invention.
2 is a diagram illustrating an example of components of an electronic device for mirroring a container screen according to an embodiment of the present invention.
3 is a diagram illustrating an example of detailed components of an electronic device for mirroring a container screen according to an embodiment of the present invention.
4 is a diagram for explaining a surface plunger communication unit in one embodiment of the present invention.
5 is a diagram for explaining a bitmap converter according to an embodiment of the present invention.
6 is a diagram for explaining a shared memory and Wayland client unit in one embodiment of the present invention.
7 is a flowchart of a container screen mirroring method in an electronic device according to an embodiment of the present invention.
8 is a flowchart illustrating a process of requesting a mirroring screen according to an embodiment of the present invention.
9 is a flowchart illustrating a process of processing an input event according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, only these embodiments are intended to complete the disclosure of the present invention, and are common in the art to which the present invention belongs. It is provided to fully inform the person skilled in the art of the scope of the invention, and the invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Terminology used herein is for describing the embodiments and is not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" and/or "comprising" does not exclude the presence or addition of one or more other elements other than the recited elements. Like reference numerals throughout the specification refer to like elements, and “and/or” includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various components, these components are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first element mentioned below may also be the second element within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.

도 1은 본 발명의 일 실시예에 따른 네트워크 환경 내의 전자 장치(100)의 블록도이다. 1 is a block diagram of an electronic device 100 in a network environment according to an embodiment of the present invention.

도 1을 참조하면, 네트워크 환경 내에서의 전자 장치(100)는 제1 네트워크(예를 들어, 근거리 무선 통신 네트워크)를 통하여 전자 장치(101)와 통신하거나, 또는 제 2 네트워크(예를 들어, 원거리 무선 통신 네트워크)를 통하여 전자 장치(102) 또는 서버(103)과 통신할 수 있다.Referring to FIG. 1 , an electronic device 100 in a network environment communicates with an electronic device 101 through a first network (eg, a short-range wireless communication network) or through a second network (eg, a short-distance wireless communication network). It is possible to communicate with the electronic device 102 or the server 103 through a long-distance wireless communication network).

일 실시예에 따르면, 전자 장치(100)는 디스플레이(110), 메모리(120) 및 프로세서(130)를 포함한다.According to one embodiment, the electronic device 100 includes a display 110 , a memory 120 and a processor 130 .

디스플레이(110)는 전자 장치(100)의 외부(예를 들어, 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이(110)는 예를 들면, 일반적인 표시 장치, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 디스플레이(110)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.The display 110 may visually provide information to the outside of the electronic device 100 (eg, a user). The display 110 may include, for example, a general display device, a hologram device, or a projector and a control circuit for controlling the device. According to an embodiment, the display 110 may include a touch circuitry set to detect a touch or a sensor circuit (eg, a pressure sensor) set to measure the intensity of force generated by the touch. .

메모리(120)는 전자 장치(100)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 여기에서, 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 휘발성 저장장치를 통칭하는 것이다. The memory 120 may store various data used by at least one component of the electronic device 100 . Here, the memory 120 collectively refers to a non-volatile storage device and a volatile storage device that continuously retain stored information even when power is not supplied.

예를 들어, 메모리(120)는 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다.For example, the memory 120 may include a compact flash (CF) card, a secure digital (SD) card, a memory stick, a solid-state drive (SSD), and a micro SD card. NAND flash memory such as cards, magnetic computer storage devices such as hard disk drives (HDD), and optical disc drives such as CD-ROMs and DVD-ROMs. can

또한, 메모리(120)에 저장된 프로그램은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다. Also, the program stored in the memory 120 may be implemented in the form of software or hardware such as a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC), and may perform predetermined roles.

프로세서(130)는, 예를 들면, 소프트웨어(예를 들어, 프로그램)를 실행하여 프로세서(130)에 연결된 전자 장치(100)의 적어도 하나의 다른 구성요소(예를 들어, 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. The processor 130, for example, executes software (eg, a program) to at least one other component (eg, hardware or software component) of the electronic device 100 connected to the processor 130. can be controlled, and various data processing or calculations can be performed.

그밖에, 전자 장치(100)는 통신모듈(미도시)을 더 포함할 수 있다. 통신모듈은 전자 장치(100)와 외부 전자 장치(예를 들어, 전자 장치(101), 전자 장치(102), 또는 서버(103)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신모듈은 프로세서(130)(예를 들어, 어플리케이션 프로세서)와 독립적으로 운영되고, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다.In addition, the electronic device 100 may further include a communication module (not shown). The communication module establishes a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 100 and an external electronic device (eg, the electronic device 101, the electronic device 102, or the server 103). , and can support communication through an established communication channel. The communication module may include one or more communication processors that operate independently of the processor 130 (eg, an application processor) and support wired communication or wireless communication.

일 예로, 유선 통신 모듈은 전력선 통신 장치, 전화선 통신 장치, 케이블 홈(MoCA), 이더넷(Ethernet), IEEE1294, 통합 유선 홈 네트워크 및 RS-485 제어 장치로 구현될 수 있다. 또한, 무선 통신 모듈은 WLAN(wireless LAN), Bluetooth, HDR WPAN, UWB, ZigBee, Impulse Radio, 60GHz WPAN, Binary-CDMA, 무선 USB 기술 및 무선 HDMI 기술 등으로 구현될 수 있다.For example, the wired communication module may be implemented as a power line communication device, a telephone line communication device, cable home (MoCA), Ethernet, IEEE1294, an integrated wired home network, and an RS-485 control device. In addition, the wireless communication module may be implemented with wireless LAN (WLAN), Bluetooth, HDR WPAN, UWB, ZigBee, Impulse Radio, 60 GHz WPAN, Binary-CDMA, wireless USB technology, wireless HDMI technology, and the like.

도 2는 본 발명의 일 실시예에 따른 컨테이너 화면 미러링을 위한 전자 장치(100)의 구성 요소의 일 예를 도시한 도면이다.2 is a diagram illustrating an example of components of the electronic device 100 for container screen mirroring according to an embodiment of the present invention.

도 2를 참조하면, 전자 장치(100)는 운영체제(Operation System: OS)를 포함하며, 복수의 운영체제(200)들을 동시에 실행할 수 있다. 본 발명의 일 실시예에서 운영체제는 제1 운영체제(210) 및 제2 운영체제(220)를 포함할 수 있다.Referring to FIG. 2 , the electronic device 100 includes an operating system (OS) and can simultaneously execute a plurality of operating systems 200 . In one embodiment of the present invention, the operating system may include a first operating system 210 and a second operating system 220 .

예를 들어, 제1 운영체제(210)는 리눅스 기반 운영체제일 수 있으며, 제2 운영체제(220)는 안드로이드 기반 운영체제일 수 있다. 이때, 제2 운영체제(220)는 리눅스 컨테이너(LXC)를 활용하여 가상화된 환경에서 구동된다. 본 발명의 일 실시예에서는 제1 운영체제(210)를 호스트(Host) 운영체제라 지칭할 수 있으며, 제2 운영체제(220)는 호스트와 대응하는 게스트(Guest) 운영체제라 지칭할 수 있다.For example, the first operating system 210 may be a Linux-based operating system, and the second operating system 220 may be an Android-based operating system. At this time, the second operating system 220 is driven in a virtualized environment using a Linux container (LXC). In an embodiment of the present invention, the first operating system 210 may be referred to as a host operating system, and the second operating system 220 may be referred to as a guest operating system corresponding to the host.

제1 운영체제(210) 및 제2 운영체제(220)는 서로 독립적으로 동작 및 공존할 수 있으며, 리눅스 기반으로 동작하는 경우 상호 의존적일 수 있다.The first operating system 210 and the second operating system 220 may operate and coexist independently of each other, and may be mutually dependent when operated based on Linux.

도 3은 본 발명의 일 실시예에 따른 컨테이너 화면 미러링을 위한 전자 장치(100)의 상세 구성 요소의 일 예를 도시한 도면이다.3 is a diagram illustrating an example of detailed components of the electronic device 100 for container screen mirroring according to an embodiment of the present invention.

도 3을 참조하면, 전자 장치(100)는 복수의 운영체제를 포함하여 구성되며, 운영체제는 복수의 이종 운영체제(310, 320)를 포함할 수 있다. 예를 들어, 도 2에서와 같이 리눅스 기반의 제1 운영체제(310) 및 안드로이드 기반의 제2 운영체제(320)를 포함할 수 있다.Referring to FIG. 3 , the electronic device 100 includes a plurality of operating systems, and the operating system may include a plurality of heterogeneous operating systems 310 and 320 . For example, as shown in FIG. 2 , a first operating system 310 based on Linux and a second operating system 320 based on Android may be included.

일 실시예로, 제1 운영체제(310)는 제1 어플리케이션을 포함할 수 있으며, 이는 리눅스 운영체제에서 동작 가능한 적어도 하나의 어플리케이션으로, 어플리케이션 프로그램으로 지칭될 수도 있다. 본 발명의 예시에서 제1 어플리케이션은 AVN 시스템을 위한 프로그램(제1 객체)일 수 있다.As an embodiment, the first operating system 310 may include a first application, which is at least one application operable in the Linux operating system and may be referred to as an application program. In an example of the present invention, the first application may be a program (first object) for an AVN system.

제1 운영체제(310)는 전자 장치(100)가 부팅하면 동작하는 메인 운영체제로, 호스트 운영체제라 칭할 수 있다. The first operating system 310 is a main operating system that operates when the electronic device 100 boots, and may be referred to as a host operating system.

일 실시예로, 제2 운영체제(320)는 제2 어플리케이션을 포함할 수 있으며, 이는 안드로이드 운영체제에서 동작 가능한 적어도 하나의 어플리케이션으로 어플리케이션 프로그램으로 지칭될 수 있다. 본 발명의 예시에서 제2 어플리케이션은 AVN 시스템 상에 미러링되는 네비게이션 어플리케이션(제2 객체)일 수 있다.As an embodiment, the second operating system 320 may include a second application, which is at least one application operable in the Android operating system and may be referred to as an application program. In an example of the present invention, the second application may be a navigation application (second object) mirrored on the AVN system.

프로세서(130)는 메모리(120)의 실행에 따라, 제1 운영체제(310)의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체를 출력하고, 제2 어플리케이션(320)의 실행과 연관된 제2 객체를 출력한다.The processor 130 outputs a first object associated with the execution of the first application on the screen of the first operating system 310 according to the execution of the memory 120, and displays a second object associated with the execution of the second application 320. print the object

이때, 본 발명의 일 실시예는 제2 운영체제(320)가 제1 운영체제의 화면의 적어도 일부에 제2 어플리케이션의 실행 화면을 출력하도록 하기 위한 미러링 서버 모듈(330)을 포함하는 것을 특징으로 한다.At this time, one embodiment of the present invention is characterized by including the mirroring server module 330 for allowing the second operating system 320 to output the execution screen of the second application on at least a part of the screen of the first operating system.

한편, 본 발명의 일 실시예에서, 제2 운영체제(320)의 미러링 서버 모듈(330)을 제2 운영체제(320)의 서피스플린저(Surfaceflinger) 모듈(321)과 제1 운영체제(310)의 웨이랜드(Wayland) 서버 모듈(311)과 연결되어 미러링을 위한 데이터(이하, 미러링 데이터)를 송수신할 수 있다.Meanwhile, in one embodiment of the present invention, the mirroring server module 330 of the second operating system 320 is connected to the Surfaceflinger module 321 of the second operating system 320 and the first operating system 310's way It is connected to the Wayland server module 311 and can transmit/receive data for mirroring (hereinafter referred to as mirroring data).

종래 기술의 경우 리눅스 기반의 운영체제로 구동하는 화면 상에 미러링 데이터를 출력하기 위해서는, 안드로이드 기반 운영체제의 하드웨어컴포저(Hardware Composer)에서 조합 및 생성된 미러링 데이터를 리눅스 기반 운영체제의 Weston(Wayland)로 전달하기 위해 웨이랜드 프로토콜(Wayland Protocol)을 사용하였다. 이를 위해 안드로이드 운영체제의 하드웨어컴포저와 리눅스 운영체제의 웨이랜드 서버가 상호 연결되도록 하는 별도의 브릿지(HWC-to Wayland Bridge)를 구성해야 하였다. In the case of the prior art, in order to output mirroring data on a screen driven by a Linux-based operating system, the combined and generated mirroring data in the Hardware Composer of the Android-based operating system is transferred to Weston (Wayland) of the Linux-based operating system. For this, the Wayland Protocol was used. To this end, a separate bridge (HWC-to Wayland Bridge) had to be configured to interconnect the Hardware Composer of the Android operating system and the Wayland server of the Linux operating system.

이때, 브릿지는 웨이랜드 클라이언트 인터페이스를 구비하여 리눅스 기반 운영체제의 웨이랜드 서버와 연결되었다. 이에 따라, 호스트 운영체제는 안드로이드 기반 어플리케이션 화면과 리눅스 기반 어플리케이션 화면을 통합하여 출력하였다.At this time, the bridge has a Wayland client interface and is connected to a Wayland server of a Linux-based operating system. Accordingly, the host operating system outputs an Android-based application screen and a Linux-based application screen integrated.

이러한 종래 기술은 안드로이드 컨테이너 화면을 리눅스 화면으로 전달함에 있어, 리눅스 커널의 프레임 버퍼와, GBM, Mesa 라이브러리(오픈소스 그래픽 라이브러리)를 이용하는데, 다양한 차량 하드웨어 환경에 적용하기 위해서는 커널 버전, 디바이스 드라이버, Mesa 라이브러리 버전을 고려하여 최적화 및 수정하는 작업이 필수적으로 요구된다.This prior art uses the frame buffer of the Linux kernel and the GBM and Mesa libraries (open source graphic libraries) in transferring the Android container screen to the Linux screen. In order to apply to various vehicle hardware environments, the kernel version, device driver, Optimization and modification in consideration of the Mesa library version are essential.

하지만, 프레임 버퍼의 할당을 위한 리눅스 커널의 dmabuf, GBM, Mesa 라이브러리 등의 하드웨어 의존성이 높고, 종래 방식은 Mesa 라이브러리를 사용하는데, 디바이스, 디바이스 드라이버, 호환되는 리눅스 커널 버전 등에 따라 많은 수정이 발생되는 등 소프트웨어의 재활용성이 낮아서, 결과적으로 비용 절감이 어려운 문제가 있었다.However, the hardware dependence of the Linux kernel's dmabuf, GBM, and Mesa libraries for frame buffer allocation is high, and the conventional method uses the Mesa library, which requires many modifications depending on the device, device driver, and compatible Linux kernel version. The reusability of the software such as the etc. is low, and as a result, it is difficult to reduce costs.

이러한 문제를 해소하기 위해, 본 발명의 일 실시예는 안드로이드 운영체제의 하드웨어컴포저에서 사용하는 그래픽 데이터 버퍼를 사용하는 것이 아니라, 안드로이드 운영체제의 서피스플린저에서 제공하는 프레임 버퍼 데이터를 통해, 안드로이드 화면 영상을 획득하고 변환하므로, 별도의 공유 메모리(Shared Memory) 영역을 지정하여 저장이 가능하고, Vendor(SoC, 그래픽 카드 등)가 제공하는 그래픽 라이브러리를 사용하기 때문에, 종래 기술 대비 다양한 차량 하드웨어 환경에 빠른 속도로 적용이 가능하다는 장점이 있다.In order to solve this problem, an embodiment of the present invention does not use the graphic data buffer used by the hardware composer of the Android operating system, but through the frame buffer data provided by the Surface Plunger of the Android operating system, the Android screen image is displayed. Since it acquires and converts, it is possible to designate and store a separate shared memory area, and because it uses a graphic library provided by a vendor (SoC, graphic card, etc.), it is fast in various vehicle hardware environments compared to the prior art. It has the advantage of being applicable.

구체적으로 본 발명의 일 실시예에서의 제2 운영체제(320)에 구비되는 미러링 서버 모듈(330)은, 서피스플린저 통신부(331), 데이터 변환부(332), 공유 메모리(335) 및 웨이랜드 클라이언트부(336)를 포함한다.Specifically, the mirroring server module 330 included in the second operating system 320 according to an embodiment of the present invention includes a surface plunger communication unit 331, a data conversion unit 332, a shared memory 335, and Wayland. A client portion 336 is included.

도 4는 본 발명의 일 실시예에서의 서피스플린저 통신부(331)를 설명하기 위한 도면이다. 도 5는 본 발명의 일 실시예에서의 비트맵 컨버터(333)를 설명하기 위한 도면이다. 도 6은 본 발명의 일 실시예에서의 공유 메모리(335) 및 웨이랜드 클라이언트부(336)를 설명하기 위한 도면이다.4 is a diagram for explaining the surface plunger communication unit 331 in one embodiment of the present invention. 5 is a diagram for explaining the bitmap converter 333 in one embodiment of the present invention. 6 is a diagram for explaining the shared memory 335 and the Wayland client unit 336 in one embodiment of the present invention.

일 실시예로, 서피스플린저 통신부(331)는 제2 운영체제(320)의 하드웨어컴포저 모듈(322)에서 생성한 미러링 데이터를 서피스플린저 모듈(321)을 통해 요청 및 수신한다. 즉, 서피스플린저 통신부(331)는 제2 운영체제(320)의 서피스플린저 모듈(321)을 통해서, 하드웨어컴포저 모듈(322)이 생성한 미러링 데이터(화면 데이터)를 미러링 서버 모듈(330)에서 처리가 가능하도록, 실시간 화면 데이터를 요청 및 수신한다.In one embodiment, the Surface Plunger communication unit 331 requests and receives mirroring data generated by the hardware composer module 322 of the second operating system 320 through the Surface Plunger module 321 . That is, the Surface Plunger communication unit 331 transfers mirroring data (screen data) generated by the hardware composer module 322 from the mirroring server module 330 through the Surface Plunger module 321 of the second operating system 320. Request and receive real-time screen data to enable processing.

이때, 서피스플린저 통신부(331)는 소정의 프레임 갱신 타이밍(Frame refresh timing, 예를 들어 60fps(초당 60장))마다 미러링 데이터(이미지 비트맵 데이터)를 수신하여 저장할 수 있다. 이때, 수신하는 미러링 데이터는 정형화된 포맷이 아닌 원시 데이터(raw data, binary 형태) 타입으로 존재하는 프레임 버퍼 데이터이다. At this time, the Surface Plunger communication unit 331 may receive and store mirroring data (image bitmap data) at predetermined frame refresh timing (for example, 60 fps (60 frames per second)). At this time, the received mirroring data is frame buffer data that exists in a raw data (binary form) type rather than a standardized format.

예를 들어, 1920*1018 해상도라 가정하면, 도 4와 같이 1920개의 픽셀이 1080개 나열된 형태로 저장된다.For example, assuming a resolution of 1920*1018, 1920 pixels are stored in an array of 1080 pixels as shown in FIG. 4 .

일 실시예로, 데이터 변환부(332)는 프레임 갱신 타이밍마다 저장된 원시 데이터 타입의 미러링 데이터를 프레임 단위마다 제1 운영체제에서 처리 가능한 형태의 데이터로 변환하는 비트맵 컨버터(333)를 포함할 수 있다.As an embodiment, the data conversion unit 332 may include a bitmap converter 333 that converts mirroring data of a raw data type stored at each frame update timing into data in a form processable by the first operating system for each frame unit. .

비트맵 컨버터(333)는 서피스플린저 통신부(331)로부터 수신한 실시간 화면 데이터인 미러링 데이터를 호스트 OS인 제1 운영체제(310)의 웨이랜드 서버 모듈(311)에서 처리할 수 있는 데이터 형태로 변환한다. 이때, 비트맵 컨버터(333)는 프레임 갱신 타이밍마다 저장되는 프레임 버퍼 데이터를 한 장씩, 즉 프레임 단위마다 변환한다.The bitmap converter 333 converts mirroring data, which is real-time screen data received from the Surface Plunger communication unit 331, into a data format that can be processed by the Wayland server module 311 of the first operating system 310, which is the host OS. do. At this time, the bitmap converter 333 converts the frame buffer data stored at each frame update timing one by one, that is, in units of frames.

도 5를 참조하면 예를 들어, 비트맵 컨버터(333)로 입력되는 프레임 버퍼 데이터는 A(Alphablending)-수치(투명도), Blue, Green, Red 타입의 4byte로 구성된 픽셀 데이터인 경우, 출력되는 데이터는 X(미사용, 실제로는 00000000으로 채워질 수 있음), R, G, B 타입의 4byte로 구성된 픽셀 데이터로 출력될 수 있다.Referring to FIG. 5, for example, if the frame buffer data input to the bitmap converter 333 is pixel data composed of 4 bytes of A (Alphablending)-numerical (transparency), Blue, Green, and Red types, the output data may be output as pixel data composed of 4 bytes of X (unused, actually filled with 00000000), R, G, and B types.

일 실시예로, 비트맵 컨버터(333)에 의해 변환된 미러링 데이터는 공유 메모리(335, Shared Memory) 상에 저장된다. 이때, 공유 메모리(335)에 입출력되는 미러링 데이터의 타입은 도 6에 도시된 바와 같이 서로 동일하다.In one embodiment, the mirroring data converted by the bitmap converter 333 is stored on a shared memory 335. At this time, the types of mirroring data input and output to the shared memory 335 are the same as shown in FIG. 6 .

한편, 초기에 제2 운영체제가 부팅되고 나면, 공유 메모리(335)의 정보는 제1 운영체제 상에 등록된다.Meanwhile, after the second operating system is initially booted, information of the shared memory 335 is registered on the first operating system.

일 실시예로, 웨이랜드 클라이언트(Wayland Client)부(336)는 공유 메모리(335)에 저장된 미러링 데이터를 제1 운영체제의 웨이랜드 서버 모듈(311)로 전송한다. 즉, 웨이랜드 클라이언트부(336)는 제1 운영체제(310)로부터 안드로이드 화면 미러링 요청을 수신하면, 요청에 대응하여 미러링 서버 모듈(330) 내 공유 메모리(335) 상에 저장된 미러링 데이터를 웨이랜드 서버 모듈(311)로 전송한다. 이때, 웨이랜드 클라이언트부(336)에 입출력되는 미러링 데이터의 타입은 도 6에 도시된 바와 같이 서로 동일하다.As an embodiment, the Wayland client unit 336 transmits the mirroring data stored in the shared memory 335 to the Wayland server module 311 of the first operating system. That is, when the Wayland client unit 336 receives an Android screen mirroring request from the first operating system 310, the mirroring data stored on the shared memory 335 in the mirroring server module 330 is transferred to the Wayland server in response to the request. Send to module 311. At this time, the types of mirroring data input and output to the Wayland client unit 336 are the same as shown in FIG. 6 .

일 실시예로, 제1 운영체제(310)의 웨이랜드 서버 모듈(311)은 제1 운영체제(310)에서 구동되는 제1 어플리케이션(예를 들어, 차량용 인포테인먼트(IVI, In-Vehicle Infotainment) 응용 프로그램)에서 안드로이드 컨테이너의 미러링 화면 요청시, 미러링 서버 모듈(330)의 웨이랜드 클라이언트부(331)로 안드로이드 미러링 화면 영상(미러링 데이터)의 전달을 요청하고, 요청에 상응하여 웨이랜드 클라이언트(336)로부터 미러링 데이터(제2 어플리케이션의 실행 화면)를 수신하면, 이를 제1 어플리케이션의 실행 화면의 특정 영역에 표시한다.As an embodiment, the Wayland server module 311 of the first operating system 310 is a first application (eg, In-Vehicle Infotainment ( IVI ) application) that runs on the first operating system 310. When requesting the mirroring screen of the Android container, transfer of the Android mirroring screen image (mirroring data) is requested to the Wayland client unit 331 of the mirroring server module 330, and mirroring is performed from the Wayland client 336 in response to the request. When data (the execution screen of the second application) is received, it is displayed in a specific area of the execution screen of the first application.

한편, 본 발명의 일 실시예에서 데이터 변환부(332)는 이벤트 컨버터(334)를 더 포함할 수 있다. 이벤트 컨버터(334)는 제1 운영체제(310)의 화면에서 미러링 중인 제2 어플리케이션의 실행 화면을 통한 입력 이벤트를 수신하면, 입력 이벤트를 제1 운영체제(310)의 웨이랜드 서버 모듈(311)을 통해 수신하고, 이를 제2 운영체제(320)의 인풋플린저(Inputflinger) 모듈(323)에서 처리 가능한 형태의 데이터로 변환하여 인풋플린저 모듈(323)로 전달할 수 있다.Meanwhile, in one embodiment of the present invention, the data converter 332 may further include an event converter 334. When the event converter 334 receives an input event through the execution screen of the second application being mirrored on the screen of the first operating system 310, the input event is transmitted through the Wayland server module 311 of the first operating system 310. It may be received, converted into data in a form that can be processed by the input flinger module 323 of the second operating system 320, and transmitted to the input flinger module 323.

이때, 이벤트 컨버터(334)의 입력 데이터는 예를 들어, 입력 이벤트의 좌표값(X, Y), 터치 이벤트 종류(Up, Down, Motion 등), 멀티 터치 이벤트 등일 수 있으며, 출력 데이터는 예를 들어, SLOT(입력장치 구분), TRACKING_ID(멀티 터치 이벤트의 경우), touch_xoffset(X 좌표), touch_yoffset(Y 좌표), PRESSURE(압력, 안드로이드 인풋플린저 모듈(323)에서 요구하는 값으로, 실제로는 입력받는 값이 아니기 때문에 '50' (임의의 값)으로 채워서 변환함), SYN_REPORT 등일 수 있다.At this time, the input data of the event converter 334 may be, for example, coordinate values (X, Y) of the input event, types of touch events (Up, Down, Motion, etc.), multi-touch events, etc., and the output data is, for example, For example, SLOT (input device identification), TRACKING_ID (in case of multi-touch event), touch_xoffset (X coordinate), touch_yoffset (Y coordinate), PRESSURE (pressure, a value required by the Android input plunger module 323, actually Since it is not an input value, it can be converted by filling it with '50' (random value)), SYN_REPORT, etc.

도 7은 본 발명의 일 실시예에 따른 전자 장치(100)에서의 컨테이너 화면 미러링 방법의 순서도이다.7 is a flowchart of a container screen mirroring method in the electronic device 100 according to an embodiment of the present invention.

도 7을 참조하면, 컨테이너 화면 미러링 방법은 S110 내지 S130 단계들을 포함할 수 있다. 이때, 컨테이너 화면 미러링 방법의 각 단계/동작은, 전자 장치(100)에 의해 수행될 수 있다. 본 실시 예에서, S110 내지 S130 단계들 중 적어도 하나가 생략되거나, 일부 단계들의 순서가 바뀌거나, 다른 단계가 추가될 수 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 6의 내용은 도 7의 컨테이너 화면 미러링 방법의 내용에도 적용될 수 있다.Referring to FIG. 7 , the container screen mirroring method may include steps S110 to S130. In this case, each step/operation of the container screen mirroring method may be performed by the electronic device 100 . In this embodiment, at least one of steps S110 to S130 may be omitted, the order of some steps may be changed, or other steps may be added. In addition, even if other omitted contents, the contents of FIGS. 1 to 6 may be applied to the contents of the container screen mirroring method of FIG. 7 .

본 발명의 일 실시예에 따르면, S110 단계에서 리눅스 기반의 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체를 출력한다.According to one embodiment of the present invention, in step S110, the first object associated with the execution of the first application is displayed on the screen of the first operating system based on Linux.

S120 단계에서는, 안드로이드 기반의 제2 운영체제를 부팅함에 따라, 제1 운영체제의 화면 상에 제2 어플리케이션의 실행과 연관된 제2 객체의 출력을 요청한다.In step S120, as the Android-based second operating system is booted, an output of a second object related to the execution of the second application is requested on the screen of the first operating system.

S130 단계에서는, 상기 요청에 따라 제2 운영체제의 미러링 서버 모듈을 통해, 제1 운영체제의 화면의 적어도 일부에 제2 어플리케이션의 실행 화면을 출력한다.In step S130, an execution screen of the second application is displayed on at least a part of the screen of the first operating system through the mirroring server module of the second operating system according to the request.

도 8은 본 발명의 일 실시예에 따른 미러링 화면을 요청하는 과정을 설명하기 위한 순서도이다.8 is a flowchart illustrating a process of requesting a mirroring screen according to an embodiment of the present invention.

도 8을 참조하면, 미러링 화면 요청 과정은 S205 내지 S255 단계들을 포함할 수 있다. 이때, 미러링 화면 요청 과정의 각 단계/동작은, 전자 장치(100)에 의해 수행될 수 있다. 본 실시 예에서, S205 내지 S255 단계들 중 적어도 하나가 생략되거나, 일부 단계들의 순서가 바뀌거나, 다른 단계가 추가될 수 있다. Referring to FIG. 8 , the process of requesting a mirroring screen may include steps S205 to S255. In this case, each step/operation of the mirroring screen request process may be performed by the electronic device 100 . In this embodiment, at least one of steps S205 to S255 may be omitted, the order of some steps may be changed, or another step may be added.

먼저, 시스템이 부팅됨에 따라 제2 운영체제(320)의 공유 메모리의 정보를 제1 운영체제(310) 상에 등록한다(S205).First, as the system boots, information on the shared memory of the second operating system 320 is registered on the first operating system 310 (S205).

다음으로, 제2 운영체제(320)의 서비스 화면을 Hidden area 상에 출력시킨 후(S210), 제1 운영체제(310)의 제1 어플리케이션을 통해 제2 운영체제(320)에서 동작하는 제2 어플리케이션의 화면 미러링을 요청한다(S215).Next, after displaying the service screen of the second operating system 320 on the hidden area (S210), the screen of the second application running in the second operating system 320 through the first application of the first operating system 310 Mirroring is requested (S215).

해당 요청에 따라, 제1 운영체제(310)의 웨이랜드 서버 모듈은 미러링 서버 모듈(330)의 웨이랜드 클라이언트부로 화면 미러링을 요청하고(S220), 해당 요청에 따라 미러링 서버 모듈(330)은 제2 운영체제(320)의 서피스플린저 모듈로 미러링 데이터를 요청한다(S225).According to the request, the Wayland server module of the first operating system 310 requests screen mirroring to the Wayland client unit of the mirroring server module 330 (S220), and according to the request, the mirroring server module 330 performs a second Mirroring data is requested to the Surface Plunger module of the operating system 320 (S225).

다음으로, 제2 운영체제(320)의 서피스플린저 모듈은 미러링 서버 모듈(330)의 서피스플린저 통신부로 미러링 데이터를 전송하고(S230), 서피스플린저 통신부는 미러링 서버 모듈(330)의 데이터 변환부로 미러링 데이터를 전달한다(S235).Next, the Surface Plunger module of the second operating system 320 transmits mirroring data to the Surface Plunger communication unit of the mirroring server module 330 (S230), and the Surface Plunger communication unit converts the data of the mirroring server module 330. Mirroring data is transmitted to the unit (S235).

다음으로, 데이터 변환부의 비트맵 컨버터는 미러링 데이터를 제1 운영체제(310)에서 처리 가능한 형태로 변환하여 공유 메모리 상에 저장하고(S240), 웨이랜드 클라이언트부는 변환된 미러링 데이터를 공유 메모리 상에서 독출하여(S245), 제1 운영체제(310)의 웨이랜드 서버 모듈로 전송한다(S250).Next, the bitmap converter of the data conversion unit converts the mirroring data into a form processable by the first operating system 310 and stores it on a shared memory (S240), and the Wayland client unit reads the converted mirroring data on the shared memory (S245), it is transmitted to the Wayland server module of the first operating system 310 (S250).

이에 따라, 미러링 데이터는 제1 운영체제(310)의 제1 어플리케이션의 화면 일부에 출력된다(S255).Accordingly, the mirroring data is displayed on a part of the screen of the first application of the first operating system 310 (S255).

도 9는 본 발명의 일 실시예에 따른 입력 이벤트 처리는 과정을 설명하기 위한 순서도이다.9 is a flowchart illustrating a process of processing an input event according to an embodiment of the present invention.

도 9를 참조하면, 입력 이벤트 처리는 과정은 S305 내지 S320 단계들을 포함할 수 있다. 이때, 입력 이벤트 처리는 과정의 각 단계/동작은, 전자 장치(100)에 의해 수행될 수 있다. 본 실시 예에서, S305 내지 S325 단계들 중 적어도 하나가 생략되거나, 일부 단계들의 순서가 바뀌거나, 다른 단계가 추가될 수 있다. Referring to FIG. 9 , input event processing may include steps S305 to S320. In this case, each step/operation of the input event processing process may be performed by the electronic device 100 . In this embodiment, at least one of steps S305 to S325 may be omitted, the order of some steps may be changed, or another step may be added.

먼저, 제1 운영체제(310)에서 미러링된 제2 운영체제(320)의 제2 어플리케이션의 실행 화면을 통한 입력 이벤트를 수신하면(S305), 제1 운영체제(310)의 웨이랜드 서버 모듈은 입력 이벤트를 미러링 서버 모듈(330)로 전달한다(S310).First, when an input event through the execution screen of the second application of the second operating system 320 mirrored in the first operating system 310 is received (S305), the Wayland server module of the first operating system 310 receives the input event. It is delivered to the mirroring server module 330 (S310).

다음으로, 미러링 서버 모듈(330)의 이벤트 컨버터는 해당 입력 이벤트를 제2 운영체제(320)의 인풋플린저 모듈에서 처리 가능한 형태로 변환하여(S315), 변환된 입력 이벤트를 인풋플린저 모듈로 전달한다(S320).Next, the event converter of the mirroring server module 330 converts the corresponding input event into a form that can be processed by the input plunger module of the second operating system 320 (S315), and delivers the converted input event to the input plunger module. Do (S320).

이에 따라, 인풋플린저 모듈에서는 제2 어플리케이션에서의 입력 이벤트를 처리한다(S325).Accordingly, the input plunger module processes an input event in the second application (S325).

이상에서 전술한 본 발명의 일 실시예에 전자 장치(100)에서의 컨테이너 화면 미러링 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The container screen mirroring method in the electronic device 100 according to an embodiment of the present invention described above may be implemented as a program (or application) to be executed in combination with a computer, which is hardware, and stored in a medium.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program is C, C++, JAVA, Ruby, C, C++, JAVA, Ruby, which the processor (CPU) of the computer can read through the device interface of the computer so that the computer reads the program and executes the methods implemented as a program. It may include a code coded in a computer language such as machine language. These codes may include functional codes related to functions defining necessary functions for executing the methods, and include control codes related to execution procedures necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, these codes may further include memory reference related codes for which location (address address) of the computer's internal or external memory should be referenced for additional information or media required for the computer's processor to execute the functions. there is. In addition, when the processor of the computer needs to communicate with any other remote computer or server in order to execute the functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes for whether to communicate, what kind of information or media to transmit/receive during communication, and the like.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, cache, or memory, but a medium that stores data semi-permanently and is readable by a device. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers accessible by the computer or various recording media on the user's computer. In addition, the medium may be distributed to computer systems connected through a network, and computer readable codes may be stored in a distributed manner.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustrative purposes, and those skilled in the art can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be construed as being included in the scope of the present invention. do.

100: 전자 장치
110: 디스플레이
120: 메모리
130: 프로세서
100: electronic device
110: display
120: memory
130: processor

Claims (8)

컨테이너 화면 미러링을 위한 전자 장치에 있어서,
디스플레이, 메모리 및 프로세서를 포함하고,
상기 메모리는 리눅스 기반의 제1 운영체제 기반에서 동작하는 제1 어플리케이션 및 안드로이드 기반의 제2 운영체제 기반에서 동작하는 제2 어플리케이션을 저장하고,
상기 메모리의 실행에 따라, 상기 프로세서는 상기 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체 및 상기 제2 어플리케이션의 실행과 연관된 제2 객체를 출력하되,
상기 제2 운영체제는, 상기 제1 운영체제의 화면의 적어도 일부에 상기 제2 어플리케이션의 실행 화면을 출력하도록 하는 미러링 서버 모듈을 포함하는 것인,
컨테이너 화면 미러링을 위한 전자 장치.
In the electronic device for container screen mirroring,
includes a display, memory and processor;
The memory stores a first application operating on a first operating system based on Linux and a second application operating on a second operating system based on Android,
According to the execution of the memory, the processor outputs a first object associated with the execution of the first application and a second object associated with the execution of the second application on the screen of the first operating system,
The second operating system includes a mirroring server module that outputs an execution screen of the second application on at least a part of the screen of the first operating system.
Electronic device for mirroring container screen.
제1항에 있어서,
상기 제2 운영체제의 미러링 서버 모듈은 상기 제2 운영체제의 서피스플린저(Surfaceflinger) 모듈과 제1 운영체제의 웨이랜드(Wayland) 서버 모듈과 연결되어 미러링을 위한 데이터(이하, 미러링 데이터)를 송수신하는 것인,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 1,
The mirroring server module of the second operating system is connected to the Surfaceflinger module of the second operating system and the Wayland server module of the first operating system to transmit and receive data for mirroring (hereinafter referred to as mirroring data) person,
Electronic device for mirroring container screen.
제1항에 있어서,
상기 미러링 서버 모듈은,
상기 제2 운영체제의 하드웨어컴포저(Hardware Composer, HWC) 모듈에서 생성한 미러링 데이터를 서피스플린저 모듈을 통해 요청 및 수신하는 서피스플린저(Surfaceflinger) 통신부,
상기 미러링 데이터를 상기 제1 운영체제에서 처리 가능한 형태의 데이터로 변환하는 데이터 변환부,
상기 변환된 미러링 데이터를 저장하는 공유 메모리 및
상기 공유 메모리에 저장된 미러링 데이터를 상기 제1 운영체제의 웨이랜드 서버 모듈로 송신하는 웨이랜드 클라이언트부를 포함하는,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 1,
The mirroring server module,
A Surfaceflinger communication unit for requesting and receiving mirroring data generated by the Hardware Composer (HWC) module of the second operating system through the Surfaceflinger module;
A data conversion unit for converting the mirroring data into data in a form processable by the first operating system;
A shared memory for storing the converted mirroring data; and
A Wayland client unit transmitting mirroring data stored in the shared memory to a Wayland server module of the first operating system;
Electronic device for mirroring container screen.
제3항에 있어서,
상기 서피스플린저 통신부는 소정의 프레임 갱신 타이밍마다 원시 데이터 타입의 프레임 데이터 기반의 상기 미러링 데이터를 수신하여 저장하는 것인,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 3,
The surface plunger communication unit receives and stores the mirroring data based on frame data of a raw data type at each predetermined frame update timing,
Electronic device for mirroring container screen.
제4항에 있어서,
상기 데이터 변환부는 상기 프레임 갱신 타이밍마다 저장된 상기 원시 데이터 타입의 미러링 데이터를 프레임 단위마다 상기 제1 운영체제에서 처리 가능한 형태의 데이터로 변환하는 비트맵 컨버터를 포함하는,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 4,
The data conversion unit comprises a bitmap converter for converting the mirroring data of the original data type stored at each frame update timing into data in a form processable by the first operating system for each frame unit,
Electronic device for mirroring container screen.
제3항에 있어서,
상기 미러링 서버 모듈은 제2 운영체제가 부팅됨에 따라, 상기 공유 메모리의 정보를 상기 제1 운영체제 상에 등록하는 것인,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 3,
The mirroring server module registers the information of the shared memory on the first operating system as the second operating system boots.
Electronic device for mirroring container screen.
제1항에 있어서,
상기 데이터 변환부는 상기 제1 운영체제의 화면에서 미러링 중인 제2 어플리케이션의 실행 화면을 통한 입력 이벤트를 제2 운영체제의 인풋플린저(Inputflinger) 모듈에서 처리 가능한 형태의 데이터로 변환하여 상기 인풋플린저 모듈로 전달하는 이벤트 컨버터를 포함하는,
컨테이너 화면 미러링을 위한 전자 장치.
According to claim 1,
The data conversion unit converts an input event through an execution screen of a second application being mirrored on the screen of the first operating system into data in a form that can be processed by an Inputflinger module of the second operating system, and sends the data to the Inputflinger module. Including an event converter that forwards,
Electronic device for mirroring container screen.
전자 장치에서의 컨테이너 화면 미러링 방법에 있어서,
리눅스 기반의 제1 운영체제의 화면 상에 제1 어플리케이션의 실행과 연관된 제1 객체를 출력하는 단계;
안드로이드 기반의 제2 운영체제를 부팅함에 따라, 상기 제1 운영체제의 화면 상에 제2 어플리케이션의 실행과 연관된 제2 객체의 출력을 요청하는 단계; 및
상기 요청에 따라 제2 운영체제의 미러링 서버 모듈을 통해, 제1 운영체제의 화면의 적어도 일부에 상기 제2 어플리케이션의 실행 화면을 출력하는 단계를 포함하는,
전자 장치에서의 컨테이너 화면 미러링 방법.
In the container screen mirroring method in an electronic device,
outputting a first object associated with execution of a first application on a screen of a first Linux-based operating system;
requesting an output of a second object associated with the execution of a second application on a screen of the first operating system as the Android-based second operating system is booted; and
In response to the request, outputting an execution screen of the second application on at least a part of the screen of the first operating system through a mirroring server module of the second operating system,
Container screen mirroring method in electronic devices.
KR1020210169136A 2021-11-30 2021-11-30 Electronic device and method for container screen mirroring KR20230081250A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210169136A KR20230081250A (en) 2021-11-30 2021-11-30 Electronic device and method for container screen mirroring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210169136A KR20230081250A (en) 2021-11-30 2021-11-30 Electronic device and method for container screen mirroring

Publications (1)

Publication Number Publication Date
KR20230081250A true KR20230081250A (en) 2023-06-07

Family

ID=86762223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210169136A KR20230081250A (en) 2021-11-30 2021-11-30 Electronic device and method for container screen mirroring

Country Status (1)

Country Link
KR (1) KR20230081250A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054742A (en) 2012-10-29 2014-05-09 주식회사 텍포러스 Multi media device for vehicle having mirroring function of smart phone

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054742A (en) 2012-10-29 2014-05-09 주식회사 텍포러스 Multi media device for vehicle having mirroring function of smart phone

Similar Documents

Publication Publication Date Title
KR101335247B1 (en) Displaying method of remote sink device, source device and system for the same
US11720423B2 (en) Methods and systems for multiple access to a single hardware data stream
EP3062214A1 (en) Apparatus and method for providing screen mirroring service
US8407717B2 (en) Parallel processing method for dual operating system
EP3207458B1 (en) Input signal emulation
US11032342B2 (en) System and method for device audio
CN112241932A (en) Picture processing method and device
JP6250842B2 (en) Sharing non-USB sensor with another device using USB over IP
US9424651B2 (en) Method of tracking marker and electronic device thereof
US11954787B2 (en) Image rendering method in panoramic application and terminal device
KR102631745B1 (en) Method for controlling the execution of different operating systems, electronic device and storage medium therefor
JP2022126793A (en) Method and device for controlling terminal, electronic apparatus, storage medium, and computer program
CN113672184A (en) Screen expansion method and device, terminal equipment and computer readable storage medium
JP6286836B2 (en) Projection system, projection apparatus, projection method, and projection program
WO2021218501A1 (en) Method and device for icon style processing
CN109660581B (en) Physical machine management method, device and system
US20150227383A1 (en) Application program virtualization system and method of virtualizing application program of user terminal
KR20230081250A (en) Electronic device and method for container screen mirroring
KR102411608B1 (en) system for secure network and data processing method thereof
CN108415655B (en) Touch data processing method and device, all-in-one machine and storage medium
KR20160129704A (en) Electronic device, adapter device and video data processing method thereof
US20230289179A1 (en) Method of implementing software architecture for common use of wayland protocol
US11663059B2 (en) Projector control
JP2013167881A (en) Image display unit and control method of image display unit
CN115865908A (en) Remote desktop system starting control method and related equipment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal