KR102546645B1 - 애플리케이션의 작동 방법, 장치, 기기 및 저장매체 - Google Patents

애플리케이션의 작동 방법, 장치, 기기 및 저장매체 Download PDF

Info

Publication number
KR102546645B1
KR102546645B1 KR1020210036064A KR20210036064A KR102546645B1 KR 102546645 B1 KR102546645 B1 KR 102546645B1 KR 1020210036064 A KR1020210036064 A KR 1020210036064A KR 20210036064 A KR20210036064 A KR 20210036064A KR 102546645 B1 KR102546645 B1 KR 102546645B1
Authority
KR
South Korea
Prior art keywords
application
attached
attached application
execution container
satisfied
Prior art date
Application number
KR1020210036064A
Other languages
English (en)
Other versions
KR20210038858A (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 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드
Publication of KR20210038858A publication Critical patent/KR20210038858A/ko
Application granted granted Critical
Publication of KR102546645B1 publication Critical patent/KR102546645B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/45558Hypervisor-specific management and integration aspects
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

본 출원은 애플리케이션의 작동 방법, 장치, 기기 및 저장매체를 개시하며, 인공지능 분야에 관한 것이다. 구체적인 기술방안에 따르면, 해당 방법은 호스트 애플리케이션에 적용되고, 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되며, 해당 방법은, 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하는 단계; 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드가 대응되는 부속 애플리케이션을 작동시키는 단계를 포함한다. 서로 다른 부속 애플리케이션의 전처리 과정을 실행 컨테이너를 통해 완전히 물리적으로 격리시켜, 서로 간섭할 수 없으므로, 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘을 보호하고, 실행 컨테이너에서 대응되는 부속 애플리케이션에 대해 자유 설정하는 것을 구현하여, 부속 애플리케이션 전처리 시의 안전을 향상시킨다. 부속 애플리케이션 열림 속도를 향상시키고, 작동 성능의 퇴화를 방지한다.

Description

애플리케이션의 작동 방법, 장치, 기기 및 저장매체{APPLICATION STARTUP METHOD AND APPATURAS, DEVICE AND STORAGE MEDIUM}
본 출원은 데이터 처리 기술분야에 관한 것으로, 특히는 인공지능 기술에 관한 것이다.
이동 네트워크의 발전에 따라,다양한 애플리케이션(응용 APP로 약칭)이 나타나고 있다. 스마트 애플릿은 사용자가 다운로드 및 설치하지 않고도 사용할 수 있는 애플레케이션이므로, 많은 응용 APP들에 다양한 스마트 애플릿이 구성되어 있다. 응용 APP는 호스트 애플리케이션이고, 스마트 애플릿은 부속 애플리케이션이다.
종래기술에서, 부속 애플리케이션에 대한 순간적인 시작을 구현하기 위해, 사전에 부속 애플리케이션에 대해 프리로딩하고 서비스 데이터를 프리 다운로드하여야 하며, 프리로딩과 서비스 데이터의 프리 다운로드는 바로 부속 애플리케이션에 대한 전처리이다.
하지만 종래기술에서는 각 부속 애플리케이션 전처리를 수행할 때, 하나의 단일 스레드 임무이다. 따라서 만약 하나의 부속 애플리케이션이 프리로딩될 때, 사용자가 다른 하나의 부속 애플리케이션을 열면, 반드시 첫번째 부속 애플리케이션의 프리로딩이 완성된 후에야, 다른 하나의 부속 애플리케이션을 열 수 있으므로, 성능 퇴화를 야기한다. 또한 만약 단일 스레드 임무를 사용하여 복수의 부속 애플리케이션을 프리로딩하면, 각 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘이 파괴되어, 각 부속 애플리케이션 사이에 서로 간섭하고, 나아가 대량의 개발자에 대해 부속 애플리케이션을 자유롭게 설정할 수 없으며, 보다 큰 안전 리스크가 존재한다.
본 출원의 실시예는 애플리케이션의 작동 방법, 장치, 기기 및 저장매체를 개시하여, 종래기술에서 단일 스레드 임무를 사용하여 복수의 부속 애플리케이션을 프리로딩하므로, 각 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘이 파괴되고, 각 부속 애플리케이션 사이에 서로 간섭하며, 보다 큰 안전 리스크가 존재하는 기술문제를 해결한다.
본 출원의 실시예의 제1 측면에 따르면 애플리케이션의 작동 방법을 제공한다. 상기 방법은 호스트 애플리케이션에 적용되고, 상기 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되며, 상기 방법은,
만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 단계;
상기 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작하는 단계;를 포함한다.
본 출원의 실시예의 제2 측면에 따르면 애플리케이션의 작동 장치를 제공한다. 상기 장치는 호스트 애플리케이션에 적용되고, 상기 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되며, 상기 장치는,
만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 프로그램 전처리 모듈;
상기 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작하는 프로그램 작동 모듈;을 포함한다.
본 출원의 실시예의 제3 측면에 따르면 전자기기를 제공하며, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서와 통신 연결되는 메모리;를 포함하되, 여기서,
상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1 측면 중 어느 한 항에 따른 방법을 수행할 수 있도록 한다.
본 출원의 실시예의 제4 측면에 따르면 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체를 제공하며, 상기 컴퓨터 명령은 컴퓨터가 제1 측면의 임의의 하나에 따른 방법을 수행하도록 한다.
본 출원의 실시예의 제5 측면에 따르면 컴퓨터 프로그램을 제공하며, 프로그램 코드를 포함하고, 컴퓨터가 상기 컴퓨터 프로그램을 실행할 때, 상기 프로그램 코드는 제1 측면의 임의의 하나에 따른 방법을 수행한다.
부속 애플리케이션에 대해 전처리할 때, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고, 서로 다른 부속 애플리케이션의 전처리 과정을 실행 컨테이너를 통해 완전히 물리적으로 격리시켜, 서로 간섭할 수 없으므로, 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘을 보호하고, 실행 컨테이너에서 대응되는 부속 애플리케이션에 대해 자유 설정할 수 있고, 부속 애플리케이션 전처리 시의 안전을 향상시킨다. 또한, 각 실행 컨테이너가 하나의 독립된 단일 스레드 임무이므로, 하나의 부속 애플리케이션이 대응되는 실행 컨테이너에서 프리로딩될 때, 만약 사용자가 다른 하나의 부속 애플리케이션을 열더라도, 대응되는 실행 컨테이너에서 직접 열 수 있으며, 첫번째 부속 애플리케이션이 프리로딩 완료될 때까지 대기할 필요가 없이 해당 부속 애플리케이션을 열 수 있으므로, 부속 애플리케이션의 열림 속도를 향상시키고, 작동 성능의 퇴화를 방지한다.
본 부분에 기재되는 내용은 본 출원의 실시예의 핵심 또는 중요 특징을 특정하려는 목적이 아니며, 본 출원의 범위를 한정하는 것도 아님을 이해하여야 한다. 본 출원의 기타 특징은 아래의 명세서로부터 쉽게 이해할 수 있다.
첨부 도면은 본 방안을 충분히 이해하도록 제공되는 것으로서, 본 출원에 대한 한정은 아니다.
도 1은 본 출원의 실시예의 애플리케이션의 작동 방법을 구현할 수 있는 제1 애플레케이션 시나리오를 나타내는 도면이다.
도 2는 본 출원의 실시예의 애플리케이션의 작동 방법을 구현할 수 있는 제2종류의 애플레케이션 시나리오를 나타내는 도면이다.
도 3은 본 출원의 제1 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다.
도 4는 본 출원의 제2 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다.
도 5는 본 출원의 제3 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다.
도 6은 본 출원의 제4 실시예에 따른 애플리케이션의 작동 장치의 구조도이다.
도 7은 본 출원의 제5 실시예에 따른 애플리케이션의 작동 장치의 구조도이다.
도 8은 본 출원의 실시예의 애플리케이션의 작동 방법을 구현하기 위한 전자기기의 블록도이다.
아래에서는 첨부 도면과 결합하여 본 출원의 예시적인 실시예에 대하여 설명하며, 이해를 돕기 위하여 본 출원의 실시예의 다양한 세부 사항을 포함하며, 이들을 단지 예시적인 것으로만 간주되어야 한다. 따라서, 본 분야의 통상적인 지식을 가진 자라면, 여기에 설명된 실시예에 대하여 다양한 변경과 수정을 가할 수 있으며, 이는 본 출원의 범위와 정신을 벗어나지 않음을 이해하여야 한다. 마찬가지로, 명확성과 간결성을 위하여, 아래의 설명에서 공지 기능과 구조에 대한 설명을 생략한다.
본 출원의 기술방안을 명확하게 이해할 수 있도록, 우선 종래기술의 방안에 대해 상세하게 설명한다. 스마트 애플릿은 사용자가 다운로드 및 설치하지 않고도 사용할 수 있는 애플레케이션이므로, 많은 응용 APP들에 다양한 스마트 애플릿이 탑재되어 있다. 탑재된 스마트 애플릿은 부속 애플리케이션이고, 응용 APP은 호스트 애플리케이션이다. 종래기술에서, 사용자가 호스트 애플리케이션을 작동시킨 후, 부속 애플리케이션이 작동되도록 트리거할 때, 부속 애플리케이션의 순간적인 열림을 달성하기 위하여, 부속 애플리케이션에 대해 전처리를 수행하여야 한다. 부속 애플리케이션에 대한 전처리는 부속 애플리케이션에 대한 프리로딩과 서비스 데이터의 프리 다운로드를 포함한다. 종래기술에서, 복수의 부속 애플리케이션에 직면할 때, 단일 스레드 임무를 사용하여 복수의 부속 애플리케이션 전처리를 수행한다. 첫번째 부속 애플리케이션 프리로딩에 직면할 때, 사용자가 다른 하나의 부속 애플리케이션에 대한 작동을 트리거하면, 반드시 첫번째 부속 애플리케이션 프리로딩 완성 후에야, 다른 하나의 부속 애플리케이션의 열림을 수행할 수 있으므로, 성능 퇴화를 야기한다. 또한 만약 단일 스레드 임무를 사용하여 복수의 부속 애플리케이션을 프리로딩할 경우, 각 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘이 파괴되어, 각 부속 애플리케이션 사이에 서로 간섭하고, 나아가 대량의 개발자에 대하여 부속 애플리케이션을 자유 설정할 수 없으므로, 보다 큰 안전 리스크가 존재한다. 예를 들어, 만약 제1 부속 애플리케이션 개발자가 프리로딩 단계에서 타이머를 설정하였으면, 사용자가 제2 부속 애플리케이션을 작동시킬 때, 제1 부속 애플리케이션의 타이머 프론트 프레임 워크가 통일적으로 폐기될 수 없으므로, 제1 부속 애플리케이션의 프리로딩과정이 사용자가 제2 부속 애플리케이션을 작동시키는 것과 간섭하여, 각 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘을 파괴하게 된다.
따라서 종래기술 중 단일 스레드 임무가 복수의 부속 애플리케이션 전처리를 수행하는 문제점에 직면하였을 때, 발명자는 연구 중에, 실행 컨테이너는 서로 다른 임무에 대해 우수한 물리적 격리를 수행할 수 있고, 각 실행 컨테이너가 실행될 때 모두 하나의 단독적인 단일 스레드 임무로서, 단독으로 실행할 수 있다는 것을 발견하였으므로, 복수의 부속 애플리케이션의 전처리 과정을 각각 서로 다른 실행 컨테이너에 배포할 수 있으며, 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고, 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다.
발명자는 상술한 진보성 발견을 바탕으로, 본 출원의 기술방안을 개시하게 되었다. 이하, 본 출원의 실시예에 따른 애플리케이션의 작동 방법의 애플레케이션 시나리오에 대해 설명한다.
도 1에 도시된 바와 같이, 본 출원의 실시예의 애플레케이션 시나리오는 검색 시나리오일 수 있다. 구체적으로, 전자기기에 호스트 애플리케이션이 탑재되어 있고, 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되어 있다. 호스트 애플리케이션에 진입하면, 호스트 애플리케이션의 표시 영역에 검색 박스가 구비되어 있으며, 사용자는 검색박스에 검색 키워드를 입력함으로써 검색 요청을 트리거하며, 예컨대 검색 키워드는 “영향”이다. 호스트 애플리케이션은 검색 요청을 기초로 리소스를 검색하고, 검색해낸 리소스를 표시 영역의 리소스 결과 페이지에 표시한다. 만약 리소스 결과 페이지에 적어도 하나의 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 해당 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정하고, 백그라운드에서 대응되는 실행 컨테이너를 미리 구축한다. 예컨대 도 2에서 2개의 실행 컨테이너가 미리 구축되어 있다. 하나는 제1 실행 컨테이너이고, 하나는 제2 실행 컨테이너이다. 이때, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한다. 도 2에 도시된 바와 같이, 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 전처리를 수행하고, 제2 실행 컨테이너를 사용하여 제2 부속 프로그램에 대해 전처리를 수행한다. 여기서, 제1 부속 애플리케이션은 “xx 백과”이고, 제2 부속 애플리케이션은 “xx 음악”이다. 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한 후, 실행 컨테이너에는 부속 애플리케이션의 작동 표시 페이지가 포함된다. 이때 만약 어느 부속 애플리케이션에 대한 사용자의 선택 조작, 예컨대 클릭 조작이 수신되면, 호스트 애플리케이션은 포어그라운드에서 대응되는 부속 애플리케이션을 열어, 부속 애플리케이션의 작동 표시 페이지를 표시한다.
도 2에 도시된 바와 같이, 본 출원의 실시예의 애플레케이션 시나리오는 정보흐름 푸쉬 시나리오일 수도 있다. 구체적으로, 전자기기에 호스트 애플리케이션이 탑재되어 있고, 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되어 있다. 호스트 애플리케이션에 진입한 후, 호스트 애플리케이션의 표시 영역에 정보 흐름 추천을 거친 리소스 결과 페이지가 표시되고, 해당 추천한 리소스 결과 페이지에 표시되는 리소스는 사용자의 해위 정보, 과거 조회 정보 등의 추천하는 리소스일 수 있다. 만약 리소스 결과 페이지에 적어도 하나의 부속 애플리케이션이 표시되어 있는 것으로 확인되면, 해당 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정하고, 백그라운드에서 대응되는 실행 컨테이너를 미리 구축한다. 검색 시나리오와 유사하게, 도3에서 2개의 실행 컨테이너가 미리 구축되어 있다. 하나는 제1 실행 컨테이너이고, 하나는 제2 실행 컨테이너이다. 이때, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한다. 예시적으로, 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 전처리를 수행하고, 제2 실행 컨테이너를 사용하여 제2 부속 프로그램에 대해 전처리를 수행한다. 여기서, 제1 부속 애플리케이션은 “xx 여행”이고, 제2 부속 애플리케이션은 “x 단”이다. 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한 후, 대응되는 실행 컨테이너에 부속 애플리케이션의 작동 표시 페이지가 포함된다. 이때, 만약 어느 부속 애플리케이션에 대한 사용자의 선택 조작, 예컨대 클릭 조작이 수신되면, 호스트 애플리케이션은 포어그라운드에서 대응되는 부속 애플리케이션를 열어, 부속 애플리케이션의 작동 표시페이지를 표시한다.
본 출원의 실시예에 따른 애플리케이션의 작동 방법은 기타 애플레케이션 시나리오에도 적용 가능하다는 것을 이해할 수 있으며, 본 실시예에서는 이에 대해 한정하지 않는다.
이하, 첨부된 도면을 참조하여 본 출원의 실시예에 대해 상세하게 설명한다.
실시예 1
도3은 본 출원의 제1 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다. 도3에 도시에 도시된 바와 같이, 본 출원의 실시예의 수행 주체는 애플리케이션의 작동 장치이고, 해당 애플리케이션의 작동 장치는 호스트 애플리케이션에 적용될 수 있고, 호스트 애플리케이션은 전자기기에 탑재된다. 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되면, 본 실시예에 따른 애플리케이션의 작동 방법은 아래의 몇개 단계를 포함한다.
단계(101), 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한다.
본 실시예에서, 호스트 애플레케이션에 적어도 하나의 부속 애플리케이션이 탑재되어 있으므로, 사용자가 호스트 애플리케이션을 연 후, 부속 애플리케이션 작동 조건을 만족하는 조건 하에 부속 애플리케이션의 순간적인 열림을 구현하기 위하여, 사용자가 호스트 애플리케이션을 연 후 백그라운드에서 복수의 실행 컨테이너를 구축할 수 있으며, 각 실행 컨테이너는 실행 시 하나의 단일 스레드 임무로서, 서로 다른 실행 컨테이너 사이에 물리적으로 격리되며, 서로 간섭하지 않는다.
다음, 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는지 여부를 모니터링하고, 만약 어느 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 해당 부속 애플리케이션에 대해 전처리를 수행한다.
여기서, 부속 애플리케이션에 대한 호스트 애플리케이션의 전처리 과정은 부속 애플리케이션의 프리로딩 과정 및 부속 애플리케이션의 그 서비스 데이터에 대한 프리 다운로드 과정을 포함하고, 서비스 데이터 다운로드 완료 후에, 부속 애플리케이션은 서비스 데이터를 기초로 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성할 수 있다.
따라서, 본 실시예에서, 호스트 애플리케이션은 부속 애플리케이션의 전처리 조건을 만족하는지 여부를 모니터링할 때, 부속 애플리케이션의 프리로딩 조건을 만족하는지 여부를 모니터링한다. 만약 부속 애플리케이션의 프리로딩 조건을 만족하면, 백그라운드에서 대응되는 실행 컨테이너를 획득하고, 실행 컨테이너에서 부속 애플리케이션에 대해 프리로딩을 수행한다. 대응되는 실행 컨테이너에서 부속 애플리케이션을 프리로딩한 후, 부속 애플리케이션은 그 서비스 데이터의 프리 다운로드 조건을 만족하는지 여부를 판단하고, 만약 그 서비스 데이터의 프리 다운로드 조건을 만족하는 것으로 결정되면, 대응되는 실행 컨테이너에서 서비스 데이터에 대해 프리 다운로드를 수행하고, 실행 컨테이너에서 서비스 데이터를 기초로 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성하여, 호스트 애플리케이션이 부속 애플리케이션 열림 조건을 만족할 때, 대응되는 실행 컨테이너로부터 해당 부속 애플리케이션의 작동 표시 페이지를 획득하고, 부속 애플리케이션 표시 영역에 해당 작동 표시 페이지를 표시하도록 한다.
단계(102), 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다.
본 실시예에서, 백그라운드 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 전처리를 완성한 후, 만약 사용자가 어느 부속 애플리케이션에 대한 선택 조작을 트리거하면, 예컨대 해당 부속 애플리케이션 아이콘을 클릭하면, 해당 부속 애플리케이션에 대한 선택 조작에 응답하여, 대응되는 실행 컨테이너로부터 해당 부속 애플리케이션의 작동 표시 페이지를 획득하고, 포어그라운드가 표시 영역에 해당 작동 표시 페이지를 표시하여, 대응되는 부속 애플리케이션을 시작한다.
본 실시예에 따른 애플리케이션의 작동 방법은, 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고; 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다. 부속 애플리케이션에 대해 전처리할 때, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고, 서로 다른 부속 애플리케이션의 전처리 과정을 실행 컨테이너를 통해 완전히 물리적으로 격리시켜, 서로 간섭할 수 없으므로, 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘을 보호하고, 실행 컨테이너에서 대응되는 부속 애플리케이션에 대한 자유 설정을 구현하고, 부속 애플리케이션 전처리 시의 안전을 향상시킨다. 또한, 각 실행 컨테이너는 하나의 독립된 단일 스레드 임무이므로, 하나의 부속 애플리케이션이 대응되는 실행 컨테이너에서 프리로딩될 때, 만약 사용자가 다른 하나의 부속 애플리케이션을 열더라도, 대응되는 실행 컨테이너에서 직접 열 수 있으며, 하나의 부속 애플리케이션이 프리로딩 왼료되기까지 대기한 후에야 해당 부속 애플리케이션을 열 필요가 없으므로, 부속 애플리케이션 열림 속도를 향상시키고, 작동 성능의 퇴화를 방지한다.
실시예 2
도4는 본 출원의 제2 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다. 도4에 도시된 바와 같이, 본 실시예에 따른 애플리케이션의 작동 방법은, 본 출원의 제1 실시예에 따른 애플리케이션의 작동 방법의 기초 상에서, 단계(101)-단계(102)에 대해 더 세분화한다. 또한, 실행 컨테이너를 구축하는 단계, 작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 작동되지 않은 부속 애플리케이션을 폐기하는 단계, 및 만약 작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하는 단계를 더 포함한다. 이때 본 실시예에 따른 애플리케이션의 작동 방법은 아래의 단계를 포함한다.
단계(201), 실행 컨테이너 구축 조건 만족 여부를 모니터링한다.
본 실시예에서, 호스트의 애플레케이션에 적어도 하나의 부속 애플리케이션이 탑재되어 있으므로, 일 선택적인 실시형태에 따르면, 본 실시예에서, 실행 컨테이너 구축 조건 만족 여부를 모니터링할 때, 호스트 애플리케이션이 작동되었는지 여부를 모니터링하고, 만약 호스트 애플리케이션이 작동된 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하는 것으로 결정하고; 만약 호스트 애플리케이션이 작동되지 않은 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하지 않는 것으로 결정한다.
여기서, 호스트 애플리케이션이 작동되었는지 여부를 모니터링할 때, 스레드에 호스트 애플리케이션 존재 여부를 모니터링하는 방식으로 모니터링하거나, 사용자가 호스트 애플리케이션 클라이언트를 여는지 여부를 모니터링하는 방식으로 모니터링할 수도 있으며, 본 실시예에서는 이에 대해 한정하지 않는다.
본 실시예에서, 실행 컨테이너 구축 조건 만족 여부를 모니터링할 때, 호스트 애플리케이션을 작동시키는지를 모니터링하는 방식으로 수행하며, 만약 호스트 애플리케이션이 작동된 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하는 것으로 결정하고, 만약 호스트 애플리케이션이 작동되지 않은 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하지 않는 것으로 결정한다. 실행 컨테이너를 구축하는 과정을 될수록 앞당겨, 부속 애플리케이션의 전처리 과정을 위해 충분한 시간을 제공할 수 있으며, 나아가 부속 애플리케이션이 작동될 때 부속 애플리케이션의 순간적인 열림을 구현할 수 있다.
단계(202), 만약 실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축한다.
본 실시예에서, 만약 실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에 2개의 실행 컨테이너를 구축하며, 하나는 제1 실행 컨테이너이고, 하나는 제2 실행 컨테이너이다.
여기서, 제1 실행 컨테이너는 전처리 조건을 먼저 만족하는 부속 애플리케이션에 대해 전처리를 수행하기 위한 것이고, 제2 실행 컨테이너는, 전처리 조건을 후에 만족하는 다른 하나의 부속 애플리케이션에 대해 전처리하기 위한 것이다.
본 실시예에서, 실행 컨테이너 구축 조건을 만족할 때, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축하여, 서로 다른 부속 애플리케이션의 전처리 과정을 대응되는 실행 컨테이너를 통해 완전히 물리적으로 격리시키는 상황에서, 실행 컨테이너 과량에 의해 메모리 리소스 소모가 과량되는 상황을 방지할 수 있다.
단계(203), 만약 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션과 제2 부속 애플리케이션이 포함되어 있는 것으로 확인될 때, 제1 부속 애플리케이션과 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정한다.
여기서, 리소스 결과 페이지에서 제1 부속 애플리케이션은 제2 부속 애플리케이션 앞에 위치된다.
선택적으로, 본 실시예에서, 검색 시나리오 또는 정보 흐름 추천 시나리오인지에 관계없이, 호스트 애플리케이션의 표시 영역 내에 모두 리소스 결과 페이지가 표시된다. 리소스 결과 페이지에 대해 검출하고, 만약 리소스 결과 페이지에 선후로 2개의 부속 애플리케이션이 표시되어 있으며, 각각 제1 부속 애플리케이션과 제2 부속 애플리케이션인 것으로 확인되면, 제1 부속 애플리케이션과 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정한다.
단계(204), 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하고, 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다.
본 실시예에서, 만약 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행한다. 우선 제1 실행 컨테이너에서, 제1 부속 애플리케이션의 애플레케이션 프레임워크에 대해 프리로딩을 수행하고, 대응되는 애플리케이션 프레임 워크에 프리로딩한 후, 해당 애플레케이션프레임 워크에서, 제1 부속 애플리케이션 서버로부터 1 부속 애플리케이션의 설치 패키지를 다운로드하고, 제1 실행 컨테이너에 설치 패키지 중 설정 작동 파일을 프리로딩한다.
마찬가지로, 만약 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정되면, 백그라운드에서 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다. 우선 제2 실행 컨테이너에서, 제2 부속 애플리케이션의 애플레케이션 프레임워크에 대해 프리로딩을 수행하고, 대응되는 애플리켕션 프레임 워크에 프리로딩한 후, 해당 애플레케이션프레임 워크에서, 제2 부속 애플리케이션 서버로부터 제2 부속 애플리케이션의 설치 패키지를 다운로드하고, 제2 실행 컨테이너에 설치 패키지 중 설정 작동 파일을 프리로딩한다.
여기서, 프리로딩 후의 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 목표 함수는 대응되는 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정될 때, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 서비스 데이터를 프리 다운로드하고, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성하도록 한다.
구체적으로, 본 실시예에서, 제1 실행 컨테이너에서 제1 부속 애플리케이션을 프리로딩한 후, 프리로딩 후의 제1 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 해당 목표 함수는 제1 목표 함수이다. 해당 제1 목표 함수는 제1 부속 애플리케이션이 프리페치 생명주기일 때 트리거되어 수행되어, 제1 부속 애플리케이션의 환경 표현 정보가 기설정 조건을 만족하는 것으로 결정될 때, 제1 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정하고, 주요 사용 컨테이너에서 제1 부속 애플리케이션의 서비스 데이터를 프리 다운로드한다.
마찬가지로, 제2 실행 컨테이너에서서 제2 부속 애플리케이션을 프리로딩한 후, 프리로딩 후의 제2 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 해당 목표 함수는 제2 목표 함수이다. 해당 제2 목표 함수는 제2 부속 애플리케이션이 프리페치 생명주기일 때 트리거되어 수행되어, 제2 부속 애플리케이션의 환경 표현 정보가 기설정 조건을 만족하는 것으로 결정될 때, 제2 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정하고, 비축 컨테이너에서 제2 부속 애플리케이션의 서비스 데이터를 프리 다운로드한다.
여기서, 프리페치 생명주기는 부속 애플리케이션이 표시 영역 내에서 슬라이딩 상태인 것, 및 부속 애플리케이션이 표시 영역 내에서 호버링 상태인 것 및 부속 애플리케이션이 표시 영역 내에서 클릭 상태 인 것 등을 포함할 수 있다. 환경 표현 정보는 부속 애플리케이션의 현재 표시 상태, 부속 애플리케이션의 입구 정보 또는 부속 애플리케이션의 디스플레이할 페이지의 페이지 표현 정보 등일 수 있다.
여기서, 기설정 조건은 부속 애플리케이션의 현재 표시 상태가 기설정 표시 상태인 것일 수 있다. 예를 들어, 기설정 조건은 부속 애플리케이션의 현재 표시 상태가 클릭 상태인 것이다. 또는 기설정 조건은 부속 애플리케이션의 입구 정보가 기설정 입구 정보인 것일 수도 있다. 예를 들어, 기설정 조건은 부속 애플리케이션의 입구 정보가 검색 시나리오인 것일 수도 있다. 또는 기설정 조건은 부속 애플리케이션의 디스플레이할 페이지의 페이지 표현 정보가 기설정 페이지 표현 정보인 것일 수도 있다. 예를 들어, 기설정 조건은 부속 애플레케이션의 디스플레이할 페이지의 페이지 표현 정보가 1급 페이지인 것이다.
제1 부속 애플리케이션이 제1 실행 컨테이너에서 서비스 데이터를 프리 다운로드하는 예를 들어 더욱 상세하게 설명한다. 구체적으로, 본 실시예에서, 제1 실행 컨테이너에서, 프리로딩 후의 제1 부속 애플리케이션은 프리페치 생명주기에 대해 검출하고, 만약 현재제1 부속 애플리케이션이 프리페치 생명주기인 것으로 확인될 때, 제1 부속 애플리케이션에 포함된 목표 함수를 트리거하여 수행하도록 하고, 제1 부속 애플리케이션의 환경 표현 정보를 목표 함수에 입력하며, 목표 함수는 기설정 조건이 미리 정의되어 있으며, 입력된 환경 표현 정보가 기설정 조건을 만족하는지 여부를 판단하고, 만약 입력된 환경 표현 정보가 기설정 조건을 만족하면, 서비스 데이터 다운로드 조건을 만족하는 것으로 결정하고, 서비스 데이터 획득 요청을 구성하여, 제1 부속 애플리케이션 서버로 발송한 후, 제1 부속 애플리케이션 서버에서 피드백하는 제1 부속 애플리케이션의 서비스 데이터를 수신하고, 주요 사용 컨테이너에 제1 부속 애플리케이션의 서비스 데이터를 저장하고, 제1 부속 애플리케이션의 서비스 데이터를 기초로 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성한다.
단계(205), 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다.
본 실시예에서, 단계(205)의 구현 방식은 본 출원의 제1 실시예 중 단계(102)의 구현 방식과 유사하므로, 여기서는 중복되는 설명을 생략한다.
단계(206), 작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 작동되지 않은 부속 애플리케이션을 폐기한다.
선택적으로, 본 실시예에서, 만약 제1 부속 애플리케이션이 작동되면, 제2 부속 애플리케이션이 작동되지 않는 것을 의미하므로, 메모리 리소스의 소모를 감소시키기 위하여, 제2 부속 애플리케이션에 대응되는 제2 실행 컨테이너를 폐기하고, 제2 실행 컨테이너를 폐기할 때, 제2 부속 애플리케이션의 전처리 단계에서의 데이터도 폐기한다.
또는 선택적으로, 만약 제2 부속 애플리케이션이 작동되면, 제1 부속 애플리케이션이 작동되지 않는 것을 의미하므로, 메모리 리소스의 소모를 감소시키기 위하여, 제1 부속 애플리케이션에 대응되는 제1 실행 컨테이너를 폐기하고, 제1 실행 컨테이너을 폐기할 때, 제1 부속 애플리케이션의 전처리 과정에서의 데이터도 폐기한다.
단계(207), 만약 작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기한다.
선택적으로, 본 실시예에서, 사용자가 어느 부속 애플리케이션을 연 후, 해당 부속 애플리케이션의 상태에 대해 모니러팅하고, 만약 해당 부속 애플리케이션에 대한 사용자의 닫음 조작이 모니터링되면, 해당 부속 애플리케이션에 대해 다시 작동시키지 않는 것을 의미하므로, 메모리 리소스의 소모를 감소시키기 위하여, 닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 닫음 조작이 수행되는 부속 애플리케이션의 전처리 과정의 데이터를 폐기한다.
닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기한 후, 하나의 대응되는 아이들 실행 컨테이너를 구축하여, 항상 2개의 실행 컨테이너가 존재하고, 적어도 하나의 실행 컨테이너는 아이들 상태이도록 확보한다는 것을 이해하여야 한다. 기타 부속 애플리케이션에 대해 전처리하여, 각 부속 애플리케이션 사이의 물리적 격리를 실현할 뿐만 아니라, 각 부속 애플리케이션 작동 시 순간적으로 열리도록 최대로 확보한다.
단계(208), 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는지 여부를 모니터링하고, 만약 존재하면, 단계(209)를 수행하고, 아니면 종료한다.
단계(209), 다른 하나의 실행 컨테이너를 구축한다.
선택적으로, 본 실시예에서, 열린 부속 애플리케이션에 대해 닫은 후, 만약 사용자가 표시 영역 내의 리소스 결과 페이지에 대해 업데이트 조작을 수행하면, 사용자가 업데이트된 후의 리소스 결과 페이지에 표시된 기타 부속 애플리케이션을 열 가능성이 존재하는 것을 의미하므로, 만약 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는 것으로 모니터링되면, 다른 하나의 실행 컨테이너를 구축하고, 해당 실행 컨테이너는 업데이트된 후의 리소스 결과 페이지에 표시된 기타 부속 애플리케이션에 대한 전처리에 사용될 수 있다. 적어도 하나의 실행 컨테이너가 아이들 상태여서, 기타 부속 애플리케이션에 대해 전처리하도록 확보하여, 각 부속 애플리케이션 사이를 물리적으로 격리시킬 뿐만 아니라, 각 부속 애플리케이션 작동 시 순간적인 열리도록 최대로 확보한다.
여기서, 표시 영역 내의 리소스 결과 페이지에 대한 사용자의 업데이트 조작은 표시 영역 내의 리소스 결과 페이지에 대한 사용자의 슬라이딩 조작, 또는 기타 업데이트 조작일 수 있으며, 본 실시예에서는 이에 대해 한정하지 않는다.
본 실시예에 따른 애플리케이션의 작동 방법은, 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션과 제2 부속 애플리케이션이 동시에 포함되어 있는 것으로 확인될 때, 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정하고, 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하고, 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행하여, 리소스 결과 페이지에 동시에 2개의 부속 애플리케이션이 표시될 때 백그라운드에서 대응되는 실행 컨테이너를 사용하여 대응되는 부속 애플리케이션에 대해 전처리하는 시나리오를 만족시킬 수 있다.
실시예 3
도5는 본 출원의 제3 실시예에 따른 애플리케이션의 작동 방법의 흐름도이다, 도5에 도시된 바와 같이, 본 실시예에 따른 애플리케이션의 작동 방법은 본 출원의 제1 실시예의 기초 상에서, 단계(101)-단계(102)에 대해 더 세분화한다. 제2 실시예와 다른 점은 단계(101)의 구체적인 세분화 단계이다. 또한, 제2 실시예와 유사하게, 실행 컨테이너를 구축하는 단계, 작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 작동되지 않은 부속 애플리케이션을 폐기하는 단계, 및 만약 작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하는 단계를 포함한다. 본 실시예에 따른 애플리케이션의 작동 방법은 아래의 단계를 포함한다.
단계(301), 실행 컨테이너 구축 조건 만족 여부를 모니터링한다.
단계(302), 만약 실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축한다.
본 실시예에서, 단계(301)-단계(302)의 구현 방식은 본 출원의 제2 실시예 중 단계(201)-단계(202)의 구현 방식과 유사하므로, 여기서는 중복되는 설명을 생략한다.
단계(303), 만약 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정한다.
선택적으로, 본 실시예에서, 표시 영역의 현재 리소스 결과 페이지에 제1 부속 애플리케이션만 포함되어 있으면, 현재에 제1 부속 애플리케이션의 프리로딩 조건만 만족하는 것을 의미하므로, 현재 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하는 단계만 수행한다.
단계(304), 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행한다.
본 실시예에서, 단계(304)의 구현 방식은 제2 실시예 중 단계(204) 중 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하는 구현 방식과 유사하므로, 여기서는 중복되는 설명을 생략한다.
단계(305), 표시 영역 내의 리소스 결과 페이지에 대한 업데이트 조작에 응답하여, 만약 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정한다.
선택적으로, 본 실시예에서, 사용자가 표시 영역의 리소스 결과 페이지에 대해 업데이트할 때, 만약 리소스 결과 페이지를 업데이트하는 과정에서, 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있으면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정한다.
여기서, 사용자가 표시 영역 내의 리소스 결과 페이지에 대해 업데이트하는 것은 표시 영역 내의 리소스 결과 페이지에 대한 사용자의 슬라이딩, 또는 기타 업데이트 조작일 수 있으며, 본 실시예에서는 이에 대해 한정하지 않는다.
업데이트 후의 리소스 결과 페이지는 제2 부속 애플리케이션을 포함할 뿐만 아니라 제1 부속 애플리케이션도 포함하는 상황이 발생할 수 있다는 것을 이해할 수 있다.
단계(306), 백그라운드에서 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다.
본 실시예에서, 단계(306)의 구현 방식은 제2 실시예 중 단계(204)에서 백그라운드제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행하는 구현 방식과 유사하므로, 여기서는 중복되는 설명을 생략한다.
여기서, 프리로딩 후의 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 목표 함수는 대응되는 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정될 때, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 서비스 데이터를 프리 다운로드하고, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성할 것을 지시한다.
단계(307), 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다.
단계(308), 작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 작동되지 않은 부속 애플리케이션을 폐기한다.
단계(309), 만약 작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기한다.
단계(310), 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작 존재여부를 모니터링하고, 만약 존재하면, 단계(311)를 수행하고, 아니면 종료한다.
단계(311), 다른 하나의 실행 컨테이너를 구축한다.
본 실시예에서, 단계(307-단계(311)의 구현 방식은 본 출원의 제2 실시예 중 단계(205)-단계(209)의 구현 방식과 유사하므로, 여기서는 중복되는 설명을 생략한다.
본 실시예에 따른 애플리케이션의 작동 방법은, 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션이 포함되어 있는 것으로 확인될 때, 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하고; 표시 영역 내의 리소스 결과 페이지에 대한 업데이트 조작에 응답하여, 만약 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드에서 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다. 리소스 결과 페이지에 대해 업데이트할 때 2개의 부속 애플리케이션이 존재하면 백그라운드에서 대응되는 실행 컨테이너를 사용하여 대응되는 부속 애플리케이션에 대해 전처리하는 시나리오를 만족한다.
특별히 설명하면, 제2 실시예 와 제3 실시예 중 실시 가능 방식은 단독으로 실시될 수 있고, 충돌되지 않는 상황에서 임의의 조합 방식으로 결합하여 실시할 수도 있으며, 본 출원은 이에 대해 한정하지 않는다.
실시예 4
도6은 본 출원의 제4 실시예에 따른 애플리케이션의 작동 장치의 구조도이다. 도6에 도시된 바와 같이, 본 실시예에 따른 애플리케이션의 작동 장치는 호스트 애플리케이션에 적용되고, 호스트 애플리케이션에 적어도 하나의 부속 애플리케이션이 탑재되며, 호스트 애플리케이션은 전자기기에 위치한다. 해당 애플리케이션의 작동 장치(600)는 프로그램 전처리 모듈(601) 및 프로그램 작동 모듈(602)을 포함한다.
여기서, 프로그램 전처리 모듈(601)은, 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행한다. 프로그램 작동 모듈(602)은, 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다.
본 실시예에 따른 애플리케이션의 작동 장치는 도3에 도시된 방법 실시예의 기술방안을 수행할 수 있으며, 그 구현원리와 기술효과는 도3에 도시된 방법 실시예와 유사하므로, 여기서는 중복되는 설명을 생략한다.
실시예 5
도7은 본 출원의 제5 실시예에 따른 애플리케이션의 작동 장치의 구조도이다. 도7에 도시된 바와 같이, 본 실시예에 따른 애플리케이션의 작동 장치(700)는 제4 실시예에 따른 애플리케이션의 작동 장치(600)의 기초 상에서, 프로그램 폐기 모듈(701), 제1 구축모듈(702) 및 제2 구축모듈(703)을 더 포함한다.
선택적으로, 실행 컨테이너는 제1 실행 컨테이너와 제2 실행 컨테이너를 포함한다.
선택적으로, 프로그램 전처리 모듈(601)은 구체적으로,
만약 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션과 제2 부속 애플리케이션이 포함되어 있는 것으로 확인될 때, 제1 부속 애플리케이션과 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고, 상기 리소스 결과 페이지 중 상기 제1 부속 애플리케이션은 상기 제2 부속 애플리케이션의 앞에 위치하고; 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하고, 제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다.
선택적으로, 프로그램 전처리 모듈(601)은 구체적으로,
만약 표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드에서 제1 실행 컨테이너를 사용하여 제1 부속 애플리케이션에 대해 프리로딩을 수행하고; 표시 영역 내에서 이루어지는 리소스 결과 페이지에 대한 업데이트 조작에 응답하여, 만약 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드제2 실행 컨테이너를 사용하여 제2 부속 애플리케이션에 대해 프리로딩을 수행한다.
여기서, 프리로딩 후의 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 목표 함수는 대응되는 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정될 때, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 서비스 데이터를 프리 다운로드하고, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성하도록 지시한다.
선택적으로, 프로그램 폐기 모듈(701)은 작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 작동되지 않은 부속 애플리케이션을 폐기한다.
선택적으로, 제1 구축모듈(702)은 만약 작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는지 여부를 모니터링하고; 만약 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는 것으로 모니터링되면, 다른 하나의 실행 컨테이너를 구축한다.
선택적으로, 프로그램 폐기 모듈(701)은 또한,
닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기한다.
선택적으로, 제2 구축모듈(703)은 실행 컨테이너 구축 조건 만족 여부를 모니터링하고; 만약 실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축한다.
선택적으로, 제2 구축모듈(703)은 실행 컨테이너 구축 조건 만족 여부를 모니터링할 때, 구체적으로,
호스트 애플리케이션이 작동되었는지 여부를 모니터링하고; 만약 호스트 애플리케이션이 작동된 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하는 것으로 결정하고; 만약 호스트 애플리케이션이 작동되지 않은 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하지 않는 것으로 결정한다.
본 실시예에 따른 애플리케이션의 작동 장치는 도4-도5에 도시된 방법 실시예의 기술방안을 수행할 수 있으며, 그 구현원리와 기술효과는 도4-도5에 도시된 방법 실시예와 유시하므로, 여기서는 중복되는 설명을 생략한다.
본 출원의 실시예에 따르면, 본 출원은 전자기기와 판독 가능 저장매체를 더 제공한다.
도 8은 본 출원의 실시예에 따른 애플리케이션의 작동 방법을 구현하기 위한 전자기기의 블록도이다. 전자기기는 다양한 형태의 디지털 컴퓨터, 예컨대, 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 스테이션, 개인 휴대 단말, 서버, 블레이드 서버, 대형 컴퓨터, 및 기타 적합한 컴퓨터를 의미한다. 전자기기는 다양한 형태의 이동장치, 예컨대, 개인 디지털 처리, 셀폰, 스마트 폰, 웨어러블 기기 및 기타 유사한 컴퓨팅 장치를 의미할 수도 있다. 본문에 개시된 부재, 이들의 연결 및 관계, 및 이들의 기능은 단지 예시적인 것이며, 본문에 개시된 것 및/또는 요구하는 본 출원의 구현을 한정하려는 의도가 아니다.
도8에 도시된 바와 같이, 해당 전자기기는 하나 또는 복수의 프로세서(801), 메모리(802), 및 각 부재를 연결시키기 위한 고속 인터페이스와 저속 인터페이스를 포함하는 인터페이스를 포함한다. 각각의 부재는 서로 다른 버스를 통해 서로 연결되며, 공통 메인보드에 장착되거나 수요에 따라 기타 방식으로 장착될 수 있다. 프로세서는 전자기기 내에서 실행되는 명령을 처리할 수 있으며, 메모리 내 또는 메모리 상에 저장되어 외부 입력/출력 장치(예컨대, 인터페이스에 커플링된 디스플레이 기기) 상에 GUI의 그래픽 정보를 표시하는 명령을 포함할 수 있다. 기타 실시형태에서, 수요에 따라, 복수의 프로세서 및/또는 복수의 버스와 복수의 메모리를 같이 사용할 수 있다. 마찬가지로, 복수의 전자기기를 연결할 수 있으며, 각각의 기기는 부분 필요한 조작을 제공한다(예를 들어, 서버 어레이, 한 세트의 블레이드 서버, 또는 멀티 프로세서 시스템으로서). 도8은 하나의 프로세서(801)를 예로 든다.
메모리(802)는 바로 본 출원에 따른 비일시적 컴퓨터 판독 가능 저장매체이다. 여기서, 메모리에는 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장되어, 적어도 하나의 프로세서가 본 출원에 따른 애플리케이션의 작동 방법을 수행하도록 한다. 본 출원의 비일시적 컴퓨터 판독 가능 저장매체는 컴퓨터 명령을 저장하고, 해당 컴퓨터 명령은 컴퓨터가 본 출원에 따른 애플리케이션의 작동 방법을 수행하도록 한다.
메모리(802)는 비일시적 컴퓨터 판독 가능 저장매체로서, 비일시적 소프트웨어 프로그램, 비일시적 컴퓨터 실행 가능 프로그램 및 모듈, 예컨대 본 출원의 실시예에 따른 애플리케이션의 작동 방법에 대응되는 프로그램 명령/모듈(예를 들어, 도 6에 도시된 프로그램 전처리 모듈(601) 및 프로그램 작동 모듈(602))을 저장할 수 있다. 프로세서(801)는 메모리(802)에 저장된 비일시적 소프트웨어 프로그램, 명령 및 모듈을 실행하여, 서버의 다양한 기능 응용 및 데이터 처리를 수행한다. 즉, 상술한 방법 실시예 중 애플리케이션의 작동 방법을 구현한다.
메모리(802)는 프로그램 저장 영역과 데이터 저장 영역을 포함할 수 있다. 여기서, 프로그램 저장 영역은 운영체제, 적어도 하나의 기능에 필요한 응용 프로그램을 저장할 수 있다. 데이터 저장 영역은 센서 방안을 결정하는 전자기기의 사용에 따라 구성되는 데이터 등을 저장할 수 있다. 한편, 메모리(802)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 예를 들어 적어도 하나의 자기 저장 장치, 플래시 메모리, 또는 기타 비일시적 솔리드 스테이트 저장 장치와 같은 비일시적 메모리를 포함할 수도 있다. 일부 실시예에서, 메모리(802)는 선택적으로 프로세서(801)에 대해 원격으로 설치되는 메모리를 포함할 수 있다. 이러한 원격 메모리는 네트워크를 통해 센서 방안을 결정하는 전자기기에 연결될 수 있다. 상술한 네트워크의 실예로서 인터넷, 인트라넷, 근거리 통신망, 이동 통신망 및 그 조합을 포함하지만 이에 한정되지 않는다.
도8의 전자기기는 입력장치(503)와 출력장치(504)를 더 포함할 수 있다. 프로세서(801), 메모리(802), 입력장치(503) 및 출력장치(804)는 버스 또는 기타 방식으로 연결될 수 있으며, 도8에서는 버스를 통해 연결되는 것을 예시하고 있다.
입력장치(803)는 입력되는 숫자 또는 문자 부호 정보를 수신할 수 있고, 센서 방안을 결정하기 위한 전자기기의 사용자 설정 및 기능 제어에 대한 키 신호 입력을 생성할 수 있다. 예를 들어 터치 스크린, 키패드, 마우스, 트랙패드, 터치패널, 지시레버, 하나 또는 복수의 마우스 버튼, 트랙 볼, 조종 레버 등의 입력장치가 있다. 출력장치(504)는 디스플레이 기기, 보조 조명 장치(예를 들어, LED) 및 촉각 피드백 장치(예를 들어, 진동모터) 등을 포함할 수 있다. 해당 디스플레이 기기는, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이와 플라즈마 디스플레이 등을 포함할 수 있지만 이에 한정되지 않는다. 일부 실시형태에서, 디스플레이 기기는 터치 스크린일 수 있다.
본 출원의 실시예에 따르면, 본 출원은 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램을 더 제공하며, 전자기기의 적어도 하나의 프로세서는 판독 가능 저장매체로부터 컴퓨터 명령을 판독할 수 있으며, 적어도 하나의 프로세서는 컴퓨터 프로그램을 실행하여 전자기기가 상술한 어느 실시예에 따른 방안을 수행하도록 한다.
여기에 기재되는 시스템 및 기술의 다양한 실시형태는 디지털 전자 회로 시스템, 집적 회로 시스템, ASIC(전용 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시형태는 하나 또는 복수의 컴퓨터 프로그램에서 구현되는 것을 포함할 수 있고, 해당 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행 및/또는 해석될 수 있으며, 해당 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로부터 데이터와 명령을 수신할 수 있으며, 데이터와 명령을 해당 저장 시스템, 해당 적어도 하나의 입력장치, 및 해당 적어도 하나의 출력장치로 전송한다.
이러한 컴퓨팅 프로그램(프로그램, 소프트웨어, 소프트웨어 응용, 또는 코드라고도 지칭)은 프로그래머블 프로세서의 기계적 명령을 포함하고, 고급 프로세스 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계적 언어를 이용하여 이러한 컴퓨팅 프로그램을 실행할 수 있다. 예컨대 본문에서 사용되는 용어 “기계 판독 가능 매체”와 “컴퓨터 판독 가능 매체”는 기계적 명령 및/또는 데이터를 프로그래머블 프로세서로 제공하기 위한 임의의 컴퓨터 프로그램 제품, 기기, 및/또는 장치(예를 들어, 자기 디스크, 광 디스크, 메모리, 프로그래머블 논리 디바이스(PLD))를 가리키고, 기계 판독 가능 신호인 기계적 명령을 수신하는 기계 판독 가능 매체를 포함한다. 용어 “기계 판독 가능 신호”는 기계적 명령 및/또는 데이터를 프로그래머블 프로세서로 제공하기 위한 임의의 신호를 가리킨다.
사용자와의 인터랙션을 제공하기 위하여, 컴퓨터 상에서 여기에 기재되는 시스템 및 기술을 실시할 수 있으며, 해당 컴퓨터는 사용자에게 정보를 표시하기 위한 표시장치(예를 들어, CRT(캐소드레이 튜브) 또는 LCD(액정 디스플레이) 모니터); 및 키보드와 지향 장치(예를 들어, 마우스 또는 트랙볼)를 구비하고, 사용자는 해당 키보드와 해당 지향 장치를 통해 입력을 컴퓨터로 제공할 수 있다. 기타 종류의 장치는 사용자와의 인터랙션을 제공할 수도 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고; 임의의 형태(사운드 입력, 음성 입력 또는 촉각 입력)을 통해 사용자로부터의 입력을 수신할 수 있다.
여기에 기재되는 시스템과 기술은 백그라운드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버로서), 또는 중간부재를 포함하는 컴퓨팅 시스템(예를 들어, 응용 서버), 또는 프론트 엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 그래픽 유저 인터페이스 또는 인터넷 브라우저를 구비하는 사용자 컴퓨터, 사용자는 해당 그래픽 유저 인터페이스 또는 해당 인터넷 브라우저를 통해 여기에 기재되는 시스템 및 기술의 실시형태와 인터랙션할 수 있다), 또는 이러한 백그라운드 부재, 중간 부재, 또는 프론트 엔드 부재를 포함하는 임의의 조합의 컴퓨팅 시스템에서 실시될 수 있다. 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)을 통해 시스템의 부재를 서로 연결시킬 수 있다. 통신 네트워크의 예시로서, 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 통상적으로 통신 네트워크를 통해 인터랙션한다. 상응한 컴퓨터 상에서 실행되며 서로 클라이언트 - 서버 관계를 가지는 컴퓨터 프로그램을 통해 클라이언트와 서버의 관계를 생성한다.
본 출원 실시예의 기술방안에 따르면, 만약 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고; 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작한다. 부속 애플리케이션에 대해 전처리할 때, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 부속 애플리케이션에 대해 전처리를 수행하고, 서로 다른 부속 애플리케이션의 전처리 과정을 실행 컨테이너를 통해 완전히 물리적으로 격리시켜, 서로 간섭할 수 없으므로, 부속 애플리케이션 사이의 실행 샌드 박스 매커니즘을 보호하고, 실행 컨테이너에서 대응되는 부속 애플리케이션에 대한 자유 설정을 구현하고, 부속 애플리케이션 전처리 시의 안전을 향상시킨다. 또한, 각 실행 컨테이너는 하나의 독립된 단일 스레드 임무이므로, 하나의 부속 애플리케이션에 대응되는 실행 컨테이너에서 프리로딩할 때, 만약 사용자가 다른 하나의 부속 애플리케이션을 열더라도 대응되는 실행 컨테이너를 직접 열 수 있으며, 하나의 부속 애플리케이션 프리로딩이 완료될 때까지 대기한 후 해당 부속 애플리케이션을 열 필요가 없으므로, 부속 애플리케이션 열림 속도를 향상시키고, 작동 성능의 퇴화를 방지한다.
상술한 다양한 형태의 프로세스를 사용하여 단계를 재배열, 추가 또는 삭제할 수 있다. 예를 들어, 본 출원에 기재된 각 단계는 병열로 수행될 수 있고 순차적으로 수행될 수도 있고 서로 다른 순서로 수행될 수도 있으며, 본 출원에 개시된 기술적 해결수단이 원하는 결과를 얻을 수만 있다면, 본문은 이에 대해 한정하지 않는다.
상술한 구체적인 실시형태는 본 출원의 보호범위에 대한 한정이 아니다. 본 분야의 통상의 지식을 가진 자라면, 설계 요구와 기타 요소를 기초로, 다양한 수정, 조합, 서브 조합 및 대체를 가할 수 있음을 이해할 수 있을 것이다. 본 출원의 정신과 원칙 내에서 이루어진 모든 수정, 동등한 치환 및 개선 등은 모두 본 출원의 보호 범위 내에 속하는 것으로 간주하여야 한다.

Claims (23)

  1. 적어도 하나의 부속 애플리케이션이 탑재된 호스트 애플리케이션에 적용되는 애플리케이션의 작동 방법에 있어서,
    실행 컨테이너 구축 조건 만족 여부를 모니터링하는 단계 - 상기 실행 컨테이너는 제1 실행 컨테이너와 제2 실행 컨테이너를 포함;
    실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축하는 단계;
    적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 단계;
    상기 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작하는 단계를 포함하는 것을 특징으로 하는 애플리케이션의 작동 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 단계는,
    표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션과 제2 부속 애플리케이션이 포함되어 있는 것으로 확인될 때, 제1 부속 애플리케이션과 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고, 상기 리소스 결과 페이지 중 상기 제1 부속 애플리케이션은 상기 제2 부속 애플리케이션의 앞에 위치하는 단계;
    백그라운드에서 제1 실행 컨테이너를 사용하여 상기 제1 부속 애플리케이션에 대해 프리로딩을 수행하고, 제2 실행 컨테이너를 사용하여 상기 제2 부속 애플리케이션에 대해 프리로딩을 수행하는 단계;를 포함하는 것을 특징으로 하는 작동 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 단계는,
    표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하는 단계;
    백그라운드에서 제1 실행 컨테이너를 사용하여 상기 제1 부속 애플리케이션에 대해 프리로딩을 수행하는 단계;
    표시 영역 내의 리소스 결과 페이지에 대한 업데이트 조작에 응답하여, 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하는 단계;
    백그라운드에서 제2 실행 컨테이너를 사용하여 상기 제2 부속 애플리케이션에 대해 프리로딩를 수행하는 단계;를 포함하는 것을 특징으로 하는 작동 방법.
  5. 제3항 또는 제4항에 있어서,
    프리로딩 후의 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 상기 목표 함수는 상기 대응되는 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정될 때, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 서비스 데이터를 프리 다운로드하고, 상기 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성하도록 지시하는 것인 것을 특징으로 하는 작동 방법.
  6. 제1항에 있어서,
    상기 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드가 대응되는 부속 애플리케이션을 작동시키는 단계 후에, 상기 방법은,
    작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 상기 작동되지 않은 부속 애플리케이션을 폐기하는 단계를 더 포함하는 것을 특징으로 하는 작동 방법.
  7. 제6항에 있어서,
    작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는지 여부를 모니터링하는 단계;
    표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는 것으로 모니터링되면, 다른 하나의 실행 컨테이너를 구축하는 단계;를 더 포함하는 것을 특징으로 하는 작동 방법.
  8. 제7항에 있어서,
    작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 상기 방법은,
    닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하는 단계를 더 포함하는 것을 특징으로 하는 작동 방법.
  9. 삭제
  10. 제1항에 있어서,
    실행 컨테이너 구축 조건 만족 여부를 모니터링하는 단계는,
    호스트 애플리케이션이 작동되었는지 여부를 모니터링하는 단계;
    호스트 애플리케이션이 작동된 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하는 것으로 결정하는 단계;
    호스트 애플리케이션이 작동되지 않은 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하지 않는 것으로 결정하는 단계;를 포함하는 것을 특징으로 하는 방법.
  11. 적어도 하나의 부속 애플리케이션이 탑재된 호스트 애플리케이션에 적용되는애플리케이션의 작동 장치에 있어서,
    실행 컨테이너 구축 조건 만족 여부를 모니터링하되, 상기 실행 컨테이너는 제1 실행 컨테이너와 제2 실행 컨테이너를 포함하고; 실행 컨테이너 구축 조건을 만족하는 것으로 결정되면, 백그라운드에서 제1 실행 컨테이너와 제2 실행 컨테이너를 구축하는 제2 구축모듈;
    적어도 하나의 부속 애플리케이션의 전처리 조건을 만족하는 것으로 결정되면, 백그라운드에서 대응되는 실행 컨테이너를 사용하여 상기 부속 애플리케이션에 대해 전처리를 수행하는 프로그램 전처리 모듈;
    상기 부속 애플리케이션에 대한 선택 조작에 응답하여, 포어그라운드에서 대응되는 부속 애플리케이션을 시작하는 프로그램 작동 모듈;을 포함하는 것을 특징으로 하는 애플리케이션의 작동 장치.
  12. 삭제
  13. 제11항에 있어서,
    상기 프로그램 전처리 모듈은 구체적으로,
    표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션과 제2 부속 애플리케이션이 포함되어 있는 것으로 확인될 때, 제1 부속 애플리케이션과 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고, 상기 리소스 결과 페이지 중 상기 제1 부속 애플리케이션은 상기 제2 부속 애플리케이션의 앞에 위치하고;백그라운드에서 제1 실행 컨테이너를 사용하여 상기 제1 부속 애플리케이션에 대해 프리로딩을 수행하고, 제2 실행 컨테이너를 사용하여 상기 제2 부속 애플리케이션에 대해 프리로딩을 수행하는 것을 특징으로 하는 작동 장치.
  14. 제11항에 있어서,
    상기 프로그램 전처리 모듈은 구체적으로,
    표시 영역 내의 리소스 결과 페이지에 제1 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제1 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드에서 제1 실행 컨테이너를 사용하여 상기 제1 부속 애플리케이션에 대해 프리로딩을 수행하고; 표시 영역 내의 리소스 결과 페이지에 대한 업데이트 조작에 응답하여, 업데이트 후의 리소스 결과 페이지에 제2 부속 애플리케이션이 포함되어 있는 것으로 확인되면, 제2 부속 애플리케이션의 프리로딩 조건을 만족하는 것으로 결정하고; 백그라운드에서 제2 실행 컨테이너를 사용하여 상기 제2 부속 애플리케이션에 대해 프리로딩를 수행하는 것을 특징으로 하는 작동 장치.
  15. 제13항 또는 제14항에 있어서,
    프리로딩 후의 부속 애플리케이션은 대응되는 목표 함수를 포함하고, 상기 목표 함수는 상기 대응되는 부속 애플리케이션이 서비스 데이터 다운로드 조건을 만족하는 것으로 결정될 때, 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 서비스 데이터를 프리 다운로드하고, 상기 대응되는 실행 컨테이너에서 대응되는 부속 애플리케이션의 작동 표시 페이지를 렌더링하여 생성하도록 지시하는 것인 것을 특징으로 하는 작동 장치.
  16. 제11항, 제13항, 제14항 중 어느 한 항에 있어서,
    작동되지 않은 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하여, 상기 작동되지 않은 부속 애플리케이션을 폐기하는 프로그램 폐기 모듈을 더 포함하는 것을 특징으로 하는 작동 장치.
  17. 제16항에 있어서,
    작동된 부속 애플리케이션에 대한 닫음 조작이 모니터링되면, 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는지 여부를 모니터링하고; 표시 영역 내에 리소스 결과 페이지에 대한 업데이트 조작이 존재하는 것으로 모니터링되면, 다른 하나의 실행 컨테이너를 구축하는 제1 구축모듈을 더 포함하는 것을 특징으로 하는 작동 장치.
  18. 제17항에 있어서,
    상기 프로그램 폐기 모듈은 또한,
    닫음 조작이 수행되는 부속 애플리케이션에 대응되는 실행 컨테이너를 폐기하는 것을 특징으로 하는 작동 장치.
  19. 삭제
  20. 제11항에 있어서,
    상기 제2 구축모듈은, 실행 컨테이너 구축 조건 만족 여부를 모니터링할 때, 구체적으로,
    호스트 애플리케이션이 작동되었는지 여부를 모니터링하고; 호스트 애플리케이션이 작동된 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하는 것으로 결정하고; 호스트 애플리케이션이 작동되지 않은 것으로 확인되면, 실행 컨테이너 구축 조건을 만족하지 않는 것으로 결정하는 것을 특징으로 하는 작동 장치.
  21. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결되는 메모리;를 포함하되, 여기서,
    상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항, 제3항, 제4항, 제6항 내지 제8항, 제10항 중 어느 한 항에 따른 방법을 수행할 수 있도록 하는 전자기기.
  22. 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체에 있어서, 상기 컴퓨터 명령은 컴퓨터가 제1항, 제3항, 제4항, 제6항 내지 제8항, 제10항 중 어느 한 항에 따른 방법을 수행하도록 하는 저장매체.
  23. 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 제1항, 제3항, 제4항, 제6항 내지 제8항, 제10항 중 어느 한 항에 따른 방법을 구현하는 컴퓨터 프로그램.
