WO2022257748A1 - 虚拟内存管理方法和电子设备 - Google Patents
虚拟内存管理方法和电子设备 Download PDFInfo
- Publication number
- WO2022257748A1 WO2022257748A1 PCT/CN2022/094563 CN2022094563W WO2022257748A1 WO 2022257748 A1 WO2022257748 A1 WO 2022257748A1 CN 2022094563 W CN2022094563 W CN 2022094563W WO 2022257748 A1 WO2022257748 A1 WO 2022257748A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- application
- electronic device
- data
- group
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Definitions
- the present application relates to the field of terminal and communication technologies, and in particular to a virtual memory management method and electronic equipment.
- the random access memory (random access memory, RAM) (also called memory) resource of an electronic device is fixed, for example, the RAM configuration of a mobile phone is 8GB.
- RAM random access memory
- the operating system starts application cleaning to release the RAM space for use by new applications started by the user. If the memory of the application is cleaned up and reclaimed, and the user clicks the application again, the cleaned data of the application will need to be regenerated into the memory, which greatly reduces the speed of the hot start of the application.
- the present application provides a memory management method, which is used to increase the hot start speed of background applications.
- the present application provides a virtual memory management method, the method is applied to an electronic device, the electronic device includes a first application, the first application includes a first process and a second process, the first process belongs to the first A first process group of an application, the second process belongs to the second process group of the first application, the first process is a process related to the main interface of the first application, the method includes: switching between the first application In the case of going to the background and satisfying the preset first memory recovery condition, the electronic device clears the data of the processes in the second process group; in response to the operation of switching the first application to the foreground, the electronic device passes the first process The data of the processes in the group in memory displays the main interface of the first application.
- the process of the first application is divided into multiple process groups, including the first process group and the second process group, and the first process group includes the first process group related to the main interface of the first application. process, and the second process group includes the second process.
- the electronic device When the first application is switched to the background and meets the preset first memory recovery condition, that is, when the first application is in the background and the memory is tight, the electronic device will clean up the data of the processes in the second process group without cleaning up Data of the processes in the first process group. Therefore, when the first application is switched to the foreground, the electronic device can directly display the main interface of the first application by using the data in memory of the processes in the first process group.
- the data of the first process displaying the main interface of the first application does not need to be regenerated in the memory, but the first process grouping in the first process can be directly used.
- the data of a process in memory greatly improves the speed of hot application startup.
- the electronic device when the first application switches to the background and meets the preset first memory recovery condition, the electronic device clears up the data of the processes in the second process group Before the step, the method further includes: when the first application switches to the background and meets the preset second memory recovery condition, the electronic device partially compresses the data of the processes in the first process group in the memory at a first ratio, obtain the first group of compressed memory data and the first group of uncompressed memory data; the electronic device partially compresses the data of the processes in the second process group in the memory at a second ratio, and obtains the second group of compressed memory data and the second group of uncompressed Memory data; the first ratio is greater than the second ratio; the requirement of the preset second memory reclamation condition is lower than the preset first memory reclamation condition.
- the electronic device before meeting the preset first memory reclamation condition to clean up the memory, can first compress the data of the process in the memory, and then Clean up the memory when the preset first memory condition is met.
- the electronic device can use different compression ratios to partially compress the data of the processes in different groups: adopt a higher compression ratio for the data of the processes in the first process group, and use a higher compression ratio for the data of the processes in the second group.
- the data of the process in the second process group adopts a lower compression ratio. Since the data of the processes in the second process group will be cleared during memory recycling, adopting a lower compression ratio saves computing resources for compression on the one hand, and reduces memory space occupation on the other hand.
- a relatively high compression ratio is adopted, which greatly reduces the memory space occupation.
- the electronic device in response to the operation of switching the first application to the foreground, displays the first application by using the data in memory of the processes in the first process group.
- the method further includes: when the preset third memory recovery condition is met, the electronic device dumps part or all of the first packet compressed memory data into the swap space of the storage device; The requirement of the preset third memory reclamation condition is higher than the preset first memory reclamation condition; in response to the operation of switching the first application to the foreground, the electronic device uses the processes in the first process group in the memory
- the data displaying the main interface of the first application specifically includes: in response to the operation of switching the first application to the foreground, the electronic device reads data related to the first application from the swap space of the storage device and decompresses it into In memory, wherein the data related to the first application includes part or all of the compressed memory data in the first group; the electronic device displays the main interface of the first application through the data
- part or all of the compressed memory data of the first group can be dumped into the swap space of the storage device without dumping the compressed memory data of the second group, which greatly reduces the cost of reading and writing the swap space. data, increasing the lifetime of storage devices. And during the hot start, only the data of the first process group in the swap space needs to be read and compressed into the memory to display the main interface of the first application, which improves the speed of hot start of the first application.
- the second process group further includes a third process of the first application; after the electronic device clears data of processes in the second process group, the Before the step of the electronic device dumping part or all of the compressed memory data of the first group into the swap space of the storage device, the method further includes: after the electronic device determines that the third process in the second process group is still running And in the case that the data in the memory has not been cleaned up, the electronic device adjusts the third process to the first process group; the electronic device partially compresses the data of the processes in the first process group in the memory at a first ratio , to obtain the first group of compressed memory data and the first group of uncompressed memory data, which specifically includes: the electronic device partially compresses the data of the first process and the data of the third process in the memory at the first ratio, and obtains the compressed data of the first process
- the memory data and the compressed memory data of the third process are used as the first group of compressed memory data, and the uncompressed memory data of the first process and the
- the second process group further includes the third process of the first application; the electronic device dumps part or all of the compressed memory data of the first group to the memory
- the method further includes: when the electronic device determines that the third process in the second process group is still running and the data in the memory has not been cleared, the electronic device will The third process is adjusted into the first process group; the electronic device dumps part or all of the data partially compressed by the third process in the memory to the swap space of the storage device.
- a preset first compression rate is used; the electronic device uses a first compression ratio;
- a preset second compression rate is used; the preset first compression rate is the same as or different from the preset second compression rate.
- different compression ratios may be used to further reduce the memory usage of process data while increasing the speed of hot startup of the electronic device.
- the method further includes: the electronic device determines the name of the main process of the installed application according to the application information of the installed application; saves the name of the main process of the installed application and its main process The corresponding relationship is in the correspondence table between the application and the main process, which includes the correspondence between the first application and the first process; when the first application is running, the electronic device, according to the correspondence table between the application and the main process, sets the The first process is divided into the first process group, and other processes of the first application are divided into the second process group.
- the electronic device can determine the name of the main process of the first application through the installed application information, automatically divide it into the first process group, and divide other processes of the first application into the second process In grouping, the efficiency of grouping applications of processes has been improved.
- the method further includes: when determining that the fourth process in the second process group meets the preset first condition, the electronic device adjusts the fourth process to In the first process group, the fourth process is any process in the second process group; when it is confirmed that the fifth process in the first process group meets the preset second condition, the electronic device The processes are adjusted into the second process group, and the fifth process is any process in the first process group.
- the electronic device can adjust the process between the first process group and the second process group according to whether the process state of the application process meets the preset first condition and the preset second condition, which improves the process grouping.
- the flexibility of the application reduces the memory usage of the application while ensuring the normal operation of the application.
- an embodiment of the present application provides an electronic device, which includes: one or more processors and a memory; the memory is coupled to the one or more processors, and the memory is used to store computer program codes,
- the computer program code includes computer instructions;
- the memory also stores a first application, the first application includes a first process and a second process, the first process belongs to a first process group of the first application, and the second process belongs to The second process group of the first application, the first process is a process related to the main interface of the first application;
- the one or more processors call the computer instruction to make the electronic device execute: in the first application When switching to the background and satisfying the preset first memory recovery condition, clean up the data of the processes in the second process group; in response to the operation of switching the first application to the foreground, through the process in the first process group in the The data in the memory displays the main interface of the first application.
- the one or more processors are further configured to call the computer instruction to make the electronic device execute: when the first application switches to the background and meets the preset first In the case of the second memory recovery condition, the data of the processes in the first process group in the memory is partially compressed with the first ratio to obtain the compressed memory data of the first group and the uncompressed memory data of the first group; the data in the memory is partially compressed with the second ratio The data of the processes in the second process group is obtained from the compressed memory data of the second group and the uncompressed memory data of the second group; the first ratio is greater than the second ratio; the requirement of the preset second memory recycling condition is lower than the preset Set the first memory recovery condition.
- the one or more processors are further configured to call the computer instruction so that the electronic device executes: when the preset third memory recovery condition is met, Dumping part or all of the compressed memory data of the first group into the swap space of the storage device; the requirement of the preset third memory reclamation condition is higher than the preset first memory reclamation condition; the one or more processors, Specifically for invoking the computer instruction so that the electronic device executes: in response to the operation of switching the first application to the foreground, read data related to the first application from the swap space of the storage device and decompress it into the memory, The data related to the first application includes part or all of the compressed memory data in the first group; the main interface of the first application is displayed through the data in the memory of the processes in the first process group.
- the second process group further includes a third process of the first application; the one or more processors are further configured to call the computer instruction to make the The electronic device executes: when it is determined that the third process in the second process group is still running and the data in the memory has not been cleaned up, adjust the third process to the first process group; the one or A plurality of processors, specifically for invoking the computer instruction to make the electronic device execute: partially compress the data of the first process and the data of the third process in the memory at the first ratio, and obtain the compressed memory data of the first process and the data of the second process
- the compressed memory data of the three processes is used as the first packet compressed memory data, and the uncompressed memory data of the first process and the uncompressed memory data of the third process are obtained as the first group uncompressed memory data; the compressed memory data of the first process is obtained Part or all of the memory data and the compressed memory data of the third process are dumped into the swap space of the storage device.
- the second process group further includes a third process of the first application; the one or more processors are further configured to call the computer instruction to make the The electronic device executes: when it is determined that the third process in the second process group is still running and the data in the memory has not been cleaned up, adjust the third process to the first process group; The third process dumps part or all of the data partially compressed in the memory to the swap space of the storage device.
- the one or more processors are specifically configured to call the computer instruction to cause the electronic device to execute: the first process in the partially compressed memory at a first ratio When the data of the process in the group is used, the preset first compression rate is used; when the data of the process in the second process group in the memory is partially compressed with the second ratio, the preset second compression rate is used; the preset first compression rate The same as or different from the preset second compression rate.
- the one or more processors are further configured to call the computer instruction to make the electronic device execute: according to the application information of the installed application, determine the The name of the main process; save the correspondence between the installed application and its main process in the application and main process correspondence table, which includes the correspondence between the first application and the first process; when the first application is running, According to the correspondence table between the application and the main process, the first process is divided into the first process group, and other processes of the first application are divided into the second process group.
- the one or more processors are further configured to invoke the computer instructions to cause the electronic device to execute: after determining that the fourth process in the second process group meets When the first condition is preset, the fourth process is adjusted to the first process group, and the fourth process is any process in the second process group; if it is true that the fifth process in the first process group meets When the second condition is preset, the fifth process is adjusted into the second process group, and the fifth process is any process in the first process group.
- the embodiment of the present application provides a chip system, the chip system is applied to an electronic device, and the chip system includes one or more processors, and the processor is used to invoke computer instructions so that the electronic device executes the first Aspect and the method described in any possible implementation manner of the first aspect.
- the embodiment of the present application provides a computer program product containing instructions, when the above computer program product is run on the electronic device, the above electronic device is made to execute any possible implementation of the first aspect and the first aspect described method.
- the embodiment of the present application provides a computer-readable storage medium, including instructions, which, when the above-mentioned instructions are run on the electronic device, cause the above-mentioned electronic device to execute any possible implementation of the first aspect and the first aspect. described method.
- the above-mentioned electronic device provided in the second aspect, the chip system provided in the third aspect, the computer program product provided in the fourth aspect, and the computer storage medium provided in the fifth aspect are all used to execute the method provided in the embodiment of the present application . Therefore, the beneficial effects that it can achieve can refer to the beneficial effects in the corresponding method, and will not be repeated here.
- Fig. 1 is a schematic diagram of the relationship between application programs, virtual memory and physical memory in the embodiment of the present application;
- Fig. 2 is an exemplary schematic diagram of memory paging management in the embodiment of the present application.
- FIG. 3 is a schematic diagram of information flow in an exemplary application scenario according to an embodiment of the present application.
- FIG. 4 is an exemplary schematic diagram of a memory state after memory management is performed on application A at various stages in an implementation manner of memory management;
- Fig. 5 is a schematic diagram of process grouping of an application in the embodiment of the present application.
- Fig. 6 is an exemplary schematic diagram of the memory state after the memory management of application A in various stages according to the embodiment of the present application:
- Fig. 7 is a schematic diagram of memory data changes in the embodiment of the present application.
- Fig. 8 is a schematic diagram of process group adjustment of an application in the embodiment of the present application.
- Fig. 9a is another exemplary schematic diagram of the memory status of application A after performing memory management at various stages in the embodiment of the present application;
- Figure 9b is another exemplary schematic diagram of the memory state after memory management of application A at various stages in the embodiment of the present application:
- FIG. 10 is a schematic diagram of an exemplary hardware structure of an electronic device 100 provided by an embodiment of the present application.
- FIG. 11 is a schematic diagram of an exemplary software framework of the electronic device 100 provided by the embodiment of the present application.
- Fig. 12 is a schematic structural diagram of an exemplary virtual memory management module in the embodiment of the present application.
- FIG. 13 is a schematic flowchart of a virtual memory management method in an embodiment of the present application.
- first and second are used for descriptive purposes only, and cannot be understood as implying or implying relative importance or implicitly specifying the quantity of indicated technical features. Therefore, the features defined as “first” and “second” may explicitly or implicitly include one or more of these features. In the description of the embodiments of the present application, unless otherwise specified, the “multiple” The meaning is two or more.
- the process of storing temporarily unused data in the memory in the swap partition of the storage device is called memory dump.
- the operating system divides the memory space into pages of the same size for management, and such pages are called memory pages.
- the size of the memory page in the operating system of different electronic devices may be different, for example, 4KB, 8KB or 16KB.
- a fixed-size memory page is used as a minimum allocation unit of memory space, and data in the electronic device is managed in the form of a memory page. Therefore, memory pages can also be used as the unit of data size.
- CPU central processing unit
- Memory is used to store computer executable program code, operating system, programs, data, etc. Memory can also be referred to as internal memory.
- memory is a memory architecture consisting of cache, main memory, and disk.
- the cache has low capacity, fast read and write speed but high cost
- the main memory has medium speed, medium capacity and medium cost
- the disk has large capacity and good durability but slow speed.
- Memory management is to provide a unified abstraction for "users", shielding the differences between cache, main memory and disk, and even not being able to perceive their existence. Users don't need to worry about whether the program is stored in the cache, main memory or disk, as long as the running and output results are the same.
- virtual memory prevents the program from directly dealing with physical memory, and makes a unified abstraction of cache, main memory and disk, so that the program can break through the size limit of physical memory. Of course, the program is still subject to the size limit of virtual memory.
- the memory address seen in the program is the virtual memory address, and the program's reading and writing of the virtual memory address will be mapped to the actual physical memory. This mapping is called translation.
- This translation work is done by the memory management unit (MMU).
- the MMU receives the virtual address issued by the CPU, translates it into a physical address and sends it to the memory. The memory is read or written after corresponding access according to the physical address. Enter relevant data.
- FIG. 1 is a schematic diagram of the relationship among application programs, virtual memory and physical memory in the embodiment of the present application.
- the cache, main memory, hard disk and other physical memory in the electronic device can all be abstracted into a virtual memory, and the address of the virtual memory is provided to the application program in the electronic device. The reading and writing of the virtual memory address by the user through the application program will be mapped to the actual physical memory.
- the core of memory space paging management is to divide the virtual memory space and physical memory space into pages of the same size, and use the page as the minimum allocation unit of memory space.
- a page of a program can be stored in any physical page.
- continuous virtual memory space can be mapped to not necessarily continuous physical memory space.
- continuous data segments in the process can be stored in discontinuous physical memory, making the management of memory space more flexible.
- FIG. 2 is an exemplary schematic diagram of memory paging management in an embodiment of the present application.
- the paging mechanism can split data into memory page sizes and allocate continuous addresses in the virtual address space. These memory pages with continuous addresses in the virtual address space can be scattered and allocated to unallocated pages in the physical address space.
- a memory page may also be referred to as a page for short, and details will not be described later.
- some memory pages may be called file pages, and some memory pages may be called anonymous pages, which are not limited here.
- the file page in the memory is a file cache area, that is, a file-type memory page, a memory page (also called a permanent page) for storing file data, which is used to reduce access to storage devices when reading and writing files.
- a file-type memory page a memory page (also called a permanent page) for storing file data, which is used to reduce access to storage devices when reading and writing files.
- a memory page also called a permanent page
- file data which is used to reduce access to storage devices when reading and writing files.
- most of the file pages can be directly reclaimed, and can be re-read from the storage device when needed in the future.
- the heap memory dynamically allocated by the application that is, the anonymous pages in memory management, is likely to be accessed again, and is generally not directly recycled.
- Fig. 3 is a schematic diagram of information flow in an exemplary application scenario in the embodiment of the present application.
- the application framework layer can include modules such as process status and process cleanup, among which:
- the process status module is used to collect, identify and manage the process status, and provide an interface for other modules to query the process status;
- the process cleaning module is used to clean up the processes in the system, reduce the memory pressure of electronic devices, and provide stable performance guarantee for electronic devices.
- the process state module may mark the process of application X as viewing state.
- the user starts application Y to play music, and the application X switches to the background, and the process status module can mark the process of the application Y as a playing state, and update the process of the application X to an idle state.
- the process cleaning module will regularly check the memory status of the kernel node, and if it senses the low memory status of the system, it will actively clean up the process.
- the process cleaning module can call the interface provided by the process status module to determine that the process of application X is idle, and clean up the memory data of application X; determine that the process of application Y is in the playback state, and not clean up the memory data of application X.
- the application program layer of the electronic device may have application A and application B.
- the related processes of application A and application B will occupy a certain amount of memory at the kernel layer, including the anonymous page of the process of application A (such as process P2, P2, P3) and the anonymous page of the process of application B. Page.
- the compression process in the kernel layer (for example, the kswapd process) will compress some anonymous pages into the compressed memory space (for example, ZRAM),
- the swap out process in the kernel layer (for example, the zswapd process) can also swap out some or all of the compressed anonymous pages in the compressed memory space to the swap partition, which can reduce the memory space occupation.
- the electronic device can use the IO interface of the storage device to convert the compressed memory space to The compressed memory data is dumped to the swap partition of the storage device.
- the electronic device If the electronic device needs to use the data in the swap partition, the electronic device will read the data in the swap partition into the memory.
- FIG. 4 shows the memory status after memory management of application A in each stage in this implementation.
- the running process of application A for a period of time is divided into 5 stages: foreground, background, compression, swap out, swap in (hot start):
- Foreground stage The user opens application A, and application A starts its three processes: P1, P2, and P3, and puts these three processes into a memory group, so that the system can determine which processes correspond to application A, and facilitate Sequentially read and write the memory data of application A.
- the anonymous pages of these three processes occupy 100M, 250M, and 200M memory spaces in the memory respectively, and the anonymous pages of application A occupy a total of 550M memory space.
- Application A occupies a total of 800M memory space.
- the electronic device system triggers the memory recovery of the application A process.
- the application A can actively detect the status of the process started by itself, and the data and photos generated when the previous photo preview process P2 previews the first 5 photos of the 10 photos
- the data of the first 5 photos cached by the data caching process P3 are all cropped.
- the process P2 and the process P3 of the application A can each cut out 50M unnecessary data in the memory.
- the memory spaces occupied by processes P1, P2, and P3 of application A are: 100M, 200M, and 150M, respectively, occupying a total of 450M memory space.
- Compression stage If the user opens other applications, which take up more memory, the pressure on the memory of the electronic device increases.
- the electronic device compresses the data of the application programs in the memory that are not in the foreground.
- the 450M data occupied by the application program A can be compressed into 150M compressed data, and put into the compressed memory space (such as ZRAM) in the memory.
- the space occupied by the three processes P1, P2, and P3 of the application program A in the memory is 150M.
- Swap out phase If the user continues to open other new applications, more memory will be occupied, and the memory pressure will continue to increase.
- the electronic device may swap out part of the data in the compressed memory space of the memory to the swap partition of the storage device. Therefore, the electronic device swaps out the 150M data of application A in the compressed memory space to the swap space.
- the space occupied by the anonymous page of application A in the memory is 0; the space occupied in the swap space of the storage device is 150M.
- the data in the compressed memory space when the data in the compressed memory space is swapped out to the swap space, the data can also be compressed again.
- the 150M data in the compressed memory space can be compressed into 50M data and stored in the swap space.
- the space occupied by the anonymous page of application A in the swap space of the storage device is 50M.
- Switch-in phase also known as hot start: If the user wants to use application A again at this time, the user actively switches application A to the foreground. The electronic device will read all the anonymous pages of the dumped application A from the swap space and decompress them into the memory. At this time, the processes P1, P2, and P3 of the application A restore 450M data to run in the memory, and regenerate the process P2 to be cut. The 50M data and the 50M data clipped by process P3 occupy a total memory capacity of 550M, and display the user interface of application A.
- the electronic device After the user switches the application A to the background for a period of time, the electronic device will write the compressed 150M anonymous page data of the application A into the swap space.
- the electronic device needs to quickly read the 150M anonymous page data of the three processes of the application A in the swap partition into the memory. In this way, on the one hand, it is necessary to read and write 150M data to the swap space of the storage device, which will shorten the lifespan of the storage device. On the other hand, however, since the reading speed of the storage device is much slower than that of the memory, it takes a period of delay to complete the hot start of the application.
- the sequential read speed is about 1GB/s
- the memory size dumped by application A to the swap partition is 150MB
- the application process when managing an application process, as shown in FIG. 5 , the application process can be divided into at least two groups, and the process P1 supporting the user interface display of application A can be classified The main process is grouped, and the processes P2 and P3 that support other functions of the application A can be classified as auxiliary process groups.
- the electronic device can be set to:
- the process in the main process group and the process in the auxiliary process group can be compressed according to different compression ratios: the anonymous pages of the process in the main process group are compressed with a larger compression ratio (for example, 90%), while Compress anonymous pages of processes in the worker process group with a smaller compression ratio (eg, 20%).
- the compressed memory data of the process J130M and the uncompressed memory data of 10M are obtained. Therefore, there will be compressed in-memory data and uncompressed in-memory data in memory.
- the memory needs to be cleaned up, only the anonymous pages of the processes in the auxiliary process group are cleaned up, including their compressed memory data and uncompressed memory data, and the anonymous pages of the processes in the main process group are not cleaned up.
- the processes in the main process group are generally more important processes, such as processes used to display the user interface, processes that need to run continuously, etc., compressing them at a higher ratio can reduce their memory without cleaning them up occupied and can be quickly restored if needed.
- the processes in the auxiliary process group are generally processes that provide auxiliary functions. Compressing them at a lower rate can save computing power resources. If the memory pressure is high, even if the data of these processes is cleared, it will not have a significant impact on the application.
- the running process of application A for a period of time is divided into 7 stages: foreground, background, compression, cleanup, swap out, swap in (hot start), trigger function:
- Foreground stage the user opens application A, and application A starts the three processes it contains: P1, P2, and P3.
- the electronic device determines that among the three processes started by the application A, the P1 process is the main process according to the stored correspondence table between the application and the main process.
- process P1 is divided into the main process group of application A, and the other two processes P2 and P3 are divided into auxiliary process groups of application A.
- the group division can be realized by storing a group relationship table in the memory.
- a group relationship table in the memory.
- Table 1 it is an example of the stored group relationship of application A:
- the division of the grouping can be realized by storing the form of branch tree as shown in FIG. 5;
- the division of groups may be realized by storing a corresponding relationship, and the corresponding relationship may be expressed in various ways, such as functions, arrays, etc., which are not limited here.
- the form of [Application A, P1, P2P3] may be used to represent the corresponding relationship that the main process group in application A includes the P1 process, and the auxiliary process group includes the P2 and P3 processes.
- the anonymous pages of the three processes P1, P2, and P3 occupy 100M, 250M, and 200M memory space in the memory respectively.
- the process P1 in the main process group occupies 100M
- the auxiliary process group P2 and P2 occupy a total of 450M.
- the anonymous page of application A Pages occupy a total of 550M memory space. After application A starts, it can also cache related files in the memory. It can be assumed that it has cached 250M of data in the memory, so the file page of application A occupies 250M of memory space.
- Application A occupies a total of 800M memory space.
- Compression stage If the user opens other applications, more memory is occupied, and the memory pressure of the electronic device increases at this time. When the proportion of the total memory space occupied exceeds the preset threshold A, the electronic device compresses the data of the application programs in the memory that are not in the foreground.
- the electronic device When the memory pressure further increases, the electronic device will clean up all the data of the processes in the auxiliary process group in the memory, that is, the uncompressed 281M data P2-P3- of the processes P2 and P3 in the auxiliary process group of application A W and the compressed 24M data P2-P3-Y of the processes P2 and P3 are all cleaned up.
- the remaining memory data of application A in the memory is P1-W: 10M; P1-Y: 30M, a total of 40M.
- Swap out phase If the user continues to open other new applications, more memory will be occupied, and the memory pressure will continue to increase.
- the electronic device can swap out part of the data in the compressed memory space of the memory to the swap space of the storage device. Therefore, the electronic device swaps out the 30M data (P1-Y: 30M) of application A in the compressed memory space to the swap space.
- the space occupied by the anonymous page of application A in the memory is 10M;
- the space occupied in is 30M.
- the data in the compressed memory space when the data in the compressed memory space is swapped out to the swap space, the data can also be compressed again.
- the 30M data in the compressed memory space can be compressed into 10M data and stored in the swap space.
- the space occupied by the anonymous page of application A in the swap space of the storage device is 10M.
- Switch-in phase If the user wants to use application A again at this time, the user actively switches application A to the foreground.
- the electronic device will read all the anonymous page 30M data of the dumped application A from the swap space, and decompress it into the memory. At this time, the data of process P1 in the main process group of application A is completely restored, which is 100M.
- the main process in the main process group is a process related to the application startup interface, therefore, after the data of the main process P1 is completely restored in the memory, it can normally display the user interface of the application A.
- the application A is a shopping application and its name is gouwus, it includes 3 processes after startup: com.gouwus.gouwus(P1), com.gouwus.gouwus:sandboxed_privilege_process(P2), com.gouwus.gouwus :channel(P3).
- com.gouwus.gouwus is the main process of the shopping application gouwus, which is used to display the main interface of the shopping application gouwus. After all the data in the memory of the process is restored, the user interface of the shopping application gouwus can be displayed normally.
- the main interface of an application belongs to a user interface of the application.
- the main interface of the application may also be referred to as the user interface of the application, which is not limited here.
- Trigger function stage If the user clicks on the user interface of application A and triggers a function that requires the support of processes P2 and P3, the electronic device can read the file of application A in the memory, and regenerate the 250M data of process P2 and process P3 in the memory The 200M data occupies 450M memory. At this time, the memory capacity occupied by the three processes of application A returns to 550M.
- the data in the memory of application A includes the data of process P1 in the main process group and the data of processes P2 and P3 in the auxiliary process group.
- the compressed memory space in the memory can store the memory data compressed by other application 1, and the memory There is no data dumped from the memory in the swap space of the software.
- the data in memory of application A includes data in uncompressed memory and data in compressed memory space (eg, ZRAM).
- the data of the uncompressed memory includes: the data P1-W of the uncompressed memory of the process P1 in the main process group; the data P2-P3-W of the uncompressed memory of the processes P2 and P3 in the auxiliary process group.
- the data in the compressed memory space includes: the data P1-Y in the compressed memory of the process P1 in the main process group; the data P2-P3-Y in the compressed memory of the processes P2 and P3 in the auxiliary process group.
- the amount of space occupied by application A in memory is reduced.
- the electronic device cleans up all the data in the memory of the processes in the auxiliary process group, that is, cleans up P2-P3-W and P2-P3-Y. At this time, the space occupied by the uncompressed memory data in the memory of application A is further reduced.
- the electronic device can exchange part of the data in the compressed memory space to the swap space.
- the memory data compressed by other application 1 and P1-Y can be swapped to the swap space for storage.
- the memory data can be compressed again.
- the electronic device may not perform the above-mentioned compression process in the memory, but directly clean up all the data in the memory of the processes in the auxiliary process group.
- data in memory when data in memory is swapped to swap space, it may or may not be compressed, which is not limited here.
- the electronic device can determine that among the three processes started by the application A, the P1 process is the main process and divide it into the main process of the application A according to the pre-stored correspondence table between the application and the main process. Grouping, divide the other two processes P2 and P3 into the auxiliary process grouping of application A.
- the main process of the application is a process related to the main interface of the application.
- a music player application bofang includes three processes: com.bofang.bofang (main process P1) can be used to display the main interface of music playback; com.bofang.bofan:f (auxiliary process P2) can be used for playing music; com.bofang.bofan:z can be used to preload the data of the next song in the playlist.
- main process P1 can be used to display the main interface of music playback
- auxiliary process P2 can be used for playing music
- com.bofang.bofan:z can be used to preload the data of the next song in the playlist.
- a sports application yundong includes three processes: com.yundong.yundong (main process P1) can be used to display the main interface of the sports application; com.yundong.yundong:j (auxiliary process P2) It can be used to continuously obtain the step counting data of the sensor; com.yundong.yundong:g (auxiliary process P3) can be used to obtain user step ranking information.
- the electronic device may divide the process of each application into multiple process groups belonging to the application, including a main process group and an auxiliary process group. That is to say, an application has its own main process group and auxiliary process group.
- application A has application A's main process group A1 and auxiliary process group A2
- application B has application B's main process group B1 and auxiliary process group Group B2.
- the corresponding relationship between the application and the processes in the application's process group can be stored in the memory, which can be stored in the form of a group relationship table, or can be stored in the form of a function, an array, etc., which is not limited here.
- the main process of an application is generally divided into the main process group of the application, but the main process group of the application does not necessarily only include the main process of the application.
- the main process group of the application includes not only the main process of the application, but also other processes of the application.
- the main process group may also be called a first process group
- the auxiliary process group may also be called a second process group, which is not limited here.
- the electronic device can perceive the status of each process in the started application in real time, and adjust the process in the auxiliary process group to the main process group when it meets the preset first condition .
- the electronic device determines that the process P2 in the auxiliary process group of the application A is continuously acquiring the data of the pedometer sensor, indicating that the process P2 has a demand for continuous operation, the electronic device can use the application A The process P2 of application A is adjusted from the auxiliary process group to the main process group.
- the group division can be realized by storing a group relationship table in the memory, as shown in the following table 2, which is an example of the group relationship of application A stored at this time:
- the division of the group can be realized by storing the form of branch tree as shown in FIG. 8 . It is not limited here.
- the electronic device may also adjust it into the auxiliary process group, which is not limited herein.
- the electronic device may perform different operations correspondingly by grouping and adjusting the application process at different timings.
- the following illustrates several cases in combination with the scene shown in FIG. 6 :
- the uncompressed data P1 of the process P1 is obtained- W
- the compressed data P1-Y of the process P1 the uncompressed data P2-P3-W of the processes P2 and P3 (including the uncompressed data P2-W of the process P2 and the uncompressed data P3-W of the process P3)
- the process P2 and P3 compressed data P2-P3-Y which includes process P2 compressed data P2-Y and process P3 compressed data P3-Y).
- the electronic device in the cleaning phase, has cleaned up all the data in the memory of the processes P2 and P3 in the auxiliary process group of the application A one or more times. If the memory of the electronic device continues to be tight, and the electronic device detects that the data of the process P2 of the application A has not been cleaned up (for example, the application A is the music playing application bofang, and the process P2 is the process com.bofang.bofan used to play the music :f). Then, the electronic device can adjust the process P2 into the main process group of the application A at this time. In this way, during the swap out phase, the electronic device can swap out the compressed parts of the process P1 and the process P2 in the main process group of application A to the swap space of the storage device.
- the electronic device in the cleaning stage, has cleaned up all the data in the memory of the processes P2 and P3 in the auxiliary process group of the application A one or more times.
- the electronic device has swapped out the compressed data P1-Y of the process P1 in the main process group of the application A into the swap space of the storage device.
- the memory of the electronic device continues to be tight, and the electronic device detects that the data of the process P2 of the application A is still in the memory and has not been cleaned up (for example, the application A is a sports application yundong, and the process P2 is used to continuously acquire the pedometer of the sensor Data process com.yundong.yundong:j).
- the electronic device can adjust the process P2 into the main process group of the application A, and swap out the compressed memory data P2-Y of the process P2 to the swap space of the storage device.
- the electronic device can also adjust the grouping of the processes in the application's main process grouping or auxiliary process grouping in other memory management stages, and perform corresponding memory management after the grouping adjustment, which is not limited here.
- the exemplary electronic device 100 provided by the embodiment of the present application is firstly introduced below.
- FIG. 10 is a schematic structural diagram of an electronic device 100 provided by an embodiment of the present application.
- electronic device 100 may have more or fewer components than shown in the figures, may combine two or more components, or may have a different configuration of components.
- the various components shown in the figures may be implemented in hardware, software, or a combination of hardware and software including one or more signal processing and/or application specific integrated circuits.
- the electronic device 100 may include: a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (universal serial bus, USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, and an antenna 2.
- Mobile communication module 150 wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone jack 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display screen 194 and A subscriber identification module (subscriber identification module, SIM) card interface 195 and the like.
- SIM subscriber identification module
- the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, bone conduction sensor 180M, etc.
- the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the electronic device 100 .
- the electronic device 100 may include more or fewer components than shown in the figure, or combine certain components, or separate certain components, or arrange different components.
- the illustrated components can be realized in hardware, software or a combination of software and hardware.
- the processor 110 may include one or more processing units, for example: the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processing unit (graphics processing unit, GPU), an image signal processor (image signal processor, ISP), controller, memory, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural network processor (neural-network processing unit, NPU) Wait. Wherein, different processing units may be independent devices, or may be integrated in one or more processors.
- application processor application processor, AP
- modem processor graphics processing unit
- GPU graphics processing unit
- image signal processor image signal processor
- ISP image signal processor
- controller memory
- video codec digital signal processor
- DSP digital signal processor
- baseband processor baseband processor
- neural network processor neural-network processing unit
- the controller may be the nerve center and command center of the electronic device 100 .
- the controller can generate an operation control signal according to the instruction opcode and timing signal, and complete the control of fetching and executing the instruction.
- a memory may also be provided in the processor 110 for storing instructions and data.
- the memory in processor 110 is a cache memory.
- the memory may hold instructions or data that the processor 110 has just used or recycled. If the processor 110 needs to use the instruction or data again, it can be called directly from the memory. Repeated access is avoided, and the waiting time of the processor 110 is reduced, thus improving the efficiency of the system.
- processor 110 may include one or more interfaces.
- the interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, a universal asynchronous transmitter (universal asynchronous receiver/transmitter, UART) interface, mobile industry processor interface (mobile industry processor interface, MIPI), general-purpose input and output (general-purpose input/output, GPIO) interface, subscriber identity module (subscriber identity module, SIM) interface, and /or universal serial bus (universal serial bus, USB) interface, etc.
- I2C integrated circuit
- I2S integrated circuit built-in audio
- PCM pulse code modulation
- PCM pulse code modulation
- UART universal asynchronous transmitter
- MIPI mobile industry processor interface
- GPIO general-purpose input and output
- subscriber identity module subscriber identity module
- SIM subscriber identity module
- USB universal serial bus
- the I2C interface is a bidirectional synchronous serial bus, including a serial data line (serial data line, SDA) and a serial clock line (derail clock line, SCL).
- processor 110 may include multiple sets of I2C buses.
- the processor 110 can be respectively coupled to the touch sensor 180K, the charger, the flashlight, the camera 193 and the like through different I2C bus interfaces.
- the processor 110 may be coupled to the touch sensor 180K through the I2C interface, so that the processor 110 and the touch sensor 180K communicate through the I2C bus interface to realize the touch function of the electronic device 100 .
- the I2S interface can be used for audio communication.
- processor 110 may include multiple sets of I2S buses.
- the processor 110 may be coupled to the audio module 170 through an I2S bus to implement communication between the processor 110 and the audio module 170 .
- the audio module 170 can transmit audio signals to the wireless communication module 160 through the I2S interface, so as to realize the function of answering calls through the Bluetooth headset.
- the PCM interface can also be used for audio communication, sampling, quantizing and encoding the analog signal.
- the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface.
- the audio module 170 can also transmit audio signals to the wireless communication module 160 through the PCM interface, so as to realize the function of answering calls through the Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
- the UART interface is a universal serial data bus used for asynchronous communication.
- the bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication.
- a UART interface is generally used to connect the processor 110 and the wireless communication module 160 .
- the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to realize the Bluetooth function.
- the audio module 170 can transmit audio signals to the wireless communication module 160 through the UART interface, so as to realize the function of playing music through the Bluetooth headset.
- the MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193 .
- MIPI interface includes camera serial interface (camera serial interface, CSI), display serial interface (display serial interface, DSI), etc.
- the processor 110 communicates with the camera 193 through the CSI interface to realize the shooting function of the electronic device 100 .
- the processor 110 communicates with the display screen 194 through the DSI interface to realize the display function of the electronic device 100 .
- the GPIO interface can be configured by software.
- the GPIO interface can be configured as a control signal or as a data signal.
- the GPIO interface can be used to connect the processor 110 with the camera 193 , the display screen 194 , the wireless communication module 160 , the audio module 170 , the sensor module 180 and so on.
- the GPIO interface can also be configured as an I2C interface, I2S interface, UART interface, MIPI interface, etc.
- the SIM interface can be used to communicate with the SIM card interface 195 to realize the function of transmitting data to the SIM card or reading data in the SIM card.
- the USB interface 130 is an interface conforming to the USB standard specification, specifically, it can be a Mini USB interface, a Micro USB interface, a USB Type C interface, and the like.
- the USB interface 130 can be used to connect a charger to charge the electronic device 100 , and can also be used to transmit data between the electronic device 100 and peripheral devices. It can also be used to connect headphones and play audio through them. This interface can also be used to connect other electronic devices, such as AR devices.
- the interface connection relationship between the modules shown in the embodiment of the present application is only a schematic illustration, and does not constitute a structural limitation of the electronic device 100 .
- the electronic device 100 may also adopt different interface connection manners in the foregoing embodiments, or a combination of multiple interface connection manners.
- the charging management module 140 is configured to receive a charging input from a charger.
- the charger may be a wireless charger or a wired charger.
- the power management module 141 is used for connecting the battery 142 , the charging management module 140 and the processor 110 .
- the power management module 141 receives the input from the battery 142 and/or the charging management module 140 to provide power for the processor 110 , the internal memory 121 , the external memory, the display screen 194 , the camera 193 , and the wireless communication module 160 .
- the wireless communication function of the electronic device 100 can be realized by the antenna 1 , the antenna 2 , the mobile communication module 150 , the wireless communication module 160 , a modem processor, a baseband processor, and the like.
- Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
- Each antenna in electronic device 100 may be used to cover single or multiple communication frequency bands. Different antennas can also be multiplexed to improve the utilization of the antennas.
- Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
- the antenna may be used in conjunction with a tuning switch.
- the mobile communication module 150 can provide wireless communication solutions including 2G/3G/4G/5G applied on the electronic device 100 .
- the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (low noise amplifier, LNA) and the like.
- the mobile communication module 150 can receive electromagnetic waves through the antenna 1, filter and amplify the received electromagnetic waves, and send them to the modem processor for demodulation.
- the mobile communication module 150 can also amplify the signals modulated by the modem processor, and convert them into electromagnetic waves through the antenna 1 for radiation.
- at least part of the functional modules of the mobile communication module 150 may be set in the processor 110 .
- at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be set in the same device.
- a modem processor may include a modulator and a demodulator.
- the modulator is used for modulating the low-frequency baseband signal to be transmitted into a medium-high frequency signal.
- the demodulator is used to demodulate the received electromagnetic wave signal into a low frequency baseband signal. Then the demodulator sends the demodulated low-frequency baseband signal to the baseband processor for processing.
- the low-frequency baseband signal is passed to the application processor after being processed by the baseband processor.
- the application processor outputs sound signals through audio equipment (not limited to speaker 170A, receiver 170B, etc.), or displays images or videos through display screen 194 .
- the modem processor may be a stand-alone device.
- the modem processor may be independent from the processor 110, and be set in the same device as the mobile communication module 150 or other functional modules.
- the wireless communication module 160 can provide wireless local area networks (wireless local area networks, WLAN) (such as wireless fidelity (Wireless Fidelity, Wi-Fi) network), bluetooth (bluetooth, BT), global navigation satellite, etc. applied on the electronic device 100.
- System global navigation satellite system, GNSS
- frequency modulation frequency modulation, FM
- near field communication technology near field communication, NFC
- infrared technology infrared, IR
- the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
- the wireless communication module 160 receives electromagnetic waves via the antenna 2 , frequency-modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110 .
- the wireless communication module 160 can also receive the signal to be sent from the processor 110 , frequency-modulate it, amplify it, and convert it into electromagnetic waves through the antenna 2 for radiation.
- the antenna 1 of the electronic device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the electronic device 100 can communicate with the network and other devices through wireless communication technology.
- the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (general packet radio service, GPRS), code division multiple access (code division multiple access, CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time division code division multiple access (time-division code division multiple access, TD-SCDMA), long term evolution (long term evolution, LTE), BT, GNSS, WLAN, NFC , FM, and/or IR techniques, etc.
- GSM global system for mobile communications
- GPRS general packet radio service
- code division multiple access code division multiple access
- CDMA broadband Code division multiple access
- WCDMA wideband code division multiple access
- time division code division multiple access time-division code division multiple access
- TD-SCDMA time-division code division multiple access
- the GNSS may include a global positioning system (global positioning system, GPS), a global navigation satellite system (global navigation satellite system, GLONASS), a Beidou navigation satellite system (beidou navigation satellite system, BDS), a quasi-zenith satellite system (quasi -zenith satellite system (QZSS) and/or satellite based augmentation systems (SBAS).
- GPS global positioning system
- GLONASS global navigation satellite system
- Beidou navigation satellite system beidou navigation satellite system
- BDS Beidou navigation satellite system
- QZSS quasi-zenith satellite system
- SBAS satellite based augmentation systems
- the electronic device 100 realizes the display function through the GPU, the display screen 194 , and the application processor.
- the GPU is a microprocessor for image processing, and is connected to the display screen 194 and the application processor. GPUs are used to perform mathematical and geometric calculations for graphics rendering.
- Processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
- the display screen 194 is used to display images, videos and the like.
- the display screen 194 includes a display panel.
- the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light emitting diode or an active matrix organic light emitting diode (active-matrix organic light emitting diode, AMOLED), flexible light-emitting diode (flex light-emitting diode, FLED), Miniled, MicroLed, Micro-oLed, quantum dot light emitting diodes (quantum dot light emitting diodes, QLED), etc.
- the electronic device 100 may include 1 or N display screens 194 , where N is a positive integer greater than 1.
- the electronic device 100 can realize the shooting function through the ISP, the camera 193 , the video codec, the GPU, the display screen 194 and the application processor.
- the ISP is used for processing the data fed back by the camera 193 .
- the light is transmitted to the photosensitive element of the camera through the lens, and the light signal is converted into an electrical signal, and the photosensitive element of the camera transmits the electrical signal to the ISP for processing, and converts it into an image visible to the naked eye.
- ISP can also perform algorithm optimization on image noise, brightness, and skin color.
- ISP can also optimize the exposure, color temperature and other parameters of the shooting scene.
- the ISP may be located in the camera 193 .
- Camera 193 is used to capture still images or video.
- the object generates an optical image through the lens and projects it to the photosensitive element.
- the photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor.
- CMOS complementary metal-oxide-semiconductor
- the photosensitive element converts the light signal into an electrical signal, and then transmits the electrical signal to the ISP to convert it into a digital image signal.
- the ISP outputs the digital image signal to the DSP for processing.
- DSP converts digital image signals into standard RGB, YUV and other image signals.
- the electronic device 100 may include 1 or N cameras 193 , where N is a positive integer greater than 1.
- Digital signal processors are used to process digital signals. In addition to digital image signals, they can also process other digital signals. For example, when the electronic device 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the energy of the frequency point.
- Video codecs are used to compress or decompress digital video.
- the electronic device 100 may support one or more video codecs.
- the electronic device 100 can play or record videos in various encoding formats, for example: moving picture experts group (moving picture experts group, MPEG) 1, MPEG2, MPEG3, MPEG4 and so on.
- MPEG moving picture experts group
- the NPU is a neural-network (NN) computing processor.
- NN neural-network
- Applications such as intelligent cognition of the electronic device 100 can be realized through the NPU, such as image recognition, face recognition, speech recognition, text understanding, and the like.
- the internal memory 121 may include one or more random access memories (random access memory, RAM) and one or more non-volatile memories (non-volatile memory, NVM).
- RAM random access memory
- NVM non-volatile memory
- Random access memory can include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (synchronous dynamic random access memory, SDRAM), double data rate synchronous Dynamic random access memory (double data rate synchronous dynamic random access memory, DDR SDRAM, such as the fifth generation DDR SDRAM is generally called DDR5SDRAM), etc.;
- SRAM static random-access memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- SDRAM synchronous dynamic random access memory
- double data rate synchronous Dynamic random access memory double data rate synchronous dynamic random access memory
- DDR SDRAM double data rate synchronous dynamic random access memory
- DDR SDRAM double data rate synchronous dynamic random access memory
- DDR5SDRAM double data rate synchronous dynamic random access memory
- Non-volatile memory may include magnetic disk storage devices, flash memory (flash memory).
- flash memory can include NOR FLASH, NAND FLASH, 3D NAND FLASH, etc.
- it can include single-level storage cells (single-level cell, SLC), multi-level storage cells (multi-level cell, MLC), triple-level cell (TLC), quad-level cell (QLC), etc.
- SLC single-level storage cells
- MLC multi-level storage cells
- TLC triple-level cell
- QLC quad-level cell
- UFS universal flash storage
- embedded multimedia memory card embedded multi media Card
- the random access memory can be directly read and written by the processor 110, and can be used to store executable programs (such as machine instructions) of an operating system or other running programs, and can also be used to store data of users and application programs.
- the non-volatile memory can also store executable programs and data of users and application programs, etc., and can be loaded into the random access memory in advance for the processor 110 to directly read and write.
- the external memory interface 120 can be used to connect an external non-volatile memory, so as to expand the storage capacity of the electronic device 100 .
- the external non-volatile memory communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and video are stored in an external non-volatile memory.
- the electronic device 100 can implement audio functions through the audio module 170 , the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. Such as music playback, recording, etc.
- the audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signal.
- the audio module 170 may also be used to encode and decode audio signals.
- the audio module 170 may be set in the processor 110 , or some functional modules of the audio module 170 may be set in the processor 110 .
- Speaker 170A also referred to as a "horn" is used to convert audio electrical signals into sound signals.
- Electronic device 100 can listen to music through speaker 170A, or listen to hands-free calls.
- Receiver 170B also called “earpiece” is used to convert audio electrical signals into sound signals.
- the receiver 170B can be placed close to the human ear to receive the voice.
- the microphone 170C also called “microphone” or “microphone” is used to convert sound signals into electrical signals. When making a phone call or sending a voice message, the user can put his mouth close to the microphone 170C to make a sound, and input the sound signal to the microphone 170C.
- the electronic device 100 may be provided with at least one microphone 170C. In some other embodiments, the electronic device 100 may be provided with two microphones 170C, which may also implement a noise reduction function in addition to collecting sound signals. In some other embodiments, the electronic device 100 can also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify sound sources, and realize directional recording functions, etc.
- the earphone interface 170D is used for connecting wired earphones.
- the earphone interface 170D can be a USB interface 130, or a 3.5mm open mobile terminal platform (OMTP) standard interface, or a cellular telecommunications industry association of the USA (CTIA) standard interface.
- OMTP open mobile terminal platform
- CTIA cellular telecommunications industry association of the USA
- the pressure sensor 180A is used to sense the pressure signal and convert the pressure signal into an electrical signal.
- pressure sensor 180A may be disposed on display screen 194 .
- pressure sensors 180A such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors.
- a capacitive pressure sensor may be comprised of at least two parallel plates with conductive material.
- the electronic device 100 determines the intensity of pressure according to the change in capacitance.
- the electronic device 100 detects the intensity of the touch operation according to the pressure sensor 180A.
- the electronic device 100 may also calculate the touched position according to the detection signal of the pressure sensor 180A.
- touch operations acting on the same touch position but with different touch operation intensities may correspond to different operation instructions. For example: when a touch operation with a touch operation intensity less than the first pressure threshold acts on the short message application icon, an instruction to view short messages is executed. When a touch operation whose intensity is greater than or equal to the first pressure threshold acts on the icon of the short message application, the instruction of creating a new short message is executed.
- the gyro sensor 180B can be used to determine the motion posture of the electronic device 100 .
- the angular velocity of the electronic device 100 around three axes may be determined by the gyro sensor 180B.
- the gyro sensor 180B can be used for image stabilization. Exemplarily, when the shutter is pressed, the gyro sensor 180B detects the shaking angle of the electronic device 100, calculates the distance that the lens module needs to compensate according to the angle, and allows the lens to counteract the shaking of the electronic device 100 through reverse movement to achieve anti-shake.
- the gyro sensor 180B can also be used for navigation and somatosensory game scenes.
- the air pressure sensor 180C is used to measure air pressure.
- the electronic device 100 calculates the altitude based on the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.
- the magnetic sensor 180D includes a Hall sensor.
- the electronic device 100 may detect the opening and closing of the flip holster using the magnetic sensor 180D.
- the electronic device 100 when the electronic device 100 is a clamshell machine, the electronic device 100 can detect opening and closing of the clamshell according to the magnetic sensor 180D.
- features such as automatic unlocking of the flip cover are set.
- the acceleration sensor 180E can detect the acceleration of the electronic device 100 in various directions (generally three axes). When the electronic device 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of electronic devices, and can be used in applications such as horizontal and vertical screen switching, pedometers, etc.
- the distance sensor 180F is used to measure the distance.
- the electronic device 100 may measure the distance by infrared or laser. In some embodiments, when shooting a scene, the electronic device 100 may use the distance sensor 180F for distance measurement to achieve fast focusing.
- Proximity light sensor 180G may include, for example, light emitting diodes (LEDs) and light detectors, such as photodiodes.
- the light emitting diodes may be infrared light emitting diodes.
- the electronic device 100 emits infrared light through the light emitting diode.
- Electronic device 100 uses photodiodes to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it may be determined that there is an object near the electronic device 100 . When insufficient reflected light is detected, the electronic device 100 may determine that there is no object near the electronic device 100 .
- the electronic device 100 can use the proximity light sensor 180G to detect that the user is holding the electronic device 100 close to the ear to make a call, so as to automatically turn off the screen to save power.
- the proximity light sensor 180G can also be used in leather case mode, automatic unlock and lock screen in pocket mode.
- the ambient light sensor 180L is used for sensing ambient light brightness.
- the electronic device 100 can adaptively adjust the brightness of the display screen 194 according to the perceived ambient light brightness.
- the ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures.
- the ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the electronic device 100 is in the pocket, so as to prevent accidental touch.
- the fingerprint sensor 180H is used to collect fingerprints.
- the electronic device 100 can use the collected fingerprint characteristics to implement fingerprint unlocking, access to application locks, take pictures with fingerprints, answer incoming calls with fingerprints, and the like.
- the temperature sensor 180J is used to detect temperature.
- the electronic device 100 uses the temperature detected by the temperature sensor 180J to implement a temperature treatment strategy. For example, when the temperature reported by the temperature sensor 180J exceeds the threshold, the electronic device 100 may reduce the performance of the processor located near the temperature sensor 180J, so as to reduce power consumption and implement thermal protection.
- the electronic device 100 when the temperature is lower than another threshold, the electronic device 100 heats the battery 142 to avoid abnormal shutdown of the electronic device 100 caused by the low temperature.
- the electronic device 100 boosts the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.
- Touch sensor 180K also known as "touch panel”.
- the touch sensor 180K can be disposed on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, also called a “touch screen”.
- the touch sensor 180K is used to detect a touch operation on or near it.
- the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
- Visual output related to the touch operation can be provided through the display screen 194 .
- the touch sensor 180K may also be disposed on the surface of the electronic device 100 , which is different from the position of the display screen 194 .
- the keys 190 include a power key, a volume key and the like.
- the key 190 may be a mechanical key. It can also be a touch button.
- the electronic device 100 can receive key input and generate key signal input related to user settings and function control of the electronic device 100 .
- the motor 191 can generate a vibrating reminder.
- the motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback.
- touch operations applied to different applications may correspond to different vibration feedback effects.
- the motor 191 may also correspond to different vibration feedback effects for touch operations acting on different areas of the display screen 194 .
- Different application scenarios (such as: time reminder, receiving information, alarm clock, games, etc.) can also correspond to different vibration feedback effects.
- the touch vibration feedback effect can also support customization.
- the indicator 192 can be an indicator light, and can be used to indicate charging status, power change, and can also be used to indicate messages, missed calls, notifications, and the like.
- the SIM card interface 195 is used for connecting a SIM card.
- the SIM card can be connected and separated from the electronic device 100 by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195 .
- the electronic device 100 may support 1 or N SIM card interfaces, where N is a positive integer greater than 1.
- SIM card interface 195 can support Nano SIM card, Micro SIM card, SIM card etc. Multiple cards can be inserted into the same SIM card interface 195 at the same time. The types of the multiple cards may be the same or different.
- the SIM card interface 195 is also compatible with different types of SIM cards.
- the SIM card interface 195 is also compatible with external memory cards.
- the electronic device 100 interacts with the network through the SIM card to implement functions such as calling and data communication.
- the non-volatile memory in the internal memory 121 may be called a memory.
- the random access memory in the internal memory 121 is called a storage device.
- the memory may include compressed memory space for storing compressed memory data.
- the non-volatile memory in the internal memory 121 may include a swap space for expanding the capacity of the random access memory in the internal memory 121 .
- the processor 110 makes the electronic device 100 execute the virtual memory management method in the embodiment of the present application by invoking computer instructions stored in the internal memory 121 .
- FIG. 11 is a block diagram of the software structure of the electronic device 100 according to the embodiment of the present application.
- the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces.
- the system is divided into four layers, which are application program layer, application program framework layer, runtime (Runtime) and system library, and kernel layer from top to bottom.
- the application layer can consist of a series of application packages.
- the application package may include camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message and other applications (also called applications).
- the application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer.
- the application framework layer includes some predefined functions.
- the application framework layer can include window manager, content provider, view system, phone manager, resource manager, notification manager and so on.
- a window manager is used to manage window programs.
- the window manager can get the size of the display screen, determine whether there is a status bar, lock the screen, capture the screen, etc.
- Content providers are used to store and retrieve data and make it accessible to applications.
- Said data may include video, images, audio, calls made and received, browsing history and bookmarks, phonebook, etc.
- the view system includes visual controls, such as controls for displaying text, controls for displaying pictures, and so on.
- the view system can be used to build applications.
- a display interface can consist of one or more views.
- a display interface including a text message notification icon may include a view for displaying text and a view for displaying pictures.
- the phone manager is used to provide communication functions of the electronic device 100 . For example, the management of call status (including connected, hung up, etc.).
- the resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and so on.
- the notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and can automatically disappear after a short stay without user interaction.
- the notification manager is used to notify the download completion, message reminder, etc.
- the notification manager can also be a notification that appears on the top status bar of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog interface. For example, prompting text information in the status bar, issuing a prompt sound, vibrating the electronic device, and flashing the indicator light, etc.
- Runtime includes the core library and virtual machine. Runtime is responsible for the scheduling and management of the system.
- the core library includes two parts: one part is the function function that the programming language (for example, jave language) needs to call, and the other part is the core library of the system.
- one part is the function function that the programming language (for example, jave language) needs to call
- the other part is the core library of the system.
- the application layer and the application framework layer run in virtual machines.
- the virtual machine executes programming files (for example, jave files) of the application program layer and the application program framework layer as binary files.
- the virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
- a system library can include multiple function modules. For example: surface manager (surface manager), media library (Media Libraries), 3D graphics processing library (eg: OpenGL ES), 2D graphics engine (eg: SGL), etc.
- the surface manager is used to manage the display subsystem, and provides fusion of two-dimensional (2-Dimensional, 2D) and three-dimensional (3-Dimensional, 3D) layers for multiple applications.
- the media library supports playback and recording of various commonly used audio and video formats, as well as still image files, etc.
- the media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
- the 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing, etc.
- 2D graphics engine is a drawing engine for 2D drawing.
- the kernel layer is the layer between hardware and software.
- the kernel layer includes at least a display driver, a camera driver, an audio driver, a sensor driver, and a virtual card driver.
- the workflow of the software and hardware of the electronic device 100 will be exemplarily described below in conjunction with capturing and photographing scenes.
- a corresponding hardware interrupt is sent to the kernel layer.
- the kernel layer processes touch operations into original input events (including touch coordinates, time stamps of touch operations, and other information). Raw input events are stored at the kernel level.
- the application framework layer obtains the original input event from the kernel layer, and identifies the control corresponding to the input event. Take the touch operation as a touch click operation, and the control corresponding to the click operation is the control of the camera application icon as an example.
- the camera application calls the interface of the application framework layer to start the camera application, and then starts the camera driver by calling the kernel layer.
- Camera 193 captures still images or video.
- a virtual memory management module may be included in the application framework layer, system library or kernel layer, and the virtual memory management module may be used to execute the virtual memory management method in the embodiment of the present application.
- the virtual memory management module may specifically include:
- the grouping module is used to divide the processes of each application into main process grouping and auxiliary process according to application information (such as application package name, application type, etc.) and process information (such as process name, process type, etc.) through the application grouping decision engine group. And adjust the process in the auxiliary process group to the main process group according to the application behavior (such as continuously accessing a certain sensor to obtain data) and the application behavior rules in the rule module (such as the frequency of accessing a certain sensor data reaches the preset frequency value), Or adjust the processes in the main process group to the auxiliary process group.
- application information such as application package name, application type, etc.
- process information such as process name, process type, etc.
- process information such as process name, process type, etc.
- the rule module is used to store the rules of process group switching of each application, which may also be referred to as application behavior rules. Including rules for switching processes in the auxiliary process group to the main process group (for example, switching the process in the auxiliary process group of application A to the preset first condition in the main process group), and switching the process in the main process group A rule in the auxiliary process group (for example, a preset second condition for switching the process of application A that has been switched to the main process group to the auxiliary process group).
- the process group switching rules of an application can be preset according to the process status and/or user behavior.
- the preset condition for a process in map application 1 to switch from an auxiliary process group to a main process group can be preset as follows: the process accesses The frequency of the positioning sensor exceeds the preset frequency threshold 1, and the user's operating frequency in the map application 1 exceeds the preset frequency 2. It can be understood that some process group switching rules may also be preset only according to the process state, or only according to user behavior, which is not limited here.
- the recycling module is used to reclaim memory in various ways according to the different process grouping types (main process grouping or auxiliary process grouping) determined by the grouping module for each process in the application: including compressing memory data to compressing memory space, dumping Memory data or data in the compressed memory space is transferred to the swap space in the storage device, or memory data in the memory is cleaned up.
- different strategies can be adopted when reclaiming memory: for example, when compressing memory data into compressed memory space, compress the memory data of processes in the main process group at a higher ratio, and compress at a lower ratio Memory data for processes in the worker process group.
- cleaning the memory data in the memory only the memory data of the processes in the auxiliary memory group are cleaned, and the memory data of the processes in the main process group are not cleaned.
- FIG. 13 it is a schematic flowchart of the virtual memory management method in the embodiment of the present application.
- the name of the main process is recorded in the application information. After the electronic device is turned on, the installation list of all applications can be obtained in the system, and the name of the main process of the application can be obtained by calling the getApplicationInfo function of the application. Maintain a table corresponding to the application and the main process.
- the electronic device can determine the name of its main process as P1 according to its installation information, and save the correspondence between application A and process P1 in the application-main-process correspondence table. Similarly, the corresponding relationship between other applications and their main process that can be determined is also stored in the application and main process correspondence table.
- Table 3 it is an example of a corresponding table between an application and a main process:
- the electronic device may not be able to obtain the main process information corresponding to the application according to the application information.
- the corresponding relationship between the application and the main process may not be displayed in the corresponding table of the application and the main process, or the corresponding relationship between the application and the main process may be added to the corresponding table of the application and the main process and the main process of the application shall be set as empty value, which is not limited here.
- the electronic device divides the process P1 into the main process of application A
- process P2 and process P3 are divided into auxiliary process groups of application A.
- the grouping relationship of the application A stored in the memory may be as shown in Table 1 above.
- the electronic device When application A is switched to the background and meets the preset first memory recovery condition, the electronic device partially compresses the data of the processes in the main process group of application A in the memory at the first ratio, and partially compresses the data in the memory at the second ratio. Applying the data of the processes in the auxiliary process grouping of A, the first proportion is greater than the second proportion;
- the first ratio is the ratio of compressed data to uncompressed data in the data of the processes in the main process group of application A;
- the second ratio is the ratio of compressed data to uncompressed data among the data of the processes in the auxiliary process group of application A.
- the preset first memory reclamation condition may be that the total memory space occupied rate exceeds the preset first occupied rate, or the memory occupied rate of a certain application exceeds the preset application's first occupied rate, etc., which are not limited herein.
- the electronic device compresses the main process of application A at a ratio of 90%.
- the data of processes P2 and P3 in the auxiliary process group of application A are compressed at a rate of 20%.
- step S1303 may not be performed.
- the electronic device clears the data of the processes in the auxiliary process group of the application A in the memory;
- step S1304 may be performed after step S1303 is performed.
- the electronic device clears the data of the processes in the auxiliary process group of application A, according to different settings: (1) it can only clear the uncompressed data of the processes in the auxiliary process group of application A in the memory, without clearing the compression The data of the processes in the auxiliary process group of application A in the memory space; (2) the uncompressed data in the memory and the data of the auxiliary process group of application A in the compressed memory space can also be cleaned up, which is not limited here.
- step S1304 may be directly performed without performing step S1303.
- the electronic device may directly clear all data of the processes in the auxiliary process group of the application A in the memory.
- the requirement of the preset second memory reclamation condition is higher than that of the preset first memory reclamation condition.
- the preset first memory reclamation condition is that the occupied rate of memory space is higher than 50%
- the preset second memory reclamation condition can be that the occupied rate of memory space is higher than 70%.
- the memory reclamation condition is higher than the preset first memory reclamation condition.
- the preset first memory recovery condition may also be called a preset second memory recovery condition, and the preset second memory recovery condition may be called a preset first memory recovery condition.
- the requirement of the preset second memory reclamation condition is lower than the preset first memory reclamation condition. For example, if the preset first memory reclamation condition is that the occupied rate of memory space is higher than 60%, then the preset second memory reclamation condition can be that the occupied rate of memory space is higher than 40%.
- the memory reclamation condition is lower than the preset first memory reclamation condition.
- step S1305 may be performed after step S1304 is performed. At this time, the electronic device may dump the data of the application A in the compressed memory space to the swap space.
- step S1304 may be directly executed instead of step S1303, and at this time, there is no data of the processes in the auxiliary process group of application A in the memory.
- the electronic device may dump the data in the main process group of the application A in the memory to the swap space according to the preset first dump ratio.
- the preset first dump ratio may be 20%, 50%, 100%, etc., which is not limited here.
- the preset third memory reclamation condition is higher than the preset second memory reclamation condition.
- the preset second memory reclamation condition is that the memory space occupied rate is higher than 70%
- the preset third memory reclamation condition can be that the memory space occupied rate is higher than 90%.
- the memory reclamation condition is higher than the preset second memory reclamation condition.
- the electronic device when the user actively switches application A to the foreground, the electronic device will read all the dumped anonymous page 30M data of application A from the swap space, and decompress it into the memory middle. At this time, the data of process P1 in the main process group of application A is completely restored, which is 100M, and the user interface of application A can be displayed normally.
- the electronic device may divide the process of the started application into a main process group and an auxiliary process group of the application, and adopt different policies for the memory management of the processes in the main process group and the auxiliary process group.
- a lower compression ratio is used, and it is directly cleaned up when it needs to be cleaned up.
- a higher compression ratio is adopted, and they are dumped into the swap space when the memory pressure is high, ensuring the integrity of important process data. Since the process data in the unimportant auxiliary process group is directly cleaned up, the memory data that needs to be compressed is reduced, and the data that needs to be dumped to the swap space is also reduced. In this way, the data in the read-write swap space is reduced, and the lifespan of the storage device is improved. And it only needs to read less data to restore the data of the process in the main process group, which improves the speed of application hot start.
- the process P1 may also be referred to as the first process
- the process P2 may also be referred to as the second process
- the process P3 may also be referred to as the third process
- the process P1 may also be called the first process
- the process P2 may also be called the third process
- the process P2 may also be called the second process, which is not limited here.
- the electronic device will continuously sense the process state of the process started by the application A.
- the electronic device may adjust the process into the main process group of application A.
- the preset first condition may be a correspondence relationship between a preset process and a preset process state in the preset first state table.
- the preset first condition can be configured by developers according to actual tests and requirements. That is to say, the processes, process states, and corresponding relationships included in the preset first state table can be configured by developers according to requirements.
- processes and process states may include a one-to-one correspondence (a process name corresponds to a process state), or may include a one-to-many correspondence (a process name corresponds to a plurality of process states, and if any one of the process states is met, the process meets the preset first condition), and it can also include a many-to-one correspondence (a plurality of process names corresponds to a process state, and these several Any one of the processes conforms to the process state, and the process all conforms to the preset first condition), which is not limited here.
- the preset processes in the preset first state table may be some processes that may continue to be in an uncleanable state, such as music playing processes, positioning processes, step counting processes, and the like.
- the preset progress states in the preset first state table may be some user-perceivable progress states. For example, when the music playing process is in the music playing state, if the music playing process is cleared, the user will find that the music is no longer playing, so the user can perceive that the music playing process is cleared. When the positioning process is in the positioning state, if the positioning process is cleared, the user will find that it cannot continue to obtain geographic location information, because the positioning process can be perceived to be cleared.
- the electronic device when the electronic device determines that the memory data of a certain process cannot be cleaned up, it may determine that the process state of the process meets the preset first condition. In some embodiments, it may also be periodically determined whether the process state of each process conforms to the preset first state table, thereby determining whether the process state of each process conforms to the preset first condition, which is not limited herein.
- the electronic device will continuously sense the process state of the process started by the application A.
- the electronic device may adjust the process into the auxiliary process group of application A.
- the preset second condition may be a correspondence between a preset process and a preset process state in the second preset state table.
- the preset second condition can be configured by developers according to actual tests and requirements. That is to say, the processes, process states, and the correspondence between processes and process states in the preset second state table can be configured by developers according to requirements.
- a process and a process state may include a one-to-one correspondence (a process name corresponds to a process state, and the process conforms to the process state, then the process Meet the preset first condition), may also include a one-to-many correspondence (a process name corresponds to multiple process states, if any process state is met, the process meets the preset first condition), may also include The many-to-one correspondence (multiple process names correspond to a process state, any one of the several processes conforms to the process state, and the process conforms to the preset first condition), is not limited here.
- the preset processes in the preset second state table may be some processes that may continue to be in a cleanable state, such as music playing processes, positioning processes, step counting processes, and the like.
- the process states in the preset second state table may be process states imperceptible to some users. For example, when the music playback process stops playing music, its process status is stateless, and if the music playback process is cleaned up at this time, the user will not find that the process has been cleaned up. When the positioning process stops positioning, its process status is stateless. If the positioning process is cleaned up, the user will not find that the process has been cleaned up.
- the preset conditions for transferring the processes in any group to other groups can be set to be different from each other, or it can be set to transfer the processes in any group to other groups.
- the preset conditions for the processes in some groups to be transferred to a certain group are the same, and the preset conditions for the processes in some groups to be transferred to a certain group are different, which are not limited here.
- the electronic device can perceive the state of each process, and dynamically adjusts it to different process groups according to the state of the process for corresponding management, which improves the efficiency of memory management.
- the term “when” may be interpreted to mean “if” or “after” or “in response to determining" or “in response to detecting".
- the phrases “in determining” or “if detected (a stated condition or event)” may be interpreted to mean “if determining" or “in response to determining" or “on detecting (a stated condition or event)” or “in response to detecting (a stated condition or event)”.
- all or part of them may be implemented by software, hardware, firmware or any combination thereof.
- software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part.
- the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, DSL) or wireless (eg, infrared, wireless, microwave, etc.) means.
- the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
- the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state hard disk), etc.
- the processes can be completed by computer programs to instruct related hardware.
- the programs can be stored in computer-readable storage media.
- When the programs are executed may include the processes of the foregoing method embodiments.
- the aforementioned storage medium includes: ROM or random access memory RAM, magnetic disk or optical disk, and other various media that can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
| 应用名称 | 主进程分组中的进程 | 辅助进程分组中的进程 |
| 应用A | P1 | P2、P3 |
| 应用名称 | 主进程分组中的进程 | 辅助进程分组中的进程 |
| 应用A | P1、P2 | P3 |
| 应用名称 | 主进程名称 |
| 应用A | P1 |
| 应用B | M2 |
| 应用C | K5 |
| 进程名称 | 进程状态 |
| 定位进程 | 定位状态 |
| 音乐播放进程 | 音乐播放状态 |
| 进程名称 | 进程状态 |
| 定位进程 | 无状态 |
| 音乐播放进程 | 无状态 |
Claims (12)
- 一种虚拟内存管理方法,其特征在于,所述方法应用于电子设备,所述电子设备包含第一应用,所述第一应用包括第一进程和第二进程,所述第一进程属于所述第一应用的第一进程分组,所述第二进程属于所述第一应用的第二进程分组,所述第一进程为与所述第一应用的主界面相关的进程,所述方法包括:在所述第一应用切换到后台且满足预设第一内存回收条件的情况下,所述电子设备清理所述第二进程分组中进程的数据;响应于将所述第一应用切换到前台的操作,所述电子设备通过所述第一进程分组中的进程在内存中的数据显示所述第一应用的主界面。
- 根据权利要求1所述的方法,其特征在于,所述在所述第一应用切换到后台且满足预设第一内存回收条件的情况下,所述电子设备清理所述第二进程分组中进程的数据的步骤之前,所述方法还包括:在所述第一应用切换到后台且满足预设第二内存回收条件的情况下,所述电子设备以第一比例部分压缩内存中所述第一进程分组中进程的数据,得到第一分组压缩内存数据和第一分组未压缩内存数据;所述电子设备以第二比例部分压缩内存中所述第二进程分组中进程的数据,得到第二分组压缩内存数据和第二分组未压缩内存数据;所述第一比例大于所述第二比例;所述预设第二内存回收条件的要求低于所述预设第一内存回收条件。
- 根据权利要求2所述的方法,其特征在于,所述响应于将所述第一应用切换到前台的操作,所述电子设备通过所述第一进程分组中的进程在内存中的数据显示所述第一应用的主界面的步骤之前,所述方法还包括:在满足预设第三内存回收条件的情况下,所述电子设备将所述第一分组压缩内存数据部分或全部转储到存储器件的交换空间中;所述预设第三内存回收条件的要求高于所述预设第一内存回收条件;所述响应于将所述第一应用切换到前台的操作,所述电子设备通过所述第一进程分组中的进程在内存中的数据显示所述第一应用的主界面,具体包括:响应于将所述第一应用切换到前台的操作,所述电子设备从所述存储器件的交换空间中读取所述第一应用相关的数据解压缩到内存中,其中所述第一应用相关的数据包括所述第一分组压缩内存数据的部分或全部;所述电子设备通过所述第一进程分组中的进程在内存中的数据显示所述第一应用的主界面。
- 根据权利要求3所述的方法,其特征在于,所述第二进程分组中还包括所述第一应用的第三进程;所述电子设备清理所述第二进程分组中进程的数据的步骤之后,所述电子设备将所述 第一分组压缩内存数据部分或全部转储到存储器件的交换空间中的步骤之前,所述方法还包括:在所述电子设备确定所述第二进程分组中的所述第三进程还在运行且在内存中的数据未被清理的情况下,所述电子设备将所述第三进程调整到所述第一进程分组中;所述电子设备以第一比例部分压缩内存中所述第一进程分组中进程的数据,得到第一分组压缩内存数据和第一分组未压缩内存数据,具体包括:所述电子设备以所述第一比例部分压缩内存中第一进程的数据和第三进程的数据,得到第一进程的压缩内存数据和第三进程的压缩内存数据作为所述第一分组压缩内存数据,得到第一进程的未压缩内存数据和第三进程的未压缩内存数据作为所述第一分组未压缩内存数据;所述电子设备将所述第一分组压缩内存数据部分或全部转储到存储器件的交换空间中,具体包括:所述电子设备将所述第一进程的压缩内存数据和第三进程的压缩内存数据部分或全部转储到存储器件的交换空间中。
- 根据权利要求3所述的方法,其特征在于,所述第二进程分组中还包括所述第一应用的第三进程;所述电子设备将所述第一分组压缩内存数据部分或全部转储到存储器件的交换空间中的步骤之后,所述方法还包括:在所述电子设备确定所述第二进程分组中的所述第三进程还在运行且在内存中的数据未被清理的情况下,所述电子设备将所述第三进程调整到所述第一进程分组中;所述电子设备将所述第三进程在内存中部分压缩的数据部分或全部转储到存储器件的交换空间中。
- 根据权利要求2至5中任一项所述的方法,其特征在于,所述电子设备以第一比例部分压缩内存中所述第一进程分组中进程的数据时,采用预置第一压缩率;所述电子设备以第二比例部分压缩内存中所述第二进程分组中进程的数据时,采用预置第二压缩率;所述预置第一压缩率与所述与预置第二压缩率相同或不同。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:所述电子设备根据已安装应用的应用信息,确定已安装应用的主进程的名称;保存已安装的应用与其主进程的对应关系到应用与主进程对应表中,其中包括所述第一应用与所述第一进程的对应关系;在所述第一应用运行的情况下,所述电子设备根据所述应用与主进程对应表,将所述第一进程划分到所述第一进程分组中,将所述第一应用的其他进程划分到所述第二进程分组中。
- 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:在确定所述第二进程分组中的第四进程符合预设第一条件时,所述电子设备将所述第四进程调整到所述第一进程分组中,所述第四进程为所述第二进程分组中的任一个进程;在确实所述第一进程分组中的第五进程符合预设第二条件时,所述电子设备将所述第五进程调整到所述第二进程分组中,所述第五进程为所述第一进程分组中的任一个进程。
- 一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-8中任一项所述的方法。
- 一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-8中任一项所述的方法。
- 一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
- 一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22819346.2A EP4239477A4 (en) | 2021-06-10 | 2022-05-23 | VIRTUAL MEMORY MANAGEMENT METHOD AND ELECTRONIC DEVICE |
| US18/252,924 US20230418736A1 (en) | 2021-06-10 | 2022-05-23 | Virtual Memory Management Method and Electronic Device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110651383.9A CN113722087B (zh) | 2021-06-10 | 2021-06-10 | 虚拟内存管理方法和电子设备 |
| CN202110651383.9 | 2021-06-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022257748A1 true WO2022257748A1 (zh) | 2022-12-15 |
Family
ID=78672868
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/094563 Ceased WO2022257748A1 (zh) | 2021-06-10 | 2022-05-23 | 虚拟内存管理方法和电子设备 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20230418736A1 (zh) |
| EP (1) | EP4239477A4 (zh) |
| CN (3) | CN116244067B (zh) |
| WO (1) | WO2022257748A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116244067A (zh) * | 2021-06-10 | 2023-06-09 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114518905A (zh) * | 2022-01-21 | 2022-05-20 | 珠海全志科技股份有限公司 | 一种应用冷启动的方法、装置、计算机设备和存储介质 |
| CN114443510B (zh) * | 2022-01-25 | 2025-07-04 | 维沃移动通信有限公司 | 一种内存回收方法及装置 |
| CN114185494B (zh) * | 2022-02-16 | 2022-07-19 | 荣耀终端有限公司 | 内存匿名页的处理方法、电子设备及可读存储介质 |
| CN117519959B (zh) * | 2022-07-30 | 2025-01-14 | 华为技术有限公司 | 内存管理方法及电子设备 |
| CN117632446B (zh) * | 2022-08-09 | 2026-03-20 | 华为技术有限公司 | 管理内存的方法和电子设备 |
| CN116089319B (zh) * | 2022-08-30 | 2023-10-31 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
| CN116303110B (zh) * | 2022-11-22 | 2023-11-14 | 荣耀终端有限公司 | 一种内存垃圾的回收方法及电子设备 |
| CN118915953A (zh) * | 2023-05-06 | 2024-11-08 | 华为技术有限公司 | 内存管理方法、终端设备及计算机可读存储介质 |
| CN117707719B (zh) * | 2023-06-29 | 2025-03-21 | 荣耀终端股份有限公司 | 进程管理的方法、电子设备及可读存储介质 |
| CN119311601A (zh) * | 2023-07-14 | 2025-01-14 | 荣耀终端有限公司 | 一种内存管理方法、电子设备及存储介质 |
| JP2025040618A (ja) * | 2023-09-12 | 2025-03-25 | トヨタ自動車株式会社 | 車載コンピュータ |
| CN119718606B (zh) * | 2023-09-27 | 2026-04-21 | Oppo广东移动通信有限公司 | 内存管理方法、装置、电子设备及存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104375828A (zh) * | 2014-10-27 | 2015-02-25 | 小米科技有限责任公司 | 内存优化方法及装置 |
| CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
| US20150324605A1 (en) * | 2014-05-09 | 2015-11-12 | Samsung Electronics Co., Ltd. | Method and apparatus for sharing content between electronic devices |
| WO2019028912A1 (zh) * | 2017-08-11 | 2019-02-14 | 华为技术有限公司 | 一种应用切换方法及装置 |
| CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013131558A1 (en) * | 2012-03-06 | 2013-09-12 | Huawei Technologies Co., Ltd. | Method for compressing soft values |
| CN103902459B (zh) * | 2012-12-25 | 2017-07-28 | 华为技术有限公司 | 确定共享虚拟内存页面管理模式的方法和相关设备 |
| KR102114388B1 (ko) * | 2013-10-18 | 2020-06-05 | 삼성전자주식회사 | 전자 장치의 메모리 압축 방법 및 장치 |
| US9633233B2 (en) * | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
| US10303235B2 (en) * | 2015-03-04 | 2019-05-28 | Qualcomm Incorporated | Systems and methods for implementing power collapse in a memory |
| CN107807847B (zh) * | 2016-09-09 | 2022-04-29 | 华为技术有限公司 | 应用进程的管理方法和终端设备 |
| EP3674846B1 (en) * | 2017-10-13 | 2023-12-06 | Huawei Technologies Co., Ltd. | Method and apparatus for compressing and decompressing memory occupied by processor |
| US10109088B1 (en) * | 2017-12-28 | 2018-10-23 | Schneider Electric Software, Llc | Automated event correlation in a managed historian system |
| CN110929478A (zh) * | 2018-09-03 | 2020-03-27 | 珠海全志科技股份有限公司 | 一种匿名网页压缩的方法、装置及系统 |
| CN111913750B (zh) * | 2019-05-10 | 2022-04-22 | 华为技术有限公司 | 一种应用程序管理方法、装置及设备 |
| CN110532197B (zh) * | 2019-08-30 | 2022-03-01 | Oppo(重庆)智能科技有限公司 | 内存回收方法及装置、电子设备、存储介质 |
| CN112463350A (zh) * | 2019-09-09 | 2021-03-09 | 珠海市魅族科技有限公司 | 后台应用优化方法及装置、存储介质及电子装置 |
| CN110764906B (zh) * | 2019-09-27 | 2022-06-17 | Oppo(重庆)智能科技有限公司 | 内存回收处理方法、装置、电子设备以及存储介质 |
| CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
| KR102936557B1 (ko) * | 2019-10-25 | 2026-03-06 | 삼성전자주식회사 | 컴퓨팅 장치 및 그 동작 방법 |
| CN111008079B (zh) * | 2019-12-10 | 2022-10-21 | Oppo(重庆)智能科技有限公司 | 进程管理方法、装置、存储介质及电子设备 |
| CN111367828B (zh) * | 2020-02-27 | 2023-10-20 | Oppo广东移动通信有限公司 | 内存压缩方法、装置、终端及存储介质 |
| CN111381953B (zh) * | 2020-03-19 | 2024-01-16 | Oppo广东移动通信有限公司 | 进程管理方法、装置、存储介质及电子设备 |
| CN111880991B (zh) * | 2020-07-23 | 2022-09-13 | Oppo广东移动通信有限公司 | 内存优化方法、装置、电子设备及计算机可读存储介质 |
| CN111966492B (zh) * | 2020-08-05 | 2024-02-02 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及计算机可读存储介质 |
| CN111949564B (zh) * | 2020-08-13 | 2024-05-17 | Vidaa(荷兰)国际控股有限公司 | 一种内存交换方法及显示设备 |
-
2021
- 2021-06-10 CN CN202211662410.3A patent/CN116244067B/zh active Active
- 2021-06-10 CN CN202211738533.0A patent/CN116107742A/zh active Pending
- 2021-06-10 CN CN202110651383.9A patent/CN113722087B/zh active Active
-
2022
- 2022-05-23 US US18/252,924 patent/US20230418736A1/en active Pending
- 2022-05-23 EP EP22819346.2A patent/EP4239477A4/en active Pending
- 2022-05-23 WO PCT/CN2022/094563 patent/WO2022257748A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150324605A1 (en) * | 2014-05-09 | 2015-11-12 | Samsung Electronics Co., Ltd. | Method and apparatus for sharing content between electronic devices |
| CN104375828A (zh) * | 2014-10-27 | 2015-02-25 | 小米科技有限责任公司 | 内存优化方法及装置 |
| CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
| WO2019028912A1 (zh) * | 2017-08-11 | 2019-02-14 | 华为技术有限公司 | 一种应用切换方法及装置 |
| CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116244067A (zh) * | 2021-06-10 | 2023-06-09 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
| CN116244067B (zh) * | 2021-06-10 | 2024-05-03 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113722087B (zh) | 2023-01-31 |
| CN116244067A (zh) | 2023-06-09 |
| EP4239477A4 (en) | 2024-08-21 |
| CN113722087A (zh) | 2021-11-30 |
| US20230418736A1 (en) | 2023-12-28 |
| CN116244067B (zh) | 2024-05-03 |
| CN116107742A (zh) | 2023-05-12 |
| EP4239477A1 (en) | 2023-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113722087B (zh) | 虚拟内存管理方法和电子设备 | |
| CN114443277A (zh) | 内存管理方法、装置、电子设备以及计算机可读存储介质 | |
| WO2021083378A1 (zh) | 一种加速应用程序启动的方法及电子设备 | |
| US12079118B2 (en) | Method and electronic device to reclaim physical page using active and inactive lists | |
| CN113553130A (zh) | 应用执行绘制操作的方法及电子设备 | |
| EP4209906A1 (en) | Memory management method, electronic device, and computer-readable storage medium | |
| CN111382087A (zh) | 一种内存管理方法及电子设备 | |
| CN110347455A (zh) | 一种界面布局方法及终端 | |
| CN115729684B (zh) | 输入输出请求处理方法和电子设备 | |
| CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
| CN116627855B (zh) | 内存处理方法及相关装置 | |
| CN116414782B (zh) | 识别重复文件的方法及电子设备 | |
| CN114489471B (zh) | 一种输入输出处理方法和电子设备 | |
| WO2023231900A1 (zh) | 一种内存管理方法及相关装置 | |
| CN116266159A (zh) | 一种缺页异常处理方法和电子设备 | |
| CN120670338B (zh) | 一种内存管理方法与电子设备 | |
| US20250199958A1 (en) | Storage method and apparatus, and electronic device | |
| CN119248465A (zh) | 一种内存管理的方法、电子设备及相关介质 | |
| HK40068957B (zh) | 一种内存的管理方法及电子设备 | |
| WO2023001208A1 (zh) | 多文件同步方法及电子设备 | |
| CN117311484A (zh) | 调整设备功耗的方法及电子设备 | |
| CN117675881A (zh) | 一种应用数据保存方法及电子设备 | |
| HK40068957A (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: 22819346 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18252924 Country of ref document: US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202337035368 Country of ref document: IN |
|
| ENP | Entry into the national phase |
Ref document number: 2022819346 Country of ref document: EP Effective date: 20230601 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |