WO2023109310A1 - 进程管理方法、装置、存储介质以及电子设备 - Google Patents

进程管理方法、装置、存储介质以及电子设备 Download PDF

Info

Publication number
WO2023109310A1
WO2023109310A1 PCT/CN2022/126760 CN2022126760W WO2023109310A1 WO 2023109310 A1 WO2023109310 A1 WO 2023109310A1 CN 2022126760 W CN2022126760 W CN 2022126760W WO 2023109310 A1 WO2023109310 A1 WO 2023109310A1
Authority
WO
WIPO (PCT)
Prior art keywords
host application
priority
application
target process
target
Prior art date
Application number
PCT/CN2022/126760
Other languages
English (en)
French (fr)
Inventor
袁科杰
金炼城
Original Assignee
北京有竹居网络技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京有竹居网络技术有限公司 filed Critical 北京有竹居网络技术有限公司
Publication of WO2023109310A1 publication Critical patent/WO2023109310A1/zh

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to the technical field of computers, and in particular, to a process management method, device, storage medium and electronic equipment.
  • the host application runs in the installation-free framework (engine) of the host application
  • the installation-free framework serves as the core process of the host application and is used to provide an operating environment required for the host application to run.
  • the core process is equivalent to the system process, which manages the running data of the host application, such as the calculation of the process stub, the calculation of the task stack, and so on.
  • the installation-free framework runs on the host application, it is only a background process in the host application for saving data. When the memory is insufficient, the system will kill the process running in the background to free up memory.
  • the operation of the host application depends on the installation-free framework, how to recycle the process of the installation-free framework will inevitably cause the host application to fail to run. Therefore, how to ensure the survival of the process of the installation-free framework during the running of the hosted application becomes particularly important.
  • the present disclosure provides a process management method, including:
  • the present disclosure provides a process management device, including:
  • An acquisition module configured to acquire the current process priority of the hosting application
  • An adjustment module configured to adjust the process priority of the target process of the host application corresponding to the host application to be consistent with the current process priority, and the target process creates a process for the host application to run the host application Processes necessary for the virtual operating environment;
  • the present disclosure provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processing device, the steps of the method described in the first aspect are implemented.
  • an electronic device including:
  • a processing device configured to execute the computer program in the storage device to implement the steps of the method in the first aspect.
  • the priority of the target process of the host application is adjusted to be consistent with the current process priority of the host application through the pre-established dependency between the process priority of the host application and the process priority of the target process.
  • the process priority of the target process of the host application is consistent with the current process priority of the host application, ensuring that the life cycle of the target process is not lower than the life cycle of the host application, thereby avoiding the occurrence of the target process being blocked Recycling causes the host application to crash, ensuring a good user experience for users when using the host application.
  • Fig. 1 is a schematic flowchart of a process management method provided according to an exemplary embodiment
  • Fig. 2 is a schematic flowchart of establishing a dependency relationship provided according to an exemplary embodiment
  • Fig. 3 is a schematic flowchart of a process management method provided according to another exemplary embodiment
  • Fig. 4 is a schematic diagram of module connections of a process management device provided according to an exemplary embodiment
  • Fig. 5 is a schematic structural diagram of an electronic device according to an exemplary embodiment.
  • the term “comprise” and its variations are open-ended, ie “including but not limited to”.
  • the term “based on” is “based at least in part on”.
  • the term “one embodiment” means “at least one embodiment”; the term “another embodiment” means “at least one further embodiment”; the term “some embodiments” means “at least some embodiments.” Relevant definitions of other terms will be given in the description below.
  • a hosted application refers to an application that is subordinate to the host application and runs depending on the running environment provided by the host application.
  • the host application can be referred to as the host for short, and can be used to represent the application body that provides the operating environment for the integrated module.
  • the social application integrates the module of the applet engine
  • the social application may have the capability of opening and displaying the applet.
  • the installation-free platform is integrated with a free-installation framework (engine), and the installation-free platform can run other native applications.
  • the host application runs in an installation-free framework (engine) of the host application, and the installation-free framework serves as a core process of the host application to provide an operating environment required for the host application to run. Since the operation of the host application depends on the installation-free framework, if the process of the installation-free framework is recycled by the system, the host application will inevitably fail to run. Therefore, how to ensure the survival of the process of the installation-free framework during the running of the hosted application becomes particularly important.
  • the first one is to continue running through the self-revival or resurrection of the process after the process of the installation-free framework is recycled by the system.
  • the second is to increase the priority of the process by using a foreground service.
  • the hosting application runs in the host application’s installation-free framework
  • the data is stored in the memory. If the process of the installation-free framework is recycled, the memory data will be lost. Even if the process of the installation-free framework is restarted, Its operational status has also become inconsistent.
  • the process priority of the free-installation framework can only be raised to "3".
  • the process of the free-installation framework still has the risk of being recycled by the system .
  • the process priority from "0" to "15" means that the priority is from high to low.
  • the hosting application running in the foreground The process priority of the system is "0", which may cause the system (for example, Android system) to recycle the process of the free-installation framework when reclaiming memory, causing the host application running in the foreground to crash.
  • the foreground service is used to increase the process priority of the installation-free framework, a notification bar that cannot be canceled will appear on the display interface, which brings troubles to the user.
  • the embodiments of the present disclosure provide a process management method, device, storage medium and electronic equipment.
  • the process priority of the target process is bound to the process priority of the host application, so that during the running of the host application Adjust the process priority of the target process to match the current process priority of the host application.
  • the dependency relationship is used to make the process priority of the target process change as the process priority of the host application changes.
  • the target process is a process necessary for the host application to create a virtual execution environment for running the host application.
  • the process priority of the target process is adjusted to "0", thus ensuring the installation-free framework of the host application
  • the life cycle of the process can not be lower than the life cycle of the host application, avoiding the problem that the target process is recycled and causing the host application to crash, and ensuring a good user experience for the user when using the host application.
  • Fig. 1 is a schematic flowchart of a process management method provided according to an exemplary embodiment.
  • the process management method provided by the embodiments of the present disclosure may be executed by an electronic device, specifically by a process management method device, which may be implemented in software and/or hardware and configured in the electronic device.
  • the process management method provided by the embodiment of the present disclosure may include the following steps.
  • the current process priority of the host application refers to the process priority of the host application in the current running state. For example, when the host application is running in the foreground, its current process priority is "0", and when the host application is running in the background, its current process priority is "3". Wherein, the current process priority of the hosting application can be determined through the system process.
  • the target process refers to the process necessary for the host application to create a virtual operating environment for running the hosted application. installed in the system, but run in the virtual runtime environment.
  • the target process may be a main process of the host application, or an independent process of the host application, and is used to manage data when the host application is running.
  • the dependency relationship means that the process priority of the target process depends on the process priority of the host application. Under this dependency relationship, the process priority of the target process changes with the change of the process priority of the host application. According to the dependency, the system can adjust the process priority of the target process. For example, when the host application is running in the foreground, the current process priority of the host application is "0", and according to the dependency relationship, the process priority of the target process is also "0". When the host application is running in the background, the current process priority of the host application is "3", and according to the dependency relationship, the process priority of the target process is also "3".
  • the dependency relationship actually binds the process priority of the target process with the process priority of the hosting application, so that during the running of the hosting application, the target process that the hosting application depends on will not be blocked by the system Recycle.
  • a dependency relationship between the process priority of the target process and the process priority of the hosted application may be established through the service component of the system.
  • the priority of the target process of the host application is adjusted to be consistent with the current process priority of the host application.
  • the process priority of the target process of the host application is consistent with the current process priority of the host application, ensuring that the life cycle of the target process is not lower than the life cycle of the host application, thereby avoiding the occurrence of the target process being blocked Recycling causes the host application to crash, ensuring a good user experience for users when using the host application.
  • Fig. 2 is a schematic flowchart of establishing a dependency relationship according to an exemplary embodiment. As shown in Figure 2, dependencies can be established through the following steps.
  • a communication channel between the host application and the target process is established, and the communication channel is used for inter-process communication (Inter-Process Communication, IPC) between the host application and the target process. That is, when the host application starts to run, the host application is controlled to perform inter-process communication with the target process.
  • IPC Inter-Process Communication
  • the communication channel between the host application and the target process can be established through the process communication component of the system.
  • the process communication component represents ContentProvider, which is one of the four major components of Android (Android), and is used for data interaction and sharing between processes.
  • ContentProvider is a component specially provided for developers in the Android system to share data between different applications. It provides a set of standard interfaces for obtaining and manipulating data, and allows developers to open their own application data to other applications according to their needs. Add, delete, modify and check without worrying about security issues caused by directly opening database permissions.
  • the process communication component establishes a communication channel between the hosting application and the target process in a robust manner.
  • the process communication component when it establishes the communication channel, it can use a stable (stable) method or an unstable (unstable) method to establish the communication channel.
  • the application program using the unstable type ContentProvider will not be killed because of the death of the remote ContentProvider process, but the application program using the stable type ContentProvider will be killed due to the death of the remote ContentProvider process.
  • the communication channel between the host application and the target process is established in a stable manner through the control process communication component. If the target process is recycled by the system, the installation-free apps running in the foreground will also be recycled synchronously.
  • the communication handle refers to the number of the communication channel established by the ContentProvider, and each communication channel has a unique number.
  • the process priority of the target process will be raised to the same level as the communication source process.
  • the communication source process is the process of the hosting application running in the foreground, and its process priority is "0".
  • the host application communicates with the target process
  • the corresponding communication handle is cached in the memory of the host application, and the communication handle is not released after the inter-process communication is completed.
  • the system considers that the host application has been communicating with the target process, thereby establishing a dependency relationship between the process priority of the target process and the process priority of the host application.
  • the priority of the host application is "0".
  • the system will consider that the host application has been communicating with the target process, thus The process priority of the target process is increased to be consistent with the process priority of the host application, that is, the process priority of the target process is increased to "0".
  • the process priority of the host application is reduced from “0" to "3". Since the communication handle is cached in the memory of the host application, the system will still consider that the host application is communicating with the target process. Perform inter-process communication, thereby increasing the process priority of the target process to be consistent with the process priority of the host application, that is, the process priority of the target process is "3".
  • the communication handle since the communication handle is cached in the memory of the host application, when the memory of the host application is reclaimed, the communication handle will also be released, thereby canceling the process priority of the target process and the process priority of the host application dependencies between.
  • Fig. 3 is a schematic flowchart of a process management method according to another exemplary embodiment. As shown in Fig. 3, the process management method may include the following steps.
  • the current running state of the host application refers to a real-time running state of the hosting application, such as a foreground running state or a background running state.
  • the current running state of the hosting application can be perceived through the system process or the hosting application.
  • the running of the host application depends on the target process of the host application, it may be determined whether to release the dependency between the process priority of the host application and the process priority of the target process according to the current running state of the host application.
  • the dependency relationship is maintained.
  • the host application when the host application is running in the foreground or in the background, the host application still needs to rely on the virtual operating environment created by the target process to run.
  • the process priority of the application remains consistent, thereby preventing the target process from being recycled by the system.
  • the way to maintain the dependency relationship may be to continue to store the communication handle in the memory of the host application, that is, not to release the communication handle.
  • the way to maintain the dependency relationship may be to continue to establish the dependency relationship through the service component.
  • the target process when the host application exits, the target process does not need to continue to create a virtual running environment for the host application to run. At this time, the dependency between the process priority of the target process and the process priority of the host application can be released. That is, after the host application exits, the process priority of the target process no longer changes with the change of the process priority of the host application.
  • the way of releasing the dependency relationship may be to release the communication handle cached in the memory of the hosting application.
  • the system no longer considers that the host application communicates with the target process in an inter-process, thereby releasing the dependency relationship.
  • releasing the dependency between the process priority of the host application and the process priority of the target process refers to releasing the dependency after the host application exits.
  • the electronic device re-establishes the dependency relationship between the process priority of the hosted application B and the process priority of the target process according to the above embodiment.
  • multiple dependencies may exist. When there are multiple dependencies, the process priority of the target process follows the corresponding highest process priority among the multiple dependencies.
  • Fig. 4 is a schematic diagram of module connections of a process management device according to an exemplary embodiment. As shown in FIG. 4 , an embodiment of the present disclosure provides a process management device, and the device 400 may include:
  • An acquisition module 401 configured to acquire the current process priority of the hosting application
  • the adjustment module 402 is configured to adjust the process priority of the target process of the host application corresponding to the host application to be consistent with the current process priority, and the target process is created for the host application to run the host application The processes necessary for the virtual operating environment;
  • the adjustment module 402 includes:
  • a channel establishment unit configured to establish a communication channel between the host application and the target process
  • the cache unit is configured to acquire a communication handle corresponding to the communication channel, and cache the communication handle in the memory of the hosting application, so as to establish the dependency relationship.
  • the channel establishment unit is specifically configured as:
  • a communication channel between the host application and the target process is established through a process communication component.
  • the channel establishment unit is specifically configured as:
  • a communication channel between the host application and the target process is established in a robust manner through the process communication component.
  • the device 400 also includes:
  • a state determination module configured to acquire the current running state of the hosting application
  • the judging module is configured to determine whether to release the dependency according to the current running state.
  • the judging module is specifically configured as:
  • FIG. 5 it shows a schematic structural diagram of an electronic device 600 suitable for implementing the embodiments of the present disclosure.
  • the terminal equipment in the embodiment of the present disclosure may include but not limited to such as mobile phone, notebook computer, digital broadcast receiver, PDA (personal digital assistant), PAD (tablet computer), PMP (portable multimedia player), vehicle terminal (such as mobile terminals such as car navigation terminals) and fixed terminals such as digital TVs, desktop computers and the like.
  • the electronic device shown in FIG. 5 is only an example, and should not limit the functions and scope of use of the embodiments of the present disclosure.
  • an electronic device 600 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 601, which may be randomly accessed according to a program stored in a read-only memory (ROM) 602 or loaded from a storage device 608. Various appropriate actions and processes are executed by programs in the memory (RAM) 603 . In the RAM 603, various programs and data necessary for the operation of the electronic device 600 are also stored.
  • the processing device 601, ROM 602, and RAM 603 are connected to each other through a bus 604.
  • An input/output (I/O) interface 605 is also connected to the bus 604 .
  • the following devices can be connected to the I/O interface 605: input devices 606 including, for example, a touch screen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; including, for example, a liquid crystal display (LCD), speaker, vibration an output device 607 such as a computer; a storage device 608 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 609.
  • the communication means 609 may allow the electronic device 600 to communicate with other devices wirelessly or by wire to exchange data. While FIG. 5 shows electronic device 600 having various means, it should be understood that implementing or having all of the means shown is not a requirement. More or fewer means may alternatively be implemented or provided.
  • embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer readable medium, where the computer program includes program code for executing the method shown in the flowchart.
  • the computer program may be downloaded and installed from a network via communication means 609, or from storage means 608, or from ROM 602.
  • the processing device 601 When the computer program is executed by the processing device 601, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are performed.
  • the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the two.
  • a computer readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof. More specific examples of computer readable storage media may include, but are not limited to, electrical connections with one or more wires, portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable Programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave carrying computer-readable program code therein. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device .
  • Program code embodied on a computer readable medium may be transmitted by any appropriate medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
  • the electronic device can communicate with any currently known or future-developed network protocol such as HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol), and can communicate with digital data in any form or medium (for example, communication networks) interconnect.
  • network protocols such as HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol)
  • Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network of.
  • the above-mentioned computer-readable medium may be included in the above-mentioned electronic device, or may exist independently without being incorporated into the electronic device.
  • the above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by the electronic device, the electronic device: acquires the current process priority of the host application;
  • the process priority of the target process is adjusted to be consistent with the current process priority, and the target process is a process necessary for the host application to create a virtual operating environment for running the host application; wherein, the host application
  • There is a dependency relationship between the process priority of the target process and the process priority of the target process and the dependency relationship is used to make the process priority of the target process change as the process priority of the host application changes.
  • Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, or combinations thereof, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages - such as "C" or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (for example, using an Internet service provider to connected via the Internet).
  • LAN local area network
  • WAN wide area network
  • Internet service provider for example, using an Internet service provider to connected via the Internet.
  • each block in a flowchart or block diagram may represent a module, program segment, or portion of code that contains one or more logical functions for implementing specified executable instructions.
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
  • modules involved in the embodiments described in the present disclosure may be implemented by software or by hardware. Wherein, the name of the module does not constitute a limitation on the module itself under certain circumstances.
  • FPGAs Field Programmable Gate Arrays
  • ASICs Application Specific Integrated Circuits
  • ASSPs Application Specific Standard Products
  • SOCs System on Chips
  • CPLD Complex Programmable Logical device
  • a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
  • a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
  • machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read only memory
  • EPROM or flash memory erasable programmable read only memory
  • CD-ROM compact disk read only memory
  • magnetic storage or any suitable combination of the foregoing.

Landscapes

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

Abstract

本公开涉及一种进程管理方法、装置、存储介质以及电子设备,涉及计算机技术领域,该方法包括:获取寄宿应用的当前进程优先级;将寄宿应用对应的宿主应用的目标进程的进程优先级调整为与当前进程优先级一致,目标进程为宿主应用创建用于运行寄宿应用的虚拟运行环境所必须的进程;其中,寄宿应用的进程优先级与目标进程的进程优先级之间存在依赖关系,依赖关系用于使得目标进程的进程优先级跟随寄宿应用的进程优先级的变化而变化。由此,使得在寄宿应用的运行过程中,确保了目标进程的生命周期不低于寄宿应用的生命周期,从而避免出现目标进程被回收而导致寄宿应用崩溃的问题,保证了用户在使用寄宿应用时的良好用户体验。

Description

进程管理方法、装置、存储介质以及电子设备
相关申请的交叉引用
本申请要求于2021年12月13日提交的,申请号为202111523027.5、发明名称为“进程管理方法、装置、存储介质以及电子设备”的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本公开涉及计算机技术领域,具体地,涉及一种进程管理方法、装置、存储介质以及电子设备。
背景技术
在免安装技术中,寄宿应用运行在宿主应用的免安装框架(引擎)中,该免安装框架作为宿主应用的核心进程,用于提供寄宿应用运行所需的运行环境。对于寄宿应用而言,该核心进程相当于系统进程,管理着寄宿应用运行时的数据,如进程桩的计算、任务栈的计算等等。
由于该免安装框架运行在宿主应用上,其仅是宿主应用中的一个用于保存数据的后台进程。当内存不足时,系统会将处于后台运行的进程杀死,以释放内存。但是,由于寄宿应用的运行依赖于免安装框架,如何免安装框架的进程被系统回收,必然会导致寄宿应用无法运行。因此,如何在寄宿应用的运行过程中保证免安装框架的进程存活变得尤其重要。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种进程管理方法,包括:
获取寄宿应用的当前进程优先级;
将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;
其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化 而变化。
第二方面,本公开提供一种进程管理装置,包括:
获取模块,配置为获取寄宿应用的当前进程优先级;
调整模块,配置为将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;
其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理装置执行时实现第一方面所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现第一方面所述方法的步骤。
基于上述技术方案,通过预先建立的寄宿应用的进程优先级与目标进程的进程优先级之间的依赖关系,将宿主应用的目标进程的优先级调整为与寄宿应用的当前进程优先级一致。使得在寄宿应用的运行过程中,宿主应用的目标进程的进程优先级与寄宿应用的当前进程优先级一致,确保了目标进程的生命周期不低于寄宿应用的生命周期,从而避免出现目标进程被回收而导致寄宿应用崩溃的问题,保证了用户在使用寄宿应用时的良好用户体验。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据一示例性实施例提供的一种进程管理方法的流程示意图;
图2是根据一示例性实施例提供的建立依赖关系的流程示意图;
图3是根据另一示例性实施例提供的一种进程管理方法的流程示意图;
图4是根据一示例性实施例提供的一种进程管理装置的模块连接示意图;
图5是根据一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
寄宿应用是指从属于宿主应用,依赖于宿主应用所提供的运行环境而运行的应用程序。宿主应用可以简称为宿主,可以用于表示为集成模块提供运行环境的应用主体,例如,以运行在客户端中的宿主应用为社交应用为例,当社交应用中集成了小程序引擎的模块时,该社交应用可以具备打开并展示小程序的能力。又例如,以运行在客户端中的宿主应用为免安装平台为例,免安装平台集成有免安装框架(引擎),该免安装平台可以运行其他原生应用程序。
寄宿应用运行在宿主应用的免安装框架(引擎)中,该免安装框架作为宿主应用的核心进程,用于提供寄宿应用运行所需的运行环境。由于寄宿应用的运行依赖于免安装框架,如果免安装框架的进程被系统回收,必然会导致寄宿应用无法运行。因此,如何在寄宿应用的运行过程中保证免安装框架的进程存活变得尤其重要。
在相关技术中,一般存在两种进程的保活方式。第一种是在免安装框架的进程被系统回收后,通过进程自我复活或被复活的方式继续运行。第二种是通过使用前台服务(foreground service)的方式提高进程的优先级。
针对第一种方式,由于寄宿应用运行在宿主应用的免安装框架中,数据均保存在内存中,如果免安装框架的进程被回收,将会导致内存数据丢失,即使重启免安装框架的进程,其运行状态也已经变得不一致。
针对第二种方式,通过前台服务的方式,只能将免安装框架的进程优先级提高至就“3”级,在免安装的应用场景中,免安装框架的进程依旧存在被系统回收的风险。其中,进程优先级从“0”到“15”表示优先级从高到低。当使用前台服务的方式提高免安装框架的进程优先级时,虽然免安装框架的进程优先级从后台进程的“15”级被提高至可见进程的“3”级,但是在前台运行的寄宿应用的进程优先级为“0”,导致系统(例如,安卓系统)在进行内存回收时,仍然可能会将免安装框架的进程进行回收,导致前台运行的寄宿应用出现闪退。而且,在免安装的应用场景下,使用前台服务提高免安装框架的进程优先级,会在显示界面中出现一个无法取消的通知栏,给用户的使用带来困扰。
针对上述技术问题,本公开实施例提供了一种进程管理方法、装置、存储介质以及电子设备。通过建立寄宿应用的进程优先级与宿主应用的目标进程的进程优先级之间的依赖关系,将目标进程的进程优先级与寄宿应用的进程优先级进程绑定,从而在寄宿应用的运行过程中将目标进程的进程优先级调整为与寄宿应用的当前进程优先级一致。其中,该依赖关系用于使得目标进程的进程优先级跟随寄宿应用的进程优先级的变化而变化。目标进程为宿主应用创建用于运行寄宿应用的虚拟运行环境所必须的进程。例如,当寄宿应用在前台运行时,寄宿应用的当前进程优先级为“0”级,根据该依赖关系,目标进程的进程优先级被调整为“0”级,从而保证宿主应用的免安装框架的进程的生命周期能够不低于寄宿应用的生命周期,避免出现目标进程被回收而导致寄宿应用崩溃的问题,保证了用户在使用寄宿应用时的良好用户体验。
下面将结合附图对本公开实施例提出的一种进程管理方法、装置、存储介质以及电子设备进行详细说明。
图1是根据一示例性实施例提供的一种进程管理方法的流程示意图。本公开实施例提供的进程管理方法可以通过电子设备执行,具体可以通过进程管理方法装置来执行,该装置可以有软件和/或硬件的方式实现,配置于电子设备中。请参考图1,本公开实施例提供的进程管理方法可以包括以下步骤。
S110,获取寄宿应用的当前进程优先级。
这里,寄宿应用的当前进程优先级是指寄宿应用在当前运行状态下的进程优先级。例如,当寄宿应用在前台运行时,其当前进程优先级为“0”级,当寄宿应用在后台运行时,其当前进程优先级为“3”级。其中,可以通过系统进程来确定寄宿应用的当前进程优先级。
S120,将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进 程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
这里,目标进程是指宿主应用创建用于运行寄宿应用的虚拟运行环境所必须的进程,该目标进程作为宿主应用的核心进程,其通过免安装框架为寄宿应用提供虚拟运行环境,寄宿应用并不安装在系统中,而是运行在该虚拟运行环境中。其中,目标进程可以是宿主应用的主进程,也可以是宿主应用的独立进程,用于管理寄宿应用运行时的数据。
依赖关系是指目标进程的进程优先级依赖于寄宿应用的进程优先级,在该依赖关系下,目标进程的进程优先级跟随寄宿应用的进程优先级变化而变化。根据该依赖关系,系统可以对目标进程的进程优先级进行调整。例如,当寄宿应用在前台运行时,寄宿应用的当前进程优先级为“0”级,根据该依赖关系,目标进程的进程优先级也为“0”级。当寄宿应用在后台运行时,寄宿应用的当前进程优先级为“3”级,根据该依赖关系,目标进程的进程优先级也为“3”级。
应当理解的是,该依赖关系实际上是将目标进程的进程优先级与寄宿应用的进程优先级进行绑定,以使得在寄宿应用的运行过程中,寄宿应用所依赖的目标进程不会被系统回收。
示例性地,在寄宿应用开始运行时,可以通过系统的服务组件来建立目标进程的进程优先级与寄宿应用的进程优先级之间的依赖关系。
由此,通过预先建立的寄宿应用的进程优先级与目标进程的进程优先级之间的依赖关系,将宿主应用的目标进程的优先级调整为与寄宿应用的当前进程优先级一致。使得在寄宿应用的运行过程中,宿主应用的目标进程的进程优先级与寄宿应用的当前进程优先级一致,确保了目标进程的生命周期不低于寄宿应用的生命周期,从而避免出现目标进程被回收而导致寄宿应用崩溃的问题,保证了用户在使用寄宿应用时的良好用户体验。
图2是根据一示例性实施例提供的建立依赖关系的流程示意图。如图2所示,依赖关系可以通过以下步骤建立。
S210,建立所述寄宿应用与所述目标进程之间的通信通道。
这里,在寄宿应用开始运行时,建立寄宿应用与目标进程之间的通信通道,通信通道用于寄宿应用与目标进程进行进程间通信(IInter-Process Communication,IPC)。即在寄宿应用开始运行时,控制寄宿应用与目标进程进行进程间通信。
在一些实施方式中,可以通过系统的进程通信组件建立寄宿应用与目标进程之间的通信通道。
其中,进程通信组件表示ContentProvider,为Android(安卓)四大组件之一,用于进程间的数据交互和共享。ContentProvider是Android系统中为开发者专门提供的不同应用间进行数据共享的组件,其提供了一套标准的接口用来获取以及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查,而无须担心直接开放数据库权限而带来的安全问题。
在一些实施方式中,进程通信组件以稳固的方式建立寄宿应用与目标进程之间的通信通道。
这里,进程通信组件在建立通信通道时,可以使用稳固(stable)的方式或不稳固(unstable)的方式建立通信通道。其中,采用unstable类型的ContentProvider的应用程序不会因为远程ContentProvider进程的死亡而被杀,而采用stable类型的ContentProvider的应用程序会因为远程ContentProvider进程的死亡而被杀。
在免安装的应用场景中,通过控制进程通信组件通过稳固的方式建立寄宿应用与目标进程之间的通信通道。如果目标进程被系统回收,则前台运行的免安装应用也会被同步回收。
S220,获取所述通信通道对应的通信句柄,并将所述通信句柄缓存在所述寄宿应用的内存中,以建立所述依赖关系。
这里,通信句柄是指ContentProvider建立的通信通道的编号,每个通信通道都有唯一的编号。在寄宿应用通过ContentProvider与目标进程进行进程间通信时,目标进程的进程优先级会被提高至与通信来源进程一样的等级。其中,通信来源进程就是正在前台运行的寄宿应用的进程,其进程优先级为“0”级。
在寄宿应用与目标进程进行进程间通信时,将对应的通信句柄缓存在寄宿应用的内存中,并在进程间通信完成后,也不对该通信句柄进行释放。此时,系统会认为寄宿应用一直在与目标进程进行进程间通信,从而建立目标进程的进程优先级与寄宿应用的进程优先级之间的依赖关系。
例如,当寄宿应用在前台运行时,寄宿应用的优先级为“0”级,在将上述通信句柄缓存在寄宿应用的内存后,系统会认为寄宿应用一直在与目标进程进行进程间通信,从而将目标进程的进程优先级提高为与寄宿应用的进程优先级一致,即目标进程的进程优先级被提高为“0”级。
当寄宿应用退到后台运行时,寄宿应用的进程优先级从“0”级降低为“3”级,由于将该通信句柄缓存在寄宿应用的内存中,系统依旧会认为寄宿应用在与目标进程进行进程间通信,从而将目标进程的进程优先级提高为与寄宿应用的进程优先级一致,即目标进程的进程优先级为“3”级。
应当理解的是,如果不使用上述依赖关系来提升目标进程的进程优先级,当寄宿应用退到后台运行时,寄宿应用的进程优先级会降低为“13”级。显然,通过使用上述依赖关系,能够极大地提高目标进程的进程优先级,从而避免出现寄宿应用在运行过程中由于目标进程被系统回收而导致的闪退问题。
值得说明的是,由于将通信句柄缓存在寄宿应用的内存中,因此,当寄宿应用的内存被回收后,通信句柄也会被释放,从而解除目标进程的进程优先级与寄宿应用的进程优先级之间的依赖关系。
图3是根据另一示例性实施例提供的一种进程管理方法的流程示意图。如图3所示,该进程管理方法可以包括以下步骤。
S310,获取所述寄宿应用的当前运行状态。
这里,寄宿应用的当前运行状态是指寄宿应用的实时运行状态,如前台运行状态或后台运行状态等。其中,可以通过系统进程或宿主应用来感知寄宿应用的当前运行状态。
S320,根据所述当前运行状态,确定是否解除所述依赖关系。
这里,由于寄宿应用的运行依赖于宿主应用的目标进程,因此可以根据寄宿应用的当前运行状态来判断是否解除寄宿应用的进程优先级与目标进程的进程优先级之间的依赖关系。
在一些实施方式中,在所述当前运行状态表征所述寄宿应用处于前台运行或后台运行的情况下,维持所述依赖关系。
这里,当寄宿应用处于前台运行状态或后台运行状态时,寄宿应用依旧需要依赖目标进程创建的虚拟运行环境进行运行,因此,需要一直维持该依赖关系,以使目标进程的进程优先级能够与寄宿应用的进程优先级保持一致,从而避免目标进程的被系统回收。
作为一个示例,在通过上述通信句柄的方式建立依赖关系的情况下,维持该依赖关系的方式可以是继续将上述通信句柄存储在寄宿应用的内存中,即不对该通信句柄进行释放操作。
作为另一个示例,在通过系统的服务组件建立依赖关系的情况下,维持该依赖关系的方式可以是继续通过服务组件建立依赖关系。
在一些实施方式中,在所述当前运行状态表征所述寄宿应用退出运行的情况下,解除所述依赖关系。
这里,当寄宿应用退出运行时,目标进程无需继续为寄宿应用的运行创建虚拟运行环境,此时,可以解除目标进程的进程优先级与寄宿应用的进程优先级之间的依赖关系。即在寄宿应用退出运行后,目标进程的进程优先级不再跟随寄宿应用的进程优先级变化而变化。
作为一个示例,在通过上述通信句柄的方式建立依赖关系的情况下,解除该依赖关系的方式可以是将缓存在寄宿应用的内存中的通信句柄进行释放。此时,系统不再认为寄宿应用与目标进程在进程间通信,从而解除依赖关系。
应当理解的是,在寄宿应用退出运行之后,寄宿应用的内存被回收,存储在寄宿应用的内存中的通信句柄也会被同步释放。
值得说明的是,解除寄宿应用的进程优先级与目标进程的进程优先级的依赖关系是指在寄宿应用退出运行后解除该依赖关系。但是,当用户在退出寄宿应用A之后再启动寄宿应用B,则电子设备根据上述实施方式,重新建立寄宿应用B的进程优先级与目标进程的进程优先级的依赖关系。另外,当在宿主应用中同时运行多个寄宿应用时,可以存在多个依赖关系。当存在多个依赖关系时,目标进程的进程优先级跟随多个依赖关系中对应的最高进程优先级。
图4是根据一示例性实施例提供的一种进程管理装置的模块连接示意图。如图4所示,本公开实施例提供了一种进程管理装置,该装置400可以包括:
获取模块401,配置为获取寄宿应用的当前进程优先级;
调整模块402,配置为将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;
其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
可选地,所述调整模块402包括:
通道建立单元,配置为建立所述寄宿应用与所述目标进程之间的通信通道;
缓存单元,配置为获取所述通信通道对应的通信句柄,并将所述通信句柄缓存在所述寄宿应用的内存中,以建立所述依赖关系。
可选地,所述通道建立单元具体配置为:
通过进程通信组件建立所述寄宿应用与所述目标进程之间的通信通道。
可选地,所述通道建立单元具体配置为:
通过所述进程通信组件以稳固的方式建立所述寄宿应用与所述目标进程之间的通信通道。
可选地,所述装置400还包括:
状态确定模块,配置为获取所述寄宿应用的当前运行状态;
判断模块,配置为根据所述当前运行状态,确定是否解除所述依赖关系。
可选地,所述判断模块具体配置为:
在所述当前运行状态表征所述寄宿应用处于前台运行或后台运行的情况下,维持所述依赖关系;
在所述当前运行状态表征所述寄宿应用退出运行的情况下,解除所述依赖关系。
关于上述实施例中的装置的各个功能模块的具体实施方式,已在关于方法的部分进行了详细说明,在此不再赘述。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、 便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,电子设备可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取寄宿应用的当前进程优先级;将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施 例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

Claims (10)

  1. 一种进程管理方法,其特征在于,包括:
    获取寄宿应用的当前进程优先级;
    将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;
    其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
  2. 根据权利要求1所述的方法,其特征在于,所述依赖关系通过以下步骤建立:
    建立所述寄宿应用与所述目标进程之间的通信通道;
    获取所述通信通道对应的通信句柄,并将所述通信句柄缓存在所述寄宿应用的内存中,以建立所述依赖关系。
  3. 根据权利要求2所述的方法,其特征在于,所述建立所述寄宿应用与所述目标进程之间的通信通道,包括:
    通过进程通信组件建立所述寄宿应用与所述目标进程之间的通信通道。
  4. 根据权利要求3所述的方法,其特征在于,所述通过进程通信组件建立所述寄宿应用与所述目标进程之间的通信通道,包括:
    通过所述进程通信组件以稳固的方式建立所述寄宿应用与所述目标进程之间的通信通道。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
    获取所述寄宿应用的当前运行状态;
    根据所述当前运行状态,确定是否解除所述依赖关系。
  6. 根据权利要求5所述的方法,其特征在于,所述根据所述当前运行状态,确定是否解除所述依赖关系,包括:
    在所述当前运行状态表征所述寄宿应用处于前台运行或后台运行的情况下,维持所述依赖关系;
    在所述当前运行状态表征所述寄宿应用退出运行的情况下,解除所述依赖关系。
  7. 一种进程管理装置,其特征在于,包括:
    获取模块,配置为获取寄宿应用的当前进程优先级;
    调整模块,配置为将所述寄宿应用对应的宿主应用的目标进程的进程优先级调整为与所述当前进程优先级一致,所述目标进程为所述宿主应用创建用于运行所述寄宿应用的虚拟运行环境所必须的进程;
    其中,所述寄宿应用的进程优先级与所述目标进程的进程优先级之间存在依赖关系,所述依赖关系用于使得所述目标进程的进程优先级跟随所述寄宿应用的进程优先级的变化而变化。
  8. 根据权利要求7所述的装置,其特征在于,所述调整模块包括:
    通道建立单元,配置为建立所述寄宿应用与所述目标进程之间的通信通道;
    缓存单元,配置为获取所述通信通道对应的通信句柄,并将所述通信句柄缓存在所述寄宿应用的内存中,以建立所述依赖关系。
  9. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-6中任一项所述方法的步骤。
  10. 一种电子设备,其特征在于,包括:
    存储装置,其上存储有计算机程序;
    处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
PCT/CN2022/126760 2021-12-13 2022-10-21 进程管理方法、装置、存储介质以及电子设备 WO2023109310A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111523027.5A CN116263718A (zh) 2021-12-13 2021-12-13 进程管理方法、装置、存储介质以及电子设备
CN202111523027.5 2021-12-13

Publications (1)

Publication Number Publication Date
WO2023109310A1 true WO2023109310A1 (zh) 2023-06-22

Family

ID=86722126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/126760 WO2023109310A1 (zh) 2021-12-13 2022-10-21 进程管理方法、装置、存储介质以及电子设备

Country Status (2)

Country Link
CN (1) CN116263718A (zh)
WO (1) WO2023109310A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987527A (en) * 1995-12-21 1999-11-16 Intel Corporation Binding data sinks and sources across ring levels
CN105335171A (zh) * 2014-06-24 2016-02-17 北京奇虎科技有限公司 应用程序常驻操作系统后台的方法及装置
CN110377369A (zh) * 2019-07-25 2019-10-25 上海连尚网络科技有限公司 一种运行小程序的方法、设备和计算机存储介质
CN110865879A (zh) * 2019-11-19 2020-03-06 深圳传音控股股份有限公司 终端应用的管控方法、移动终端及存储介质
CN111913707A (zh) * 2020-08-06 2020-11-10 上海连尚网络科技有限公司 运行进程的复用方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987527A (en) * 1995-12-21 1999-11-16 Intel Corporation Binding data sinks and sources across ring levels
CN105335171A (zh) * 2014-06-24 2016-02-17 北京奇虎科技有限公司 应用程序常驻操作系统后台的方法及装置
CN110377369A (zh) * 2019-07-25 2019-10-25 上海连尚网络科技有限公司 一种运行小程序的方法、设备和计算机存储介质
CN110865879A (zh) * 2019-11-19 2020-03-06 深圳传音控股股份有限公司 终端应用的管控方法、移动终端及存储介质
CN111913707A (zh) * 2020-08-06 2020-11-10 上海连尚网络科技有限公司 运行进程的复用方法和装置

Also Published As

Publication number Publication date
CN116263718A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
US20200334304A1 (en) Mobile application bundled with metadata database
CN110753089B (zh) 一种管理客户端的方法、装置、介质和电子设备
CN111274503B (zh) 数据处理的方法、装置、电子设备及计算机可读介质
WO2022135547A1 (zh) 业务运行方法、装置、电子设备和计算机存储介质
WO2023174013A1 (zh) 显存分配方法、装置、介质及电子设备
CN111209306A (zh) 业务逻辑判断方法、装置、电子设备和存储介质
CN111273985A (zh) 页面渲染方法、装置、电子设备及计算机可读存储介质
CN111400068B (zh) 接口的控制方法、装置、可读介质和电子设备
US20240095389A1 (en) Information processing method and apparatus, terminal, and storage medium
CN111596992B (zh) 导航栏展示方法、装置和电子设备
CN112486825B (zh) 多泳道环境架构系统、消息消费方法、装置、设备及介质
CN111460432B (zh) 在线文档权限控制方法、装置、设备及计算机可读介质
WO2023109310A1 (zh) 进程管理方法、装置、存储介质以及电子设备
WO2023056841A1 (zh) 一种数据服务方法、装置及相关产品
WO2023072070A1 (zh) 显示控制方法、装置和电子设备
CN113391860A (zh) 服务请求处理方法、装置、电子设备及计算机存储介质
WO2023273564A1 (zh) 虚拟机内存管理方法、装置、存储介质及电子设备
WO2022083483A1 (zh) 显示控制方法、装置、终端和存储介质
WO2022017458A1 (zh) 同步数据方法、装置、电子设备和介质
WO2022108521A1 (zh) 模型处理方法及系统
WO2023116167A1 (zh) 生命周期事件管理方法、装置、存储介质以及电子设备
CN111382057B (zh) 测试用例生成方法,测试方法及装置,服务器及存储介质
CN111367590A (zh) 中断事件处理方法及其装置
CN111291379A (zh) 基于Android的车载系统应用检测方法、装置及电子设备
WO2023116522A1 (zh) 进程管理方法、装置、存储介质以及电子设备

Legal Events

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

Ref document number: 22906062

Country of ref document: EP

Kind code of ref document: A1