KR1020210036064A 2020-05-15 2021-03-19 애플리케이션의 작동 방법, 장치, 기기 및 저장매체 KR102546645B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010415301.6A CN111597027A (zh) 2020-05-15 2020-05-15 应用程序的启动方法、装置、设备及存储介质
CN202010415301.6 2020-05-15

Publications (2)

Publication Number Publication Date
KR20210038858A KR20210038858A (ko) 2021-04-08
KR102546645B1 true KR102546645B1 (ko) 2023-06-22

Family

ID=72187161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210036064A KR102546645B1 (ko) 2020-05-15 2021-03-19 애플리케이션의 작동 방법, 장치, 기기 및 저장매체

Country Status (5)

Country Link
US (1) US20210191739A1 (ko)
EP (1) EP3812898A3 (ko)
JP (1) JP7090774B2 (ko)
KR (1) KR102546645B1 (ko)
CN (1) CN111597027A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817492B (zh) * 2021-01-12 2024-09-27 山东高速信联科技股份有限公司 移动终端中应用程序管理方法及系统
CN113254090B (zh) * 2021-06-04 2024-05-28 深圳市火乐科技发展有限公司 一种应用管理方法、装置及投影设备
CN114398094B (zh) * 2021-12-21 2023-08-18 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质
EP4369194A1 (en) * 2022-01-27 2024-05-15 Samsung Electronics Co., Ltd. Electronic device for executing application in background process, and operation method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175180A (ja) 2012-02-24 2013-09-05 Pantech Co Ltd アプリケーション切替装置及び方法
US20180032369A1 (en) 2014-08-26 2018-02-01 Alibaba Group Holding Limited Method and apparatus for managing background application
CN109753617A (zh) * 2019-01-14 2019-05-14 广州虎牙信息科技有限公司 一种页面显示方法、设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3422237B1 (en) * 2012-10-10 2023-08-16 Citrix Systems, Inc. Policy-based application management
IN2013DE00359A (ko) * 2013-02-07 2015-06-19 Samsung India Electronics Pvt Ltd
CN103729240B (zh) * 2013-12-02 2017-02-22 青岛海信电器股份有限公司 应用程序控制方法
US10146842B2 (en) * 2015-11-19 2018-12-04 Google Llc Pre-instantiating native applications in background
US9830175B1 (en) * 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9900264B1 (en) * 2017-01-09 2018-02-20 Red Hat, Inc. Adaptive balancing of application programming interface calls of cloud tenants
CN107291495A (zh) * 2017-06-01 2017-10-24 努比亚技术有限公司 一种共享资源加载方法、终端及计算机可读存储介质
CN108920202B (zh) * 2018-05-15 2020-09-15 Oppo广东移动通信有限公司 应用预加载管理方法、装置、存储介质及智能终端
CN108776599B (zh) * 2018-05-21 2022-04-08 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
CN110413921B (zh) * 2019-06-21 2022-08-30 深圳壹账通智能科技有限公司 网页加载方法、装置、计算机设备和存储介质
CN110321178A (zh) * 2019-06-28 2019-10-11 百度在线网络技术(北京)有限公司 附属应用端的启动处理方法、装置、设备及存储介质
CN111124391A (zh) * 2019-12-18 2020-05-08 中科全维科技(苏州)有限公司 一种桌面端软件挂件视窗管理方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175180A (ja) 2012-02-24 2013-09-05 Pantech Co Ltd アプリケーション切替装置及び方法
US20180032369A1 (en) 2014-08-26 2018-02-01 Alibaba Group Holding Limited Method and apparatus for managing background application
CN109753617A (zh) * 2019-01-14 2019-05-14 广州虎牙信息科技有限公司 一种页面显示方法、设备和存储介质

Also Published As

Publication number Publication date
JP7090774B2 (ja) 2022-06-24
KR20210038858A (ko) 2021-04-08
CN111597027A (zh) 2020-08-28
EP3812898A2 (en) 2021-04-28
EP3812898A3 (en) 2021-08-25
JP2021119479A (ja) 2021-08-12
US20210191739A1 (en) 2021-06-24

Similar Documents

Publication Publication Date Title
KR102546645B1 (ko) 애플리케이션의 작동 방법, 장치, 기기 및 저장매체
EP3828701B1 (en) Mini app processing method, server, device and storage medium
US9635138B2 (en) Client-server input method editor architecture
US11663037B2 (en) Service information processing method, apparatus, device and computer storage medium
CN111475259B (zh) 小程序加载方法、装置及电子设备
CN110704162B (zh) 物理机共享容器镜像的方法、装置、设备及存储介质
US10915305B2 (en) Reducing compilation time for computer software
US10684838B2 (en) Dynamic application deployment
US11270669B2 (en) Rendering method and apparatus, electronic device and storage medium
US11294651B2 (en) Code execution method, device, and rendering apparatus
KR102572726B1 (ko) 호스팅 애플리케이션의 컴파일 최적화 방법, 장치, 전자 기기 및 판독 가능 저장 매체
CN111767090A (zh) 小程序的启动方法、装置、电子设备以及存储介质
CN112000394A (zh) 用于访问小程序的方法、装置、设备以及存储介质
CN114416578A (zh) 测试方法和装置
US20160216979A1 (en) User initiated data rollback using operating system partitions
US11379201B2 (en) Wrapping method, registration method, device, and rendering apparatus
CN111966877B (zh) 前端服务方法、装置、设备及存储介质
US20190220294A1 (en) Using lightweight jit compilation for short-lived jvms on parallel distributing computing framework
CN112379945B (zh) 用于运行应用的方法、装置、设备以及存储介质
JP7147123B2 (ja) ソースチャネル決定方法、装置、機器、プログラム及びコンピューター記憶媒体
CN113051122B (zh) 性能数据获取方法、装置、电子设备和介质
US11310112B2 (en) Automatic server configuration using a switch
US20210248139A1 (en) Data mining system, method, and storage medium
US20240160412A1 (en) Non-intrusive build time injection tool for accelerating launching of cloud applications
WO2024102326A1 (en) A non-intrusive build time injection tool for accelerating launching of cloud applications

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant