CN118034889A - 插件进程映射方法及相关装置 - Google Patents
插件进程映射方法及相关装置 Download PDFInfo
- Publication number
- CN118034889A CN118034889A CN202410263729.1A CN202410263729A CN118034889A CN 118034889 A CN118034889 A CN 118034889A CN 202410263729 A CN202410263729 A CN 202410263729A CN 118034889 A CN118034889 A CN 118034889A
- Authority
- CN
- China
- Prior art keywords
- plug
- time
- processes
- module
- host
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 1097
- 238000012367 process mapping Methods 0.000 title claims abstract description 14
- 238000013507 mapping Methods 0.000 claims abstract description 98
- 238000011084 recovery Methods 0.000 claims description 47
- 230000000694 effects Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004064 recycling Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 40
- 238000012545 processing Methods 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 8
- 238000013480 data collection Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006378 damage Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供的插件进程映射方法及相关装置,涉及终端技术领域。方法包括:通过计算插件进程和宿主进程的运行时长,来合理的分配插件进程与宿主进程的映射关系,使得多个插件进程可以较为均匀的映射到各个宿主进程中,从而可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
Description
技术领域
本申请涉及终端技术领域,尤其涉及插件进程映射方法及相关装置。
背景技术
电子设备的系统中可以安装多个应用程序。其中,一些应用程序中可以加载和管理插件,这些可以加载和管理插件的应用程序可以称为宿主应用。
然而,在电子设备回收进程资源时,可能存在一些映射了插件进程的宿主进程的资源长时间无法被回收,导致该宿主进程占用较多的内存资源,从而减低电子设备的运行效率。
发明内容
本申请实施例提供的插件进程映射方法及相关装置,通过计算插件进程和宿主进程的运行时长,来合理的分配插件进程与宿主进程的映射关系,使得多个插件进程可以较为均匀的映射到各个宿主进程中,从而可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
第一方面,本申请实施例提供的插件进程映射方法,应用于电子设备,方法包括:
第一时刻,将第一插件进程映射到第一进程,在第一时刻,电子设备中运行有第一进程、第二进程和第三进程,第一进程中未映射插件进程,或,第一进程的剩余运行时间小于第二进程的剩余运行时间,且第一进程的剩余运行时间小于第三进程的剩余运行时间;第二时刻,将第二插件进程映射到第三进程,在第二时刻,第三进程中未映射插件进程,或,第三进程的剩余运行时间小于第一进程的剩余运行时间,且第三进程的剩余运行时间小于第二进程的剩余运行时间;其中,第一进程、第二进程和第三进程均为第一应用的进程,第一应用用于映射插件进程时配置的进程顺序中,第一进程、第二进程和第三进程是顺次排序的,第一插件进程和第二插件进程均为第二应用的进程,第一插件进程和第二插件进程是相邻映射的进程。这样,当宿主进程没有运行插件进程,或宿主进程的剩余运行时长最短或较短时,电子设备可以将插件进程映射到该宿主进程中,从而合理的分配插件进程与宿主进程的映射关系,及时回收宿主进程和插件进程的资源。
一种可能的实现中,第一进程的剩余运行时间是通过一个或多个插件进程均结束运行所需的运行时长得到的,一个或多个插件进程是计算第一进程的剩余时间时,第一进程中所运行的插件进程。这样,由于第一进程的生命时长可以由第一进程中所有插件进程所剩余的最长的平均运行时长决定,通过一个或多个插件进程均结束运行所需的运行时长得到第一进程的剩余运行时间。
一种可能的实现中,一个或多个插件进程的运行时长与下述的一项或多项有关:一个或多个插件进程起始运行的时间点、一个或多个插件进程结束运行的时间点、第一进程的回收时长,其中,第一进程的回收时长包括第一进程由空闲状态到被电子设备的系统回收的时长。这样,一个或多个插件进程的运行时长可以和插件进程从起始运行到结束运行的时间段成正比,由于插件进程结束运行后,第一进程的回收还需要一段时间。因此,一次插件进程的运行时长可以和插件进程从起始运行时间、插件进程的结束运行时间以及第一进程的回收时长有关。
一种可能的实现中,一个或多个插件进程的运行时长Tplugin,满足下述公式:
Tplugin= Tend–Tstart+ Trecycle。
其中,Tstart为一个或多个插件进程起始运行的时间点,Tend为一个或多个插件进程结束运行的时间点,Trecycle为第一进程的回收时长。这样,一个或多个插件进程的运行时长可以和插件处于运行状态的时间段成正比,由于插件进程结束运行后,第一进程的回收还需要一段时间。因此,一个或多个插件进程的运行时长还可以和第一进程的回收时长成正比。
一种可能的实现中,方法还包括:记录一个或多个插件进程调用目标组件的时间点,其中,目标组件包括下述的一个或多个组件:Activity组件、Service组件、ContentProvider组件、BroadcastReceiver组件,目标组件的时间点包括:一个或多个插件进程起始运行的时间点和一个或多个插件进程结束运行的时间点;基于目标组件的时间点计算一个或多个插件进程的运行时长,并得到第一进程的剩余运行时间;将第一插件进程映射到第一进程,包括:在第一进程的剩余运行时间小于第二进程的剩余运行时间,且第一进程的剩余运行时间小于第三进程的剩余运行时间的情况下,将第一插件进程映射到第一进程。这样,记录一个或多个插件进程调用目标组件的时间点,可以作为电子设备计算插件进程的运行时长、宿主进程的回收时长,以及宿主进程的生命时长的依据。当第一进程的剩余运行时间最短或较短时,电子设备可以将插件进程映射到该第一进程中,从而合理的分配插件进程与宿主进程的映射关系。
一种可能的实现中,电子设备还记录有第一进程被系统回收的时间点,第一进程的回收时长与第一进程被系统回收的时间点和一个或多个插件进程结束运行的时间点有关。由于第一进程中的插件进程结束运行后,第一进程需要运行一段时间才会被电子设备回收,因此,第一进程的回收时长可以与第一进程被回收和插件运行结束之间的时间间隔相关,比如成正相关。
一种可能的实现中,第一进程的回收时长Trecycle,满足下述公式:
Trecycle= Tre–Tend。
其中,Tre为第一进程被系统回收的时间点,Tend为一个或多个插件进程结束运行的时间点。由于第一进程中的插件进程结束运行后,第一进程需要运行一段时间才会被电子设备回收,因此,第一进程的回收时长可以与第一进程被回收和插件运行结束之间的时间间隔相关,比如成正相关。
一种可能的实现中,方法还包括:第三时刻,将第三插件进程映射到第一进程,其中,在第三时刻,第一进程、第二进程和第三进程均未映射插件进程;第四时刻,将第四插件进程映射到第二进程,其中,在第四时刻,第二进程和第三进程均未映射插件进程;第五时刻,将第五插件进程映射到第三进程,其中,在第五时刻,第三进程未映射过插件进程;其中,第三插件进程、第四插件进程和第五插件进程均为第三应用的进程,第三插件进程、第四插件进程和第五插件进程是相邻映射的进程。这样,若电子设备中存在未运行的宿主进程,电子设备可以将待映射的插件进程映射到未运行的宿主进程。从而可以不需要计算宿主进程的生命时长,减少电子设备的算力,提升插件映射效率。
一种可能的实现中,电子设备包括第一模块、第二模块和第三模块,第一模块用于管理第二应用,第二模块用于加载第二应用以及获取第二应用的进程信息,第三模块用于确定第二应用的进程和第一应用的进程的映射关系,方法还包括:通过第一模块判断第二应用是否加载到电子设备的系统中;在第二应用加载到电子设备的系统的情况下,通过第一模块从第二模块获取第一插件进程的进程信息;通过第一模块向第三模块传递第一信息,第一信息中包括用于指示第三模块为第一插件进程映射进程的标识;通过第三模块向第一模块返回第一进程的进程信息;将第一插件进程映射到第一进程,包括:基于第一进程的进程信息,通过第一模块将第一插件进程映射到第一进程。这样,电子设备通过各个模块的交互可以管理和加载插件应用,还可以获取插件应用的进程信息,以及确定插件进程和宿主进程的映射关系。从而可以通过模块间的协调运作实现对插件进程的合理映射,从而合理分配电子设备的资源。
一种可能的实现中,电子设备记录有第一插件进程与第一进程的映射关系,通过第三模块向第一模块返回第一进程的进程信息之前,还包括:通过第三模块基于第一插件进程查询映射关系,得到第一进程。这样,当插件进程所映射的宿主进程被系统回收后,映射关系表中该插件进程与宿主进程的映射关系也会被清理。因此,当插件管理模块请求映射宿主进程时,数据采集计算与进程分配模块需要先查询映射关系表中插件进程是否映射过宿主进程。
第二方面,本申请实施例提供一种插件进程映射的装置,该装置可以是电子设备,也可以是电子设备内的芯片或者芯片系统。该装置可以包括处理单元。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式执行的与处理相关的任意方法。当该装置是电子设备时,该处理单元可以是处理器。该装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的方法。当该装置是电子设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该电子设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第三方面,本申请实施例提供一种电子设备,包括一个或多个处理器和存储器,存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
第四方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统应用于电子设备,该芯片或者芯片系统包括一个或多个处理器和通信接口,通信接口和至少一个处理器通过线路互联,一个或多个处理器用于调用计算机指令以使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在电子设备上运行时,使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的结构示意图;
图2为本申请实施例提供的一种电子设备的软件结构示意图;
图3为本申请实施例提供的一种宿主应用和插件应用的关系示意图;
图4为本申请实施例提供的一种插件进程映射宿主进程的示意图;
图5为本申请实施例提供的一种插件进程调用组件时所记录的时间点的示意图;
图6为本申请实施例提供的一种计算宿主进程的生命时长的示意图;
图7为本申请实施例提供的一种插件进程映射到宿主进程的模块示意图;
图8为本申请实施例提供的一种插件进程映射方法的示意图;
图9为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、安卓系统的四大组件:
Activity组件:可以用于展示用户界面的组件,还可以允许用户与应用程序进行交互。Activity组件可以提供初始化函数onCreate()和销毁函数onDestroy()等。当电子设备创建Activity时,可以调用Activity组件的onCreate()进行界面的初始化,例如加载界面布局资源等。当电子设备销毁Activity时,可以调用Activity组件的onDestroy()进行Activity回收和资源释放等。
Service组件:可以用于在电子设备后台运行的服务程序。Service组件可以提供启动服务函数startService()和绑定服务函数bindService()。
ContentProvider组件:可以用于在不同的应用程序之间共享数据。ContentProvider组件可以提供对数据进行操作的函数,例如插入数据函数inset()、查询数据函数query()、更新数据函数update()和删除数据函数delete()等。一些场景中,ContentProvider组件也可以称为Provider组件。
BroadcastReceiver组件:可以用于接收应用间或应用内发出的广播事件,还可以通过函数onReceive()对广播事件作出响应。一些场景中,BroadcastReceiver组件也可以称为Broadcast组件或广播组件。
2、术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
3、电子设备
本申请实施例的电子设备也可以为任意形式的终端设备,例如,电子设备可以包括:手机(mobile phone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobileinternet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wirelesslocal loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的电子设备或者未来演进的公用陆地移动通信网络(public land mobilenetwork,PLMN)中的电子设备等,本申请实施例对此并不限定。
作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)系统中的电子设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
本申请实施例中的电子设备也可以称为:用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
示例性的,图1示出了电子设备的结构示意图。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以包括硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。例如本申请实施例中,处理器110可以用于进行插件应用的加载、将插件进程映射到宿主进程、以及计算宿主进程的回收时长等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序等。存储数据区可存储电子设备使用过程中所创建的数据等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。例如本申请实施例中,内部存储器121可以用于存储计算插件进程的平均运行时长、计算宿主进程的生命时长和计算宿主进程的回收时长的相关代码等。
图2是本申请实施例的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware adaptation layer,HAL),以及内核层。
应用程序层也可以称为应用层,应用层可以包括一系列应用程序包。如图2所示,应用程序包可以包括基础服务、鉴权插件、数据采集插件、广告插件等应用程序。应用程序可以包括系统应用和三方应用。
应用程序框架层也可以称为Framework层,Framework层可以为应用层的应用程序提供应用编程接口(application programming interface,API)和编程框架。Framework层可以包括一些预先定义的函数。
如图2所示,Framework层可以包括插件管理模块、插件加载模块、数据采集计算与进程分配模块和活动管理器等。
其中,插件管理模块可以用于管理鉴权插件,例如插件管理模块可以判断鉴权插件是否加载、获取插件进程的相关信息,以及获取被映射的宿主进程信息等。
插件加载模块可以用于解析Manifest清单,并从Manifest清单中获取鉴权插件对应的进程信息等。
数据采集计算与进程分配模块可以用于缓存插件进程和宿主进程的映射关系表,该映射关系表中可以包括插件进程和宿主进程的映射关系、插件进程的启动时间点,和/或宿主进程的启动时间点等,从而方便计算宿主进程的生命时长等信息。
数据采集计算与进程分配模块还可以用于缓存鉴权插件调用四大组件时的时间点,例如组件启动的时间点,以及组件销毁的时间点等,以及监听宿主进程的生命周期等。
数据采集计算与进程分配模块还可以基于缓存的时间点等信息计算插件进程的平均运行时长、宿主进程的生命时长,以及宿主进程的回收时长等。
活动管理器可以负责应用程序的生命周期管理、任务栈管理、进程管理和权限管理等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的控制和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用层和Framework层运行在虚拟机中。虚拟机将应用层和Framework层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。例如本申请实施例中,虚拟机可以用于执行插件应用的加载、将插件进程映射到宿主进程、以及计算宿主进程的回收时长等功能。
系统库也可以称为Native层,Native层可以包括多个功能模块。例如:媒体库、函数库、图形处理库等。
硬件抽象层是介于内核层和Android runtime之间的抽象出来的一层结构。硬件抽象层可以是对硬件驱动的一个封装,为上层应用的调用提供统一接口。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动等。
需要说明的是,本申请实施例仅以安卓系统举例来说明,在其他操作系统中(例如Windows系统,IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似,也能实现本申请的方案。
如图3所示,电子设备的系统中可以安装多个应用程序。其中,一些应用程序中可以加载和管理插件,这些可以加载和管理插件的应用程序可以称为宿主应用。一些场景中,宿主进程也可以称为坑位进程,插件也可以称为插件应用。为了方便描述,后续以宿主进程和插件应用为例进行说明。
可以理解的是,由于插件应用未在系统中安装,因此系统无法识别插件应用。插件应用的代码运行需要依赖于宿主应用,插件应用可以被宿主应用进行加载,从而在宿主应用中实现插件应用的功能。
示例性的,电子设备中可以包括基础服务,该基础服务可以用于提供账号管理功能、支付功能、推送功能等。该基础服务中还可以加载一个或多个插件,例如鉴权插件、数据采集插件、广告插件等。例如,鉴权插件可以用于对接入基础服务的应用进行权限校验等。数据采集插件可以用于采集应用运行时的相关数据,例如应用的运行时长、应用的启动和关闭等数据。广告插件可以用于检测应用展示广告的情况等。
可以理解的是,该基础服务可以理解为宿主应用,该鉴权插件、数据采集插件和广告插件可以理解为插件应用。
宿主应用中可以包括一个或多个宿主进程,例如主进程、常驻进程、宿主进程等。
其中,主进程可以用于显示宿主应用的相关页面。
常驻进程可以包括core进程和persistent进程。persistent进程可以用来进行插件管理等。core进程可以为插件提供常驻能力等。
宿主进程可以用于运行插件应用。插件应用中可以包括一个或多个插件进程。当宿主进程加载插件进程时,电子设备需要进行插件进程与宿主进程之间的映射。
假设宿主应用中有3个宿主进程,分别为宿主进程A、宿主进程B和宿主进程C。同时,宿主应用可以加载有3个插件应用,分别为插件应用X、插件应用Y和插件应用Z。
其中,插件应用X声明了1个插件进程,该插件进程为X1;插件应用Y声明了2个插件进程,分别为插件进程Y1和插件进程Y2;插件应用Z声明了4个插件进程,分别为插件进程Z1、插件进程Z2、插件进程Z3和插件进程Z4。
可能的实现中,当宿主应用加载插件应用时,电子设备可以将多个插件进程依次映射给预先声明的宿主进程中。
示例性的,如图4所示,对于插件应用X,其插件进程X1可以映射到宿主进程A。对于插件应用Y,其插件进程Y1可以映射到宿主进程A,插件进程Y2可以映射到宿主进程B。对于插件应用Z,其插件进程Z1可以映射到宿主进程A,插件进程Z2可以映射到宿主进程B,插件进程Z3可以映射到宿主进程C,顺序地,插件进程Z4可以再次映射到宿主进程A。
可以看到,映射后的结果是宿主进程A被映射了4个插件进程,包括插件进程X1、插件进程Y1、插件进程Z1和插件进程Z4。宿主进程B被映射了2个插件进程,包括插件进程Y2和插件进程Z2。宿主进程C被映射了1个插件进程,包括插件进程Z3。也就是说,一些宿主进程会被映射较多的插件进程,而另一些宿主进程会被映射较少的插件进程。
然而,在电子设备回收进程资源时,对于映射了较多插件进程的宿主进程,会受到多个插件进程的影响,导致该宿主进程的资源长时间无法被回收。也就是说,只要有一个插件进程在运行,该宿主进程的资源就无法被回收,且映射到该宿主进程的其他插件进程的资源也无法被回收,导致该宿主进程和映射的插件进程占用较多的内存资源,从而减低电子设备的运行效率。
有鉴于此,本申请实施例提供的插件进程映射方法,可以通过计算插件进程和宿主进程的运行时长,来合理的分配插件进程与宿主进程的映射关系,使得多个插件进程可以较为均匀的映射到各个宿主进程中,从而可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
可能的实现中,电子设备可以记录插件进程在运行过程中调用四大组件的各个时间点,并根据时间点计算插件进程和宿主进程的运行时长,从而确定插件进程和宿主进程的映射关系。
示例性的,图5示出了插件进程调用组件时所记录的时间点的示意图。
为了便于描述,图5以宿主进程中运行有一个插件进程为例进行说明。可以理解的是,当宿主进程中运行有多个插件进程时,电子设备可以分别对每个插件进程记录调用组件的时间点,也就是说,每个插件进程可以有对应的时间点记录信息,具体各个插件进程所记录时间点的方式可以与图5类似,不再赘述。
图5中的起始时间点T0为宿主进程启动运行的时间点,终止时间点T11为宿主进程销毁的时间点。宿主进程销毁也可以理解为系统对宿主进程的资源回收。
在T0时间点和T11时间点之间,电子设备可以记录插件进程调用各个组件的时间点,并基于各个组件被调用的时间情况计算得到插件进程的平均运行时长、宿主进程由空闲状态到被系统回收的时长,以及宿主进程的生命时长,从而确定出插件进程所映射的宿主进程。为了便于描述,后续可以将宿主进程由空闲状态到被系统回收的时长称为宿主进程的回收时长。
可以理解的是,图5中所标识的时间点为示例性的展示电子设备记录插件进程调用组件的时间点,实际中插件进程调用组件的时间点可以与图5存在差异,本申请实施例不作限定。
1、统计插件进程的运行时长Tplugin。
(1)记录插件进程调用四大组件时的时间点。
插件进程在运行过程中,可能会调用系统的四大组件,则电子设备可以记录插件进程调用Activity组件、Service组件、Provider组件或Broadcast组件时的时间点。
可能的实现中,插件进程调用Activity组件时,电子设备可以通过插桩的方式让各个插件的Activity继承于统一的插件管理类PluginActivity,当检测到插件进程所调用的Activity状态发生变化时,可以记录插件管理类PluginActivity的初始化函数onCreate()和销毁函数onDestroy()等被调用的时间点。例如,插件进程调用onCreate()时,电子设备可以记录Activity组件的启动时间,插件进程调用onDestroy ()时,电子设备可以记录Activity组件的销毁时间。
插件进程调用Service组件时,电子设备可以记录启动服务函数startService()或绑定服务函数bindService()被调用的时间点。插件进程调用Provider组件时,电子设备可以记录插入数据函数inset()、查询数据函数query()、更新数据函数update()或删除数据函数delete()被调用的时间点。插件进程调用Broadcast组件时,电子设备可以记录函数onReceive ()被调用的时间点。
如图5所示,T0时间点至T10时间点均为插件进程调用组件时,电子设备所记录的时间点。这些时间点可以作为后续计算插件进程的运行时长、宿主进程的回收时长,以及宿主进程的生命时长的依据。
(2)丢弃重叠的时间点。
可以理解的是,电子设备还可以丢弃T0时间点至T10时间点中重叠的时间点。
例如,处于Activity组件的生命周期内的时间点可以视为重叠的时间点,也就是说,处于onCreate()和onDestroy()之间的时间点可以视为重叠的时间点,进而电子设备可以将其丢弃。这是由于在Activity组件的生命周期内,电子设备可以显示插件进程所调用的Activity组件对应的界面。也可以理解为,在Activity组件的生命周期内,插件进程可以一直处于运行状态。因此,在Activity组件的生命周期内,无需通过其他时间点来体现插件进程处于运行状态,可以被视为重叠的时间点进行丢弃。
示例性的,图5中的T4时间点为插件进程调用Activity组件的onCreate()的时间点,T7时间点为插件进程调用Activity组件的onDestroy()的时间点。在T4时间点至T7时间点之间,可以理解为Activity组件的生命周期。
可以理解的是,在T4时间点与T7时间点之间,T5时间点和T6时间点被Activity组件的生命周期覆盖,可以视为重叠的时间点,因此,电子设备可以将T5时间点和T6时间点进行丢弃。
(3)计算相邻时间点的时间间隔。
以Tx时间点和Ty时间点为相邻时间点为例,电子设备可以计算出Tx时间点和Ty时间点之间的时间间隔Txy。
如果两个相邻时间点的时间间隔Txy过长,则说明该插件进程可以已经停止运行。因此,如果时间间隔Txy超过了宿主进程由空闲状态到被系统回收的时长Trecycle,则可以将时间间隔Txy之前的时间段和时间间隔Txy之后的之间段看作是两段时间。该两段时间分别为该插件进程前后运行两次的运行时长,该运行时长也可以理解为插件进程的生命周期。
示例性的,如图5所示,T7时间点为Activity组件被销毁的时间点,T8时间点为Broadcast组件被调用的时间点,T7时间点和T8时间点的时间间隔为T78。可以看出,T78的时间间隔较长,当该时间间隔超过了宿主进程的回收时长Trecycle时,则可以认为该插件进程在T7时间点后停止运行。在T7时间点后之后,以及T8时间点之前,该插件进程再次被创建和启动运行。
同理,从图中可以看出,T1011的时间间隔较长,当该时间间隔超过了宿主进程的回收时长Trecycle时,则可以认为该插件进程在T10时间点后停止运行。
电子设备可以在宿主进程运行结束或插件进程运行结束时,计算插件进程的运行时长Tplugin。例如图5中,前一次插件进程的运行时长Tplugin= T7–T1+ Trecycle,后一次插件进程的运行时长Tplugin= T10–T8+ Trecycle。
可以理解的是,电子设备可以多次统计某个插件进程的运行时长,进而对多次的运行时长计算平均值,得到该插件进程的平均运行时长。为了便于描述,后续均以平均运行时长为例进行说明。
2、统计宿主进程的回收时长Trecycle。
如图5所示,在T10时间点之后,直到T11时间点宿主进程销毁,电子设备没有再记录四大组件被调用的时间点。也就是说,在T10时间点到T11时间点之间,插件进程没有调用四大组件,宿主进程进入了空闲状态。
宿主进程进入空闲状态的时间点可以理解为插件进程最后调用四大组件的时间点,宿主进程销毁的时间点可以理解为宿主进程被系统回收的时间点。例如图5中,T10时间点为宿主进程进入空闲状态时间点,T11时间点为宿主进程被系统回收的时间点。
电子设备可以在宿主进程运行结束时,计算宿主进程的回收时长Trecycle。例如图5中宿主进程的回收时长Trecycle= T11–T10。
需要说明的是,在计算插件进程的平均运行时长Tplugin时,宿主进程的回收时长Trecycle可以为上一次宿主进程被系统回收的时长,也可以为之前的一次或多次宿主进程被系统回收的时长的平均值,还可以为其他可能的取值,本申请实施例不作限定。
可以理解的是,宿主进程的回收时长Trecycle的默认值可以由电子设备根据统计得到或基于经验值设置,例如,宿主进程的回收时长Trecycle的默认值可以包括25分钟(min),还可以为其他可能的取值。具体宿主进程的回收时长Trecycle的默认取值,本申请实施例不作限定。
3、计算宿主进程的生命时长Thost。
如图6所示,假设插件进程X1和插件进程Y1需要映射到宿主进程中。以插件进程X1的平均运行时长Tplugin为35 min,插件进程Y1的平均运行时长Tplugin为15 min为例。
在T1时刻,插件进程X1先被映射到宿主进程中,宿主进程需要等到插件进程X1运行完成后才可以被系统回收,则宿主进程的生命时长Thost为35 min。在插件进程X1运行到第30 min时,宿主进程所剩余的生命时长Thost为5 min。这时,如果插件进程Y1映射到该宿主进程中,则宿主进程还需要等到插件进程Y1运行完成后才可以被系统回收,因此,宿主进程所剩余的生命时长Thost由5 min变为15 min。
根据上述可知,宿主进程的生命时长可以由当前宿主进程中所有插件进程所剩余的最长的平均运行时长决定。
4、确定插件进程所要映射的宿主进程。
电子设备可以比对待映射的插件进程的平均运行时长Tplugin与当前宿主进程所剩余的生命时长Thost,并将待映射的插件进程映射到剩余的生命时长Thost最短或较短的宿主进程中,使得映射后的插件进程对原有插件进程的回收时长影响减小。
一种可能的实现中,若电子设备中存在未运行的宿主进程,电子设备可以将待映射的插件进程映射到未运行的宿主进程。
电子设备中可以包括多个宿主进程,对应一些未被映射插件进程的宿主进程,可以不启动运行,这些不启动运行的宿主进程可以称为未运行的宿主进程。
例如,以图4中的宿主进程A、宿主进程B和宿主进程C为例,若宿主进程A和宿主进程B中运行有插件进程,则宿主进程A和宿主进程B为运行的宿主进程。若宿主进程C中没有映射任何插件进程,也就是宿主进程C中没有运行的插件进程,则宿主进程C为未运行的宿主进程。
若电子设备中存在未运行的宿主进程C,则电子设备可以将待映射的插件进程映射到宿主进程C中。这样,该待映射的插件进程可以单独运行在宿主进程C中,不会和其他的插件进程相互影响,从而使得该待映射的插件进程的运行,不会增加其他插件进程被回收的时长,及时释放其他插件进程的资源。
可以理解的是,若电子设备中存在未运行的宿主进程,则不需要计算宿主进程的生命时长Thost。这样可以减少电子设备的算力,提升插件映射效率。
另一种可能的实现中,若电子设备中不存在未运行的宿主进程,电子设备可以计算出宿主进程所剩余的生命时长Thost,并选择生命时长最短或较短的宿主进程进行映射。
可以理解的是,若待映射的插件进程的平均运行时长Tplugin大于宿主进程的生命时长Thost,则会延迟宿主进程中原有插件进程的回收时间。如果待映射的插件进程的平均运行时长Tplugin小于宿主进程的生命时长Thost时,则会延迟该待映射的插件进程的回收时长。
在插件进程首次启动时,由于还没有统计到数据,如果已运行的宿主进程中所映射的插件进程也是首次运行,则宿主进程的回收时长无法计算,这时,电子设备可以随机选择一个宿主进程映射即可。
不管待映射的插件进程映射到哪个宿主进程中,所增加的内存大小可以是一样的,但是对于映射到剩余的生命时长Thost最短或较短的宿主进程来说,意味着该插件进程可以较快的被系统回收。这样,使得被映射的插件进程对其他插件进程的回收时长影响最小,电子设备可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
图7以鉴权插件为例,示出了鉴权插件的进程映射到宿主进程的模块交互图。电子设备中可以包括插件管理模块、插件加载模块、数据采集计算与进程分配模块。
示例性的,下面以网络加速功能为例,说明插件进程映射到宿主进程的过程。网络加速功能可以用于在网络质量较差的情况下,提高电子设备连接网络的稳定性和流畅性,从而减少电子设备频繁出现卡顿的情况。
S701、电子设备调用鉴权插件的服务。
电子设备中可以包括应用A,在应用A进行网络加速时,应用A可以调用电子设备提供的网络加速接口。电子设备可以调用鉴权插件对应用A进行鉴权,判断应用A是否有调用网络加速接口的权限。此时,电子设备可以执行步骤S702。
S702、插件管理模块判断鉴权插件是否加载。
插件管理模块可以判断电子设备中是否加载有鉴权插件。加载插件可以理解为将插件的安卓应用程序包(android application package,APK)和相关资源加载到系统内存中,例如将插件安装到内存的预设目录中。
可以理解的是,当插件加载成功后,电子设备可以记录该插件已加载的标识,从而方便插件管理模块后续再次判断该插件是否加载时使用。
若鉴权插件未加载,则执行步骤S703;若鉴权插件已加载,则执行步骤S706。
S703、若未加载鉴权插件,先进行加载。
若电子设备中还未加载鉴权插件,可以先加载该鉴权插件,例如包括将该鉴权插件的资源加载到电子设备的系统中,并执行步骤S704。
其中,鉴权插件的资源可以包括鉴权接口的相关信息、应用鉴权的相关代码、以及配置参数或文件等,本申请实施例不作限定。
S704、插件加载模块解析Manifest清单。
插件加载模块还可以解析Manifest清单,便于后续基于该Manifest清单获取鉴权插件对应的进程信息,并执行步骤S705。
S705、完成该插件的加载。
插件加载模块可以向插件管理模块返回用于指示鉴权插件加载完成的信息。
S706、获取鉴权插件的进程信息。
在鉴权插件完成加载的情况下,插件加载模块可以从Manifest清单中获取鉴权插件对应的进程信息。
可能的实现中,Manifest清单中可以包括process属性,该属性用于对鉴权插件的进程进行定义,插件加载模块可以根据该process属性获取鉴权插件对应的进程信息,并执行步骤S707。
S707、插件加载模块返回鉴权插件的进程信息。
插件加载模块可以向插件管理模块返回鉴权插件的进程信息。为了便于描述,后续将该鉴权插件的进程称为插件进程。
S708、插件管理模块请求映射宿主进程。
插件管理模块可以向数据采集计算与进程分配模块传递用于请求映射宿主进程的信息,其中,该信息中可以包括鉴权插件的包名等信息。
数据采集计算与进程分配模块获取到该信息后,可以执行步骤S709。
S709、数据采集计算与进程分配模块查询映射关系表,判断插件进程与宿主进程否存在映射关系。
可能的实现中,数据采集计算与进程分配模块可以根据插件进程与宿主进程的映射关系表,判断插件进程是否映射过宿主进程。若映射关系表中包括某个插件进程与宿主进程的映射关系,说明该插件进程映射过宿主进程;若映射关系表中没有该插件进程与宿主进程的映射关系,说明该插件进程没有映射过宿主进程。
可以理解的是,当插件进程所映射的宿主进程被系统回收后,映射关系表中该插件进程与宿主进程的映射关系也会被清理。因此,当插件管理模块请求映射宿主进程时,数据采集计算与进程分配模块需要先查询映射关系表中插件进程是否映射过宿主进程。
若插件进程映射过宿主进程,则可以执行步骤S710,返回映射过的宿主进程。
若插件进程未映射过宿主进程,则可以执行步骤S711,计算插件进程所要映射的宿主进程,并返回该宿主进程。
S710、若映射关系表中存在插件进程与宿主进程的映射关系,则返回被映射的宿主进程。
若数据采集计算与进程分配模块判断插件进程映射过宿主进程,则可以向插件管理模块返回被映射的宿主进程的相关信息,例如宿主进程的进程名等,本申请实施例不作限定。
S711、若映射关系表中不存在插件进程与宿主进程的映射关系,则确定插件进程所要映射的宿主进程。
可能的实现中,若电子设备中存在未运行的宿主进程,则可以将插件进程映射到未运行的宿主进程中。这样,该插件进程可以单独运行在宿主进程中,不会和其他的插件进程相互影响,从而使得该插件进程的运行不会增加其他插件进程被回收的时长,及时释放其他插件进程的资源。
若电子设备中不存在未运行的宿主进程,电子设备可以计算出宿主进程所剩余的生命时长Thost,并选择生命时长最短或较短的宿主进程进行映射。这样,使得该插件进程对其他插件进程的回收时长影响最小,电子设备可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
可以理解的是,插件进程在运行过程中,数据采集计算与进程分配模块可以记录插件进程调用四大组件的各个时间点,还可以计算插件进程的平均运行时长Tplugin。
当映射关系表中不存在插件进程与宿主进程的映射关系时,数据采集计算与进程分配模块还可以基于时间点计算宿主进程的回收时长Trecycle,以及基于插件进程的平均运行时长计算宿主进程的生命时长Thost等。
S712、数据采集计算与进程分配模块返回被映射的宿主进程。
可以理解的是,图7对应的插件进程映射方法的流程图体现了一个插件进程进行映射的过程。本申请实施例的插件进程映射方法还可以用于多个插件映射宿主进程的情况。下面以宿主进程包括宿主进程A和宿主进程B,插件应用包括鉴权插件、数据采集插件和广告插件为例,说明依次映射多个插件进程时的执行流程。
示例性的,当应用A调用网络加速接口进行网络加速时,电子设备可以通过鉴权插件对应用A进行鉴权校验。具体可以参照图7对应实施例的步骤S701中的相关描述,不再赘述。
插件管理模块可以判断系统中是否已加载鉴权插件。若鉴权插件未加载,可以先加载该鉴权插件,包括将该鉴权插件的资源加载到系统中。在鉴权插件被加载后,插件加载模块可以从Manifest清单中获取鉴权插件对应的进程信息,并返回鉴权插件的进程信息。若鉴权插件已加载,则无需执行加载插件的流程,插件加载模块可以在Manifest清单中获取鉴权插件对应的进程信息,并返回鉴权插件的进程信息。具体可以参照图7对应实施例的步骤S702至步骤S707中的相关描述,不再赘述。
插件管理模块还可以向数据采集计算与进程分配模块传递用于请求映射宿主进程的信息。数据采集计算与进程分配模块接收到该信息后,可以判断该插件进程之前是否映射过宿主进程。当判断该插件进程映射过插件进程A,或者,该插件进程未映射过宿主进程,且当前系统中存在未运行的宿主进程A时,数据采集计算与进程分配模块可以将插件进程映射到宿主进程A中,并向插件管理模块返回被映射的宿主进程A。具体可以参照图7对应实施例的步骤S708至步骤S712中的相关描述,不再赘述。
可能的场景中,电子设备需要获取系统中应用的安装列表。可能的实现中,电子设备可以调用数据采集插件提供的相关接口获取与应用安装相关的数据。与鉴权插件同理,插件管理模块可以先判断系统中是否已加载数据采集插件。
若数据采集插件未加载,可以先加载该数据采集插件。在数据采集插件被加载后,插件加载模块可以从Manifest清单中获取该插件对应的进程信息,并返回该插件的进程信息。若数据采集插件已加载,则无需执行加载插件的流程,插件加载模块可以在Manifest清单中获取数据采集插件对应的进程信息,并向插件管理模块返回该插件的进程信息。
插件管理模块还可以向数据采集计算与进程分配模块传递用于请求映射宿主进程的信息。数据采集计算与进程分配模块接收到该信息后,可以判断该插件进程之前是否映射过宿主进程。当判断该插件进程映射过插件进程B,或者,该插件进程未映射过宿主进程,且当前系统中存在未运行的宿主进程B,则数据采集计算与进程分配模块可以将数据采集插件的进程映射到宿主进程B中,并向插件管理模块返回被映射的宿主进程B。
可能的场景中,电子设备还可以调用广告插件检测应用展示广告的情况。与鉴权插件同理,插件管理模块可以先判断系统中是否已加载广告插件。
若广告插件未加载,可以先加载广告插件。在广告插件被加载后,插件加载模块还可以从Manifest清单中获取广告插件对应的进程信息,并返回该插件的进程信息。若广告插件已加载,则无需执行加载插件的流程,插件加载模块可以在Manifest清单中获取广告插件对应的进程信息,并向插件管理模块返回该插件的进程信息。
插件管理模块还可以向广告插件的传递用于请求映射宿主进程的信息。广告插件的接收到该信息后,可以判断该插件进程之前是否映射过宿主进程。若该插件进程之前未映射过宿主进程,且当前系统中不存在未运行的宿主进程,也就是说,宿主进程A运行有鉴权插件的进程,宿主进程B运行有数据采集插件的进程,则数据采集计算与进程分配模块可以根据图5和图6对应的实施例计算各个宿主进程的回收时长Thost,并选择回收时长最短或较短的宿主进程作为被映射的宿主进程,并向插件管理模块返回被映射的宿主进程。
下面通过具体的实施例对本申请实施例的方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图8示出了本申请实施例的插件进程映射方法。方法包括:
S801、第一时刻,将第一插件进程映射到第一进程,在第一时刻,电子设备中运行有第一进程、第二进程和第三进程,第一进程中未映射插件进程,或,第一进程的剩余运行时间小于第二进程的剩余运行时间,且第一进程的剩余运行时间小于第三进程的剩余运行时间。
S802、第二时刻,将第二插件进程映射到第三进程,在第二时刻,第三进程中未映射插件进程,或,第三进程的剩余运行时间小于第一进程的剩余运行时间,且第三进程的剩余运行时间小于第二进程的剩余运行时间。
其中,第一进程、第二进程和第三进程均为第一应用的进程,第一应用用于映射插件进程时配置的进程顺序中,第一进程、第二进程和第三进程是顺次排序的,第一插件进程和第二插件进程均为第二应用的进程,第一插件进程和第二插件进程是相邻映射的进程。
本申请实施例中,第一应用可以为电子设备中加载和管理插件的任一应用,例如第一应用可以为上述实施例中的宿主应用。示例性的,第一进程可以包括上述实施例中的宿主进程A,第二进程可以包括上述实施例中的宿主进程B,第三进程可以包括上述实施例中的宿主进程C。
第二应用可以为依赖第一应用运行的插件应用,例如第二应用可以包括上述实施例中的鉴权插件、数据采集插件、广告插件等。
可以理解的是,在不计算第一进程、第二进程和第三进程的剩余运行时间的情况下,电子设备可以将多个插件进程,例如包括第一插件进程和第二插件进程,依次映射到第一进程、第二进程和第三进程中。具体按照第一进程、第二进程和第三进程的顺序映射插件进程的过程可以参照图4对应的实施例中的相关描述,不再赘述。
第一插件进程和第二插件进程是相邻映射的进程,可以理解为在映射第一插件进程之后,到映射第二插件进程之前,电子设备没有映射其他的插件进程。
可以理解的是,当宿主进程没有运行插件进程,或宿主进程的剩余运行时长最短或较短时,电子设备可以将插件进程映射到该宿主进程中,这样,可以合理的分配插件进程与宿主进程的映射关系,使得多个插件进程可以较为均匀的映射到各个宿主进程中,从而可以及时回收宿主进程和插件进程的资源,减少内存资源的占用,提高电子设备的运行效率。
可选的,在图8对应的实施例的基础上,第一进程的剩余运行时间是通过一个或多个插件进程均结束运行所需的运行时长得到的,一个或多个插件进程是计算第一进程的剩余时间时,第一进程中所运行的插件进程。
本申请实施例中,第一进程的剩余运行时间可以基于云端服务器进行大数据分析得到,第一进程的剩余运行时间还可以在电子设备中进行计算,本申请实施例不作限定。
示例性的,第一进程的剩余运行时间可以理解为上述实施例中宿主进程的生命时长,一个或多个插件进程均结束运行所需的运行时长可以参照图5对应实施例中计算插件进程的运行时长和宿主进程的生命时长的相关描述,不再赘述。
可以理解的是,由于第一进程的生命时长可以由第一进程中所有插件进程所剩余的最长的平均运行时长决定,这样,可以通过一个或多个插件进程均结束运行所需的运行时长得到第一进程的剩余运行时间。
可选的,在图8对应的实施例的基础上,一个或多个插件进程的运行时长与下述的一项或多项有关:一个或多个插件进程起始运行的时间点、一个或多个插件进程结束运行的时间点、第一进程的回收时长,其中,第一进程的回收时长包括第一进程由空闲状态到被电子设备的系统回收的时长。
本申请实施例中,插件进程的运行时长可以参照图5对应实施例中计算插件进程的运行时长的相关描述,第一进程的回收时长可以参照图5对应实施例中计算宿主进程的回收时长的相关描述,不再赘述。
可以理解的是,一个或多个插件进程的运行时长可以和插件进程从起始运行到结束运行的时间段成正比,此外,由于插件进程结束运行后,第一进程的回收还需要一段时间,因此,一次插件进程的运行时长可以和插件进程从起始运行时间、插件进程的结束运行时间以及第一进程的回收时长有关。
可选的,在图8对应的实施例的基础上,一个或多个插件进程的运行时长Tplugin,满足下述公式:
Tplugin= Tend–Tstart+ Trecycle。
其中,Tstart为一个或多个插件进程起始运行的时间点,Tend为一个或多个插件进程结束运行的时间点,Trecycle为第一进程的回收时长。
本申请实施例中,插件进程的运行时长可以参照图5对应实施例中计算插件进程的运行时长的相关描述,第一进程的回收时长可以参照图5对应实施例中计算宿主进程的回收时长的相关描述,不再赘述。例如,插件进程起始运行的时间点可以包括图5对应实施例中的T1时间点或T8时间点,插件进程结束运行的时间点可以包括图5对应实施例中的T7时间点或T10时间点。
可以理解的是,一个或多个插件进程的运行时长可以和插件处于运行状态的时间段成正比,此外,由于插件进程结束运行后,第一进程的回收还需要一段时间,因此,一个或多个插件进程的运行时长还可以和第一进程的回收时长成正比。
需要说明的是,在实际计算过程中,还可以对上述公式进行一些变形处理,例如每个参数可以乘以一定的比例,具体对公式的变形,本申请实施例不作限定。
可选的,在图8对应的实施例的基础上,方法还可以包括:记录一个或多个插件进程调用目标组件的时间点,其中,目标组件包括下述的一个或多个组件:Activity组件、Service组件、ContentProvider组件、BroadcastReceiver组件,目标组件的时间点包括:一个或多个插件进程起始运行的时间点和一个或多个插件进程结束运行的时间点;基于目标组件的时间点计算一个或多个插件进程的运行时长,并得到第一进程的剩余运行时间;将第一插件进程映射到第一进程,可以包括:在第一进程的剩余运行时间小于第二进程的剩余运行时间,且第一进程的剩余运行时间小于第三进程的剩余运行时间的情况下,将第一插件进程映射到第一进程。
本申请实施例中,记录一个或多个插件进程调用目标组件的时间点,以及基于目标组件的时间点计算一个或多个插件进程的运行时长,可以参照图5对应实施例中计算插件进程的运行时长的相关描述,不再赘述。
将第一插件进程映射到第一进程的实现可以参照图5对应实施例中确定插件进程所要映射的宿主进程的相关描述,不再赘述。
可以理解的是,记录一个或多个插件进程调用目标组件的时间点,可以作为电子设备计算插件进程的运行时长、宿主进程的回收时长,以及宿主进程的生命时长的依据。当第一进程的剩余运行时间最短或较短时,电子设备可以将插件进程映射到该第一进程中,这样,可以合理的分配插件进程与宿主进程的映射关系,合理使用电子设备的内存资源。
可选的,在图8对应的实施例的基础上,电子设备还记录有第一进程被系统回收的时间点,第一进程的回收时长与第一进程被系统回收的时间点和一个或多个插件进程结束运行的时间点有关。
本申请实施例中,由于第一进程中的插件进程结束运行后,第一进程需要运行一段时间才会被电子设备回收,因此,第一进程的回收时长可以与第一进程被回收和插件运行结束之间的时间间隔相关,比如成正相关。
可选的,在图8对应的实施例的基础上,第一进程的回收时长Trecycle,满足下述公式:
Trecycle= Tre–Tend。
其中,Tre为第一进程被系统回收的时间点,Tend为一个或多个插件进程结束运行的时间点。
本申请实施例中,第一进程的回收时长可以参照图5对应实施例中计算宿主进程的回收时长的相关描述,不再赘述。例如,第一进程被系统回收的时间点可以包括图5对应实施例中的T11时间点,插件进程结束运行的时间点可以包括图5对应实施例中的T10时间点。
可以理解的是,在实际计算过程中,还可以对上述公式进行一些变形处理,例如每个参数可以乘以一定的比例,具体对公式的变形,本申请实施例不作限定。
可选的,在图8对应的实施例的基础上,方法还可以包括:第三时刻,将第三插件进程映射到第一进程,其中,在第三时刻,第一进程、第二进程和第三进程均未映射插件进程;第四时刻,将第四插件进程映射到第二进程,其中,在第四时刻,第二进程和第三进程均未映射插件进程;第五时刻,将第五插件进程映射到第三进程,其中,在第五时刻,第三进程未映射过插件进程;其中,第三插件进程、第四插件进程和第五插件进程均为第三应用的进程,第三插件进程、第四插件进程和第五插件进程是相邻映射的进程。
本申请实施例中,第三应用可以为依赖第一应用运行的插件应用,例如第三应用可以包括上述实施例中的鉴权插件、数据采集插件、广告插件等。第三应用和第二应用可以相同或不同。
由于第一进程、第二进程和第三进程是顺次排序的,因此,在第一进程、第二进程和第三进程均未映射插件进程时,电子设备优先将第三插件进程映射到第一进程。
在第一进程运行第三插件进程,第二进程和第三进程均未映射插件进程时,电子设备优先将第四插件进程映射到第二进程。
在第一进程运行第三插件进程,第二进程运行第四插件进程,第三进程未映射插件进程时,电子设备可以将第五插件进程映射到第三进程。
可以理解的是,若电子设备中存在未运行的宿主进程,电子设备可以将待映射的插件进程映射到未运行的宿主进程。这样,可以不需要计算宿主进程的生命时长,减少电子设备的算力,提升插件映射效率。
可选的,在图8对应的实施例的基础上,电子设备包括第一模块、第二模块和第三模块,第一模块用于管理第二应用,第二模块用于加载第二应用以及获取第二应用的进程信息,第三模块用于确定第二应用的进程和第一应用的进程的映射关系,方法还可以包括:通过第一模块判断第二应用是否加载到电子设备的系统中;在第二应用加载到电子设备的系统的情况下,通过第一模块从第二模块获取第一插件进程的进程信息;通过第一模块向第三模块传递第一信息,第一信息中包括用于指示第三模块为第一插件进程映射进程的标识;通过第三模块向第一模块返回第一进程的进程信息;将第一插件进程映射到第一进程,可以包括:基于第一进程的进程信息,通过第一模块将第一插件进程映射到第一进程。
本申请实施例中,第一模块可以理解为图7对应实施例中的插件管理模块,第二模块可以理解为图7对应实施例中的插件加载模块,第三模块可以理解为图7对应实施例中的数据采集计算与进程分配模块。
通过第一模块判断第二应用是否加载到电子设备的系统中可以参照图7对应实施例中步骤S702的相关描述;通过第一模块从第二模块获取第一插件进程的进程信息可以参照图7对应实施例中步骤S706和步骤S707的相关描述;通过第一模块向第三模块传递第一信息可以参照图7对应实施例中步骤S708的相关描述;通过第三模块向第一模块返回第一进程的进程信息可以参照图7对应实施例中步骤S709-步骤S712的相关描述,不再赘述。
可以理解的是,电子设备通过各个模块的交互可以管理和加载插件应用,还可以获取插件应用的进程信息,以及确定插件进程和宿主进程的映射关系。这样可以通过模块间的协调运作实现对插件进程的合理映射,从而合理分配电子设备的资源。
可选的,在图8对应的实施例的基础上,电子设备记录有第一插件进程与第一进程的映射关系,通过第三模块向第一模块返回第一进程的进程信息之前,还可以包括:通过第三模块基于第一插件进程查询映射关系,得到第一进程。
本申请实施例中,通过第三模块基于第一插件进程查询映射关系可以参照图7对应实施例中步骤S709的相关描述,不再赘述。
可以理解的是,当插件进程所映射的宿主进程被系统回收后,映射关系表中该插件进程与宿主进程的映射关系也会被清理。因此,当插件管理模块请求映射宿主进程时,数据采集计算与进程分配模块需要先查询映射关系表中插件进程是否映射过宿主进程。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对实现该方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图9示为本申请实施例提供的一种芯片的结构示意图。芯片900包括一个或两个以上(包括两个)处理器901、通信线路902、通信接口903和存储器904。
在一些实施方式中,存储器904存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
上述本申请实施例描述的方法可以应用于处理器901中,或者由处理器901实现。处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器901可以实现或者执行本申请实施例中的公开的各处理相关的方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器904,处理器901读取存储器904中的信息,结合其硬件完成上述方法的步骤。
处理器901、存储器904以及通信接口903之间可以通过通信线路902进行通信。
在上述实施例中,存储器存储的供处理器执行的指令可以采用计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站的站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站的站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (14)
1.一种插件进程映射方法,其特征在于,所述方法应用于电子设备,所述方法包括:
第一时刻,将第一插件进程映射到第一进程,在所述第一时刻,所述电子设备中运行有所述第一进程、第二进程和第三进程,所述第一进程中未映射插件进程,或,所述第一进程的剩余运行时间小于所述第二进程的剩余运行时间,且所述第一进程的剩余运行时间小于所述第三进程的剩余运行时间;
第二时刻,将第二插件进程映射到所述第三进程,在所述第二时刻,所述第三进程中未映射插件进程,或,所述第三进程的剩余运行时间小于所述第一进程的剩余运行时间,且所述第三进程的剩余运行时间小于所述第二进程的剩余运行时间;
其中,所述第一进程、所述第二进程和所述第三进程均为第一应用的进程,所述第一应用用于映射插件进程时配置的进程顺序中,所述第一进程、所述第二进程和所述第三进程是顺次排序的,所述第一插件进程和所述第二插件进程均为第二应用的进程,所述第一插件进程和所述第二插件进程是相邻映射的进程。
2.根据权利要求1所述的方法,其特征在于,所述第一进程的剩余运行时间是通过一个或多个插件进程均结束运行所需的运行时长得到的,所述一个或多个插件进程是计算所述第一进程的剩余时间时,所述第一进程中所运行的插件进程。
3.根据权利要求2所述的方法,其特征在于,所述一个或多个插件进程的运行时长与下述的一项或多项有关:所述一个或多个插件进程起始运行的时间点、所述一个或多个插件进程结束运行的时间点、所述第一进程的回收时长,其中,所述第一进程的回收时长包括所述第一进程由空闲状态到被所述电子设备的系统回收的时长。
4.根据权利要求2或3所述的方法,其特征在于,所述一个或多个插件进程的运行时长Tplugin,满足下述公式:
Tplugin = Tend–Tstart + Trecycle;
其中,Tstart为所述一个或多个插件进程起始运行的时间点,Tend为所述一个或多个插件进程结束运行的时间点,Trecycle为所述第一进程的回收时长。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
记录所述一个或多个插件进程调用目标组件的时间点,其中,所述目标组件包括下述的一个或多个组件:Activity组件、Service组件、ContentProvider组件、BroadcastReceiver组件,所述目标组件的时间点包括:所述一个或多个插件进程起始运行的时间点和所述一个或多个插件进程结束运行的时间点;
基于所述目标组件的时间点计算所述一个或多个插件进程的运行时长,并得到所述第一进程的剩余运行时间;
所述将第一插件进程映射到第一进程,包括:
在所述第一进程的剩余运行时间小于所述第二进程的剩余运行时间,且所述第一进程的剩余运行时间小于所述第三进程的剩余运行时间的情况下,将所述第一插件进程映射到所述第一进程。
6.根据权利要求5所述的方法,其特征在于,所述电子设备还记录有所述第一进程被系统回收的时间点,所述第一进程的回收时长与所述第一进程被系统回收的时间点和所述一个或多个插件进程结束运行的时间点有关。
7.根据权利要求6所述的方法,其特征在于,所述第一进程的回收时长Trecycle,满足下述公式:
Trecycle= Tre–Tend;
其中,Tre为所述第一进程被系统回收的时间点,Tend为所述一个或多个插件进程结束运行的时间点。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
第三时刻,将第三插件进程映射到所述第一进程,其中,在所述第三时刻,所述第一进程、所述第二进程和所述第三进程均未映射插件进程;
第四时刻,将第四插件进程映射到所述第二进程,其中,在所述第四时刻,所述第二进程和所述第三进程均未映射插件进程;
第五时刻,将第五插件进程映射到所述第三进程,其中,在所述第五时刻,所述第三进程未映射过插件进程;
其中,所述第三插件进程、所述第四插件进程和所述第五插件进程均为第三应用的进程,所述第三插件进程、所述第四插件进程和所述第五插件进程是相邻映射的进程。
9.根据权利要求1-3任一项所述的方法,其特征在于,所述电子设备包括第一模块、第二模块和第三模块,所述第一模块用于管理所述第二应用,所述第二模块用于加载所述第二应用以及获取所述第二应用的进程信息,所述第三模块用于确定所述第二应用的进程和所述第一应用的进程的映射关系,所述方法还包括:
通过所述第一模块判断所述第二应用是否加载到所述电子设备的系统中;
在所述第二应用加载到所述电子设备的系统的情况下,通过所述第一模块从所述第二模块获取所述第一插件进程的进程信息;
通过所述第一模块向所述第三模块传递第一信息,所述第一信息中包括用于指示所述第三模块为所述第一插件进程映射进程的标识;
通过所述第三模块向所述第一模块返回所述第一进程的进程信息;
所述将第一插件进程映射到第一进程,包括:
基于所述第一进程的进程信息,通过所述第一模块将所述第一插件进程映射到所述第一进程。
10.根据权利要求9所述的方法,其特征在于,所述电子设备记录有所述第一插件进程与所述第一进程的映射关系,通过所述第三模块向所述第一模块返回所述第一进程的进程信息之前,还包括:
通过所述第三模块基于所述第一插件进程查询所述映射关系,得到所述第一进程。
11.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-10中任一项所述的方法。
12.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410263729.1A CN118034889B (zh) | 2024-03-08 | 插件进程映射方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410263729.1A CN118034889B (zh) | 2024-03-08 | 插件进程映射方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118034889A true CN118034889A (zh) | 2024-05-14 |
CN118034889B CN118034889B (zh) | 2024-11-19 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104091132A (zh) * | 2014-06-17 | 2014-10-08 | 小米科技有限责任公司 | 在路由设备上运行插件的方法、装置及路由设备 |
CN108958833A (zh) * | 2018-06-14 | 2018-12-07 | 北京奇虎科技有限公司 | 一种加载插件的方法及终端设备 |
CN114153621A (zh) * | 2022-02-09 | 2022-03-08 | 荣耀终端有限公司 | 系统进程调控方法、装置、电子设备及可读存储介质 |
WO2022100141A1 (zh) * | 2020-11-11 | 2022-05-19 | 华为技术有限公司 | 插件管理方法、系统及装置 |
CN114816707A (zh) * | 2021-12-24 | 2022-07-29 | 统信软件技术有限公司 | 为插件运行创建沙箱环境的方法和装置以及计算设备 |
CN115017003A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 负载预测方法和负载预测装置 |
WO2023185684A1 (zh) * | 2022-04-01 | 2023-10-05 | 华为技术有限公司 | 一种应用程序的进程查杀方法及电子设备 |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104091132A (zh) * | 2014-06-17 | 2014-10-08 | 小米科技有限责任公司 | 在路由设备上运行插件的方法、装置及路由设备 |
CN108958833A (zh) * | 2018-06-14 | 2018-12-07 | 北京奇虎科技有限公司 | 一种加载插件的方法及终端设备 |
WO2022100141A1 (zh) * | 2020-11-11 | 2022-05-19 | 华为技术有限公司 | 插件管理方法、系统及装置 |
CN115017003A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 负载预测方法和负载预测装置 |
CN114816707A (zh) * | 2021-12-24 | 2022-07-29 | 统信软件技术有限公司 | 为插件运行创建沙箱环境的方法和装置以及计算设备 |
CN114153621A (zh) * | 2022-02-09 | 2022-03-08 | 荣耀终端有限公司 | 系统进程调控方法、装置、电子设备及可读存储介质 |
WO2023185684A1 (zh) * | 2022-04-01 | 2023-10-05 | 华为技术有限公司 | 一种应用程序的进程查杀方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
潘志庚: "《分布式并行图形处理技术及其应用》", 31 May 1997, 北京:人民邮电出版社, pages: 56 - 62 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4002108B1 (en) | Application start method and electronic device | |
EP4145286A1 (en) | Memory management method and electronic device | |
CN113032766B (zh) | 应用权限管理的方法和装置 | |
CN115048642B (zh) | 多可信执行环境下可信应用间的通信方法及电子设备 | |
JP6859518B2 (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
CN109190367B (zh) | 利用沙箱运行应用程序安装包的方法及装置 | |
CN116088747A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN118034889B (zh) | 插件进程映射方法及相关装置 | |
CN118034889A (zh) | 插件进程映射方法及相关装置 | |
CN116700768B (zh) | 一种应用的处理方法及相关装置 | |
CN115794413B (zh) | 一种内存处理方法及相关装置 | |
CN110120963B (zh) | 一种数据处理方法、装置、设备和机器可读介质 | |
CN117707439A (zh) | 日志打印方法及相关装置 | |
CN116089135A (zh) | 功能控制方法、装置、设备及存储介质 | |
CN115829826A (zh) | 模型存储优化方法及电子设备 | |
CN117714271B (zh) | 消息处理方法及相关装置 | |
CN117724937B (zh) | 日志资源管理方法及相关装置 | |
CN114546246B (zh) | 一种生物特征数据分布存储和认证方法、系统 | |
CN116089110B (zh) | 控制进程交互的方法及相关装置 | |
CN117176850B (zh) | 界面显示方法及相关装置 | |
CN117932589A (zh) | 权限管理方法及相关装置 | |
CN115202902B (zh) | 控制进程交互的方法及相关装置 | |
CN116701299B (zh) | 一种目录管理方法及相关装置 | |
CN117349006B (zh) | Cpu资源管理方法及相关装置 | |
CN117891647B (zh) | 日志处理方法、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |