CN106933607B - 插件运行方法及装置 - Google Patents

插件运行方法及装置 Download PDF

Info

Publication number
CN106933607B
CN106933607B CN201511018177.5A CN201511018177A CN106933607B CN 106933607 B CN106933607 B CN 106933607B CN 201511018177 A CN201511018177 A CN 201511018177A CN 106933607 B CN106933607 B CN 106933607B
Authority
CN
China
Prior art keywords
plug
public class
class
cache
public
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.)
Active
Application number
CN201511018177.5A
Other languages
English (en)
Other versions
CN106933607A (zh
Inventor
赵路平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
May 8 Tongcheng Information Technology Co Ltd
Original Assignee
May 8 Tongcheng Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by May 8 Tongcheng Information Technology Co Ltd filed Critical May 8 Tongcheng Information Technology Co Ltd
Priority to CN201511018177.5A priority Critical patent/CN106933607B/zh
Publication of CN106933607A publication Critical patent/CN106933607A/zh
Application granted granted Critical
Publication of CN106933607B publication Critical patent/CN106933607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

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

本发明实施例提供一种插件运行方法及装置,该插件运行方法包括:确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;在通过进程加载第一公共类时,判断进程对应的缓存中是否存在与第一公共类的名称相同的第二公共类,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;若是,在缓存中删除第二公共类;通过进程加载第一公共类,并根据第一公共类,通过进程运行第一插件。用以在同一进程中运行多个插件时,在避免插件之间发生冲突的基础上,减少终端中创建的进程个数,提供终端的运行速度,进而提高用户体验。

Description

插件运行方法及装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种插件运行方法及装置。
背景技术
目前,终端中安装的应用程序(Application,简称APP)可以包括多个插件,各插件分别在进程中运行,由于进程在运行时需要占用独立的内存空间,因此,在同一APP中的多个插件同时运行时,为了减少终端中进程所占用的内存,可以在一个进程中运行多个插件。
在实际应用过程中,同一APP中的多个插件通常包括相同的公共类,在终端通过进程运行第一个插件时,在内存中加载第一个插件对应的公共类,并将该公共类加载至缓存中,当通过该进程运行第二个插件时,在缓存中查找是否存在第二个插件的公共类,由于第一个插件与第二个插件的公共类相同,则在运行第二个插件时,在缓存中查找到第一个插件对应的公共类,然后根据第二个插件的参数对第一个插件对应的公共类进行操作,由于第一个插件和第二个插件均对缓存中的第一个插件对应的公共类进行操作,导致该两个插件在进程内部产生冲突,均无法正常运行。
在现有技术中,为了避免进程中的插件发产生冲突,在加载插件时,为可能发生冲突的插件分别创建独立的进程,使得可能发生冲突的插件分别在各自的进程中独立运行,使得终端中创建的进程较多,占用终端较多的内存,使得终端的运行速度变慢,导致用户体验较差。
发明内容
本发明实施例提供一种插件运行方法及装置,用于在同一进程中运行多个插件时,在避免插件之间发生冲突的基础上,减少终端中创建的进程个数,提供终端的运行速度,进而提高用户体验。
第一方面,本发明实施例提供一种插件运行方法,包括:
确定待加载第一插件的进程,所述第一插件中包括所述第一插件对应的第一公共类;
在通过所述进程加载所述第一公共类时,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类,所述第二公共类为第二插件对应的公共类,所述第一插件和所述第二插件为同一应用程序APP中的插件;
若是,在缓存中删除所述第二公共类;
通过所述进程加载所述第一公共类,并根据所述第一公共类,通过所述进程运行所述第一插件。
第二方面,本发明实施例提供一种插件运行装置,包括确定模块、判断模块、删除模块以及运行模块,其中,
所述确定模块用于,确定待加载第一插件的进程,所述第一插件中包括所述第一插件对应的第一公共类;
所述判断模块用于,在通过所述进程加载所述第一公共类时,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类,所述第二公共类为第二插件对应的公共类,所述第一插件和所述第二插件为同一应用程序APP中的插件;
所述删除模块用于,在所述判断模块判断所述进程对应的缓存中存在与所述第一公共类的名称相同的第二公共类时,在缓存中删除所述第二公共类;
所述运行模块用于,通过所述进程加载所述第一公共类,并根据所述第一公共类,通过所述进程运行所述第一插件。
本发明实施例提供的插件运行方法及装置,确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;在通过该进程加载第一公共类时,若判断进程对应的缓存中存在与第一公共类的名称相同的第二公共类,则在缓存中删除第二公共类,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;通过进程加载第一公共类,并根据第一公共类,通过进程运行第一插件;在上述过程中,在进程加载第一公共类时,若缓存中存在第二公共类,则先删除第一公共类,再加载第一公共类,避免了通过第一插件的参数对第二插件对应的第二公共类进行操作,进而避免了在同一进程中运行第一插件和第二插件时产生冲突,进一步的,由于无需为可能发生冲突的第一插件和第二插件分别创建对立的进程,减少了终端中创建的进程个数,进而减少了终端中进程所占用的内存,提高了终端的运行速度,进而提高用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的插件运行方法的流程示意图一;
图2为本发明提供的插件运行方法的流程示意图二;
图3为本发明提供的插件运行装置的结构示意图一;
图4为本发明提供的插件运行装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的终端可以包括但不限于手机、平板电脑等移动通讯设备,终端的系统可以为Android、iOS等应用系统;本发明实施例中的终端可以安装包括多个插件的APP,并且可以通过一个进程运行同一APP中的多个插件;本发明实施例涉及的方法,旨在解决现有技术中,当进程中运行的插件发生冲突时,使得终端运行速度变慢,而导致用户体验差的问题;下面采用具体实施例对插件运行方法进行详细说明。
图1为本发明提供的插件运行方法的流程示意图一,该方法的执行主体为终端,该终端可以通过软件和/或硬件实现,请参照图1,该方法可以包括:
S101、确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;
S102、在通过进程加载第一公共类时,判断进程对应的缓存中是否存在与第一公共类的名称相同的第二公共类;
其中,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;
若是,执行S103;
若否,执行S104;
S103、在缓存中删除第二公共类;
在S103之后,执行S104;
S104、通过进程加载第一公共类,并根据第一公共类,通过进程运行第一插件。
在图1所示的实施例中,第一插件和第二插件为同一APP中的插件,且第一插件对应的第一公共类与第二插件对应的第二公共类名称相同,本领域技术人员可以理解的是,在应用系统中具有相同名称的类的实质内容也相同;可选的,第一公共类和第二公共类可以为界面类。
例如,针对终端中的任一APP,第一插件和第二插件分别为该APP的皮肤插件和图片插件,由于皮肤插件和图片插件需要共用该APP中的显示界面,因此,皮肤插件和图片插件中均包括与该APP的显示界面相关的界面类,即皮肤插件对应的界面类和图片插件对应的界面类的名称相同、实质内容也相同。
在实际应用过程中,APP中可以包括多个插件,当APP调用插件时,需要通过进程实现运行该插件,在通过进程实现运行该插件之前,需要先加载该插件中的类;插件中的类可以包括公共类和/或非公共类,当进程加载插件的非公共类时,将非公共类加载至内存中,当进程加载插件的公共类时,将公共类加载至内存中,同时将公共类加载至缓存中,本领域技术人员可以理解的是,在进程加载插件的类时,创建与类相关的对象,并将对象保存在内存或缓存中,本发明对此不再进行赘述。
下面,以通过进程运行APP中的第一插件为例,对图1所示的插件运行方法进行详细说明,其中,APP中还包括第二插件,第一插件包括第一公共类,第二插件包括第二公共类,且第一公共类和第二公共类的名称相同。
在确定对第一插件进行加载的进程后,通过该进程对第一插件对应的类进行加载,在通过进程加载第一插件对应的第一公共类时,判断缓存中是否存在与第一公共类名称相同的第二公共类,可选的,通过反射机制在缓存中获取所有参数名称,根据所有参数名称与第一公共类的名称,判断进程对应的缓存中是否存在与第一公共类的名称相同的第二公共类,若缓存中的参数名称包括第一公共类的名称,则确定缓存中存在与第一公共类名称相同的第二公共类,否则,则确定缓存中不存在与第一公共类名称相同的第二公共类。
若确定缓存中存在与第一公共类名称相同的第二公共类,由于在加载第一公共类时,需要在缓存中加载第一公共类,且缓存中无法同时存在两个类名称相同的公共类,因此,在加载第一公共类时,先在缓存中删除第二公共类,然后,向第二插件发送通知消息,以使得当第二插件调用第二公共类时,从第二插件对应的内存中调用第二公共类。在确定缓存中不存在与第一公共类名称相同的第二公共类后,通过进程加载第一公共类,并将第一公共类加载至第一插件对应的内存中,同时将第一公共类加载至缓存中,以使得第一插件既可以在第一插件对应的内存中调用第一公共类,又可以在缓存中调用公共类。
本发明实施例提供的插件运行方法,确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;在通过该进程加载第一公共类时,若判断进程对应的缓存中存在与第一公共类的名称相同的第二公共类,则在缓存中删除第二公共类,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;通过进程加载第一公共类,并根据第一公共类,通过进程运行第一插件;在上述过程中,在进程加载第一公共类时,若缓存中存在第二公共类,则先删除第一公共类,再加载第一公共类,避免了通过第一插件的参数对第二插件对应的第二公共类进行操作,进而避免了在同一进程中运行第一插件和第二插件时产生冲突,进一步的,由于无需为可能发生冲突第一插件和第二插件分别创建对立的进程,减少了终端中创建的进程个数,进而减少了终端中进程所占用的内存,提高了终端的运行速度,进而提高用户体验。
下面,通过图2所示的实施例,对通过进程加载包括第二公共类的第二插件之后,再加载包括第一公共类的第一插件的过程进行详细说明。
图2为本发明提供的插件运行方法的流程示意图二,该方法的执行主体为终端,该终端可以通过软件和/或硬件实现,在图1所示实施例的基础上,请参照图2,该方法可以包括:
S201、进程加载第二插件,将第二公共类加载至第二插件对应的内存中以及将第二公共类加载至缓存中;
S202、确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;
S203、在通过进程加载第一公共类时,确定缓存中存在与第一公共类的名称相同的第二公共类;
其中,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;
S204、在缓存中删除第二公共类;
S205、向第二插件发送通知消息,以使得当第二插件调用第二公共类时,在第二插件对应的内存中调用第二公共类;
S206、通过进程加载第一公共类;
S207、通过进程加载第一插件的应用资源;
S208、根据第一公共类和应用资源,通过进程运行第一插件。
在S201中,进程加载第二插件的过程,与图1所示实施例中的进程加载第一插件的过程类似,此处不再进行赘述。
S202-S204与图1所示实施例中的S101-S103类似,S208与图1所示实施例中的S104类似,此处不再进行赘述。
在S205中,在第二插件收到通知消息之前,即在缓存中存在第二公共类,当第二插件需要调用第二公共类时,从缓存中调用第二公共类;在缓存中删除第二插件对应的公共类后,向第二插件发送通知消息,以使的第二插件在需要对第二公共类进行调用时,从第二插件对应的内存中进行调用,避免了第二插件在缓存中调用第一插件的第一公共类,进而避免了第一插件和第二插件无法正常工作。
在S206中,可选的,可以通过以下可行的实现方式实现加载第一公共类,具体的:判断缓存中是否存在第一插件对应的类加载器;若否,创建第一插件对应的类加载器;通过第一插件对应的类加载器加载第一公共类。
在通过进程加载第一公共类时,当判断缓存中存在第一插件对应的类加载器时,直接通过已存在的类加载器加载第一公共类,进而提高加载第一公共类的效率,当判断缓存中不存在第一插件对应的类加载器时,先创建第一插件对应的类加载器,并根据新创建的类加载器加载第一公共类。
进一步的,可选的,通过所述进程加载所述第一公共类可以包括:通过进程将第一公共类加载至第一插件对应的内存中,以及通过进程将第一公共类加载至缓存中,进而在第一插件对第一公共类进行调用时,第一插件可以从第一插件对应的内存中调用第一公共类,或者从缓存中调用第一公共类。
在S207中,可选的,可以通过以下可行的实现方式实现加载第一插件的应用资源:判断缓存中是否存在第一插件对应的资源加载器,当存在资源加载器时,直接通过已存在的资源加载器加载第一插件的应用资源,这样可以提高加载第一插件的应用资源的效率,当判断缓存中不存在第一插件对应的资源加载器时,创建新的资源加载器,并通过新创建的资源加载器加载第一插件的应用资源。
在图2所示的实施例中,先通过进程加载了包括第二公共类的第二插件,因此,在缓存中包括第二公共类,在通过该进程加载第一插件对应的第一公共类时,先删除缓存中的第二公共类,然后通过该进程加载第一公共类,避免了通过第一插中运行第一插件和件的参数对第二插件对应的公共类进行操作,进而避免了在同一进程第二插件时产生冲突,进一步的,由于无需为可能发生冲突的第一插件和第二插件分别创建对立的进程,减少了终端中创建的进程个数,进而减少了终端中进程所占用的内存,提高了终端的运行速度,进而提高用户体验。
下面,通过具体示例对图1-图2所示的插件运行方法进行详细说明。
假设终端中包括APP1,该APP1包括视频插件以及语音插件,在APP1调用视频插件以及语音插件时,均需要在终端的界面上进行显示,因此,视频插件和语音插件中均包括用于显示界面的界面类,该界面类为公共类,为了便于下文描述,将视频插件对应的界面类称为界面类1,将语音插件对应的界面类称为界面类2。
当APP1需要调用视频插件时,确定通过新创建的进程1加载该视频插件,当通过进程1加载界面类1时,先判断缓存中是否存在与界面类1的名称相同的公共类,由于进程1为新创建的进程,因此,进程1中不存在与界面类1的名称相同的公共类,则通过进程1将界面类1加载至视频插件对应的内存中,同时将界面类1加载至缓存中。
在APP1调用视频插件之后,又需要调用语音插件时,确定还通过进程1对语音插件进行加载,在通过进程1加载界面类2时,先判断缓存中是否存在与界面类2的名称相同的公共类,由于已经通过进程1将界面类1加载至了缓存中,因此,先删除缓存中加载的界面类1,并向视频插件发送通知消息,以使得视频插件需要调用界面类1时,直接从视频插件对应的内存中进行调用;然后,通过进程1将界面类2加载至语音插件对应的内存中,同时将界面类2加载至缓存中,以使得当语音插件需要调用界面类2时,可以在语音插件对应的内存中调用界面类2,也可以在缓存中调用界面类2。
在上述过程中,由于视频插件和语音插件中包括相同的界面类,因此第一插件和第二插件为可能产生冲突的插件,然而,通过本发明实施例所示的方法,在同一进程中运行视频插件和语音插件时,可以避免视频插件和语音插件产生冲突,无需为视频插件和语音插件分别创建独立的进程,减少了终端中创建的进程个数,进而减少了终端中进程所占用的内存,提高了终端的运行速度,进而提高用户体验。
图3为本发明提供的插件运行装置的结构示意图一,请参照图3,该插件运行装置包括确定模块301、判断模块302、删除模块303以及运行模块304,其中
确定模块301用于,确定待加载第一插件的进程,第一插件中包括第一插件对应的第一公共类;
判断模块302用于,在通过进程加载第一公共类时,判断进程对应的缓存中是否存在与第一公共类的名称相同的第二公共类,第二公共类为第二插件对应的公共类,第一插件和第二插件为同一应用程序APP中的插件;
删除模块303用于,在判断模块302判断进程对应的缓存中存在与第一公共类的名称相同的第二公共类时,在缓存中删除第二公共类;
运行模块304用于,通过进程加载第一公共类,并根据第一公共类,通过进程运行第一插件。
图4为本发明提供的插件运行装置的结构示意图二,在图3所示实施例的基础上,请参照图4,插件运行装置还包括发送模块305,其中,
运行模块304还用于,在删除模块303删除第二公共类之前,通过进程加载第二插件,将第二公共类加载至第二插件对应的内存中以及将第二公共类加载至缓存中;
发送模块305用于,在删除模块删除第二公共类之后,向第二插件发送通知消息,以使得当第二插件调用第二公共类时,在第二插件对应的内存中调用第二公共类。
具体的,运行模块具体可以用于:通过进程将第一公共类加载至第一插件对应的内存中,以及通过进程将第一公共类加载至缓存中。
可选的,判断模块302具体可以用于:
通过反射机制在缓存中获取所有参数名称;
根据所有参数名称与第一公共类的名称,判断进程对应的缓存中是否存在与第一公共类的名称相同的第二公共类。
可选的,运行模块304具体可以用于:
判断缓存中是否存在第一插件对应的类加载器;
若否,创建第一插件对应的类加载器;
通过第一插件对应的类加载器加载第一公共类。
进一步,运行模块304在通过进程加载第一公共类之后,还可以用于:
通过进程加载第一插件的应用资源;
相应的,根据第一公共类,通过进程运行第一插件,包括:
根据第一公共类和应用资源,通过进程运行第一插件。
在图3和图4所示的实施例中,可选的,第一公共类和第二公共类可以为界面类。
本实施例所示的装置,可执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种插件运行方法,其特征在于,包括:
确定待加载第一插件的进程,所述第一插件中包括所述第一插件对应的第一公共类;
在通过所述进程加载所述第一公共类时,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类,所述第二公共类为第二插件对应的公共类,所述第一插件和所述第二插件为同一应用程序APP中的插件;
若是,在缓存中删除所述第二公共类;
通过所述进程加载所述第一公共类,并根据所述第一公共类,通过所述进程运行所述第一插件。
2.根据权利要求1所述的方法,其特征在于,在缓存中删除所述第二公共类之前,还包括:
所述进程加载所述第二插件,将所述第二公共类加载至所述第二插件对应的内存中以及将所述第二公共类加载至所述缓存中;
在缓存中删除所述第二公共类之后,还包括:
向所述第二插件发送通知消息,以使得当所述第二插件调用所述第二公共类时,在所述第二插件对应的内存中调用所述第二公共类。
3.根据权利要求1所述的方法,其特征在于,所述通过所述进程加载所述第一公共类,包括:
通过所述进程将所述第一公共类加载至所述第一插件对应的内存中,以及通过所述进程将所述第一公共类加载至所述缓存中。
4.根据权利要求1所述的方法,其特征在于,所述判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类,包括:
通过反射机制在所述缓存中获取所有参数名称;
根据所述所有参数名称与所述第一公共类的名称,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类。
5.根据权利要求1所述的方法,其特征在于,所述第一公共类和所述第二公共类为界面类。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述通过所述进程加载所述第一公共类,包括:
判断所述缓存中是否存在所述第一插件对应的类加载器;
若否,创建所述第一插件对应的类加载器;
通过所述第一插件对应的类加载器加载所述第一公共类。
7.根据权利要求6所述的方法,其特征在于,所述通过所述进程加载所述第一公共类之后,还包括:
通过所述进程加载所述第一插件的应用资源;
相应的,所述根据所述第一公共类,通过所述进程运行所述第一插件,包括:
根据所述第一公共类和所述应用资源,通过所述进程运行所述第一插件。
8.一种插件运行装置,其特征在于,包括确定模块、判断模块、删除模块以及运行模块,其中,
所述确定模块用于,确定待加载第一插件的进程,所述第一插件中包括所述第一插件对应的第一公共类;
所述判断模块用于,在通过所述进程加载所述第一公共类时,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类,所述第二公共类为第二插件对应的公共类,所述第一插件和所述第二插件为同一应用程序APP中的插件;
所述删除模块用于,在所述判断模块判断所述进程对应的缓存中存在与所述第一公共类的名称相同的第二公共类时,在缓存中删除所述第二公共类;
所述运行模块用于,通过所述进程加载所述第一公共类,并根据所述第一公共类,通过所述进程运行所述第一插件。
9.根据权利要求8所述的插件运行装置,其特征在于,所述插件运行装置还包括发送模块,其中,
所述运行模块还用于,在所述删除模块删除所述第二公共类之前,通过所述进程加载所述第二插件,将所述第二公共类加载至所述第二插件对应的内存中以及将所述第二公共类加载至所述缓存中;
所述发送模块用于,在所述删除模块删除所述第二公共类之后,向所述第二插件发送通知消息,以使得当所述第二插件调用所述第二公共类时,在所述第二插件对应的内存中调用所述第二公共类。
10.根据权利要求8所述的插件运行装置,其特征在于,所述运行模块具体用于:
通过所述进程将所述第一公共类加载至所述第一插件对应的内存中,以及通过所述进程将所述第一公共类加载至所述缓存中。
11.根据权利要求8所述的插件运行装置,其特征在于,所述判断模块具体用于:
通过反射机制在所述缓存中获取所有参数名称;
根据所述所有参数名称与所述第一公共类的名称,判断所述进程对应的缓存中是否存在与所述第一公共类的名称相同的第二公共类。
12.根据权利要求8所述的插件运行装置,其特征在于,所述第一公共类和所述第二公共类为界面类。
13.根据权利要求8至12任一项所述的插件运行装置,其特征在于,所述运行模块具体用于:
判断所述缓存中是否存在所述第一插件对应的类加载器;
若否,创建所述第一插件对应的类加载器;
通过所述第一插件对应的类加载器加载所述第一公共类。
14.根据权利要求13所述的插件运行装置,其特征在于,所述运行模块在通过所述进程加载所述第一公共类之后,还用于:
通过所述进程加载所述第一插件的应用资源;
相应的,所述根据所述第一公共类,通过所述进程运行所述第一插件,包括:
根据所述第一公共类和所述应用资源,通过所述进程运行所述第一插件。
CN201511018177.5A 2015-12-30 2015-12-30 插件运行方法及装置 Active CN106933607B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511018177.5A CN106933607B (zh) 2015-12-30 2015-12-30 插件运行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511018177.5A CN106933607B (zh) 2015-12-30 2015-12-30 插件运行方法及装置

Publications (2)

Publication Number Publication Date
CN106933607A CN106933607A (zh) 2017-07-07
CN106933607B true CN106933607B (zh) 2020-02-14

Family

ID=59442315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511018177.5A Active CN106933607B (zh) 2015-12-30 2015-12-30 插件运行方法及装置

Country Status (1)

Country Link
CN (1) CN106933607B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739311A (zh) * 2009-12-15 2010-06-16 上海爱数软件有限公司 一种安全备份内存数据的方法及装置
CN103077047A (zh) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 一种插件播放方法及装置
CN103544058A (zh) * 2012-07-16 2014-01-29 天津书生投资有限公司 一种实现插件的方法和装置
CN103699554A (zh) * 2012-09-27 2014-04-02 深圳云富网络科技有限公司 一种网页数据调用方法及装置
CN103793266A (zh) * 2012-10-30 2014-05-14 腾讯科技(深圳)有限公司 插件管理装置
CN104750528A (zh) * 2015-03-31 2015-07-01 北京奇虎科技有限公司 一种Android程序中的组件管理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688703B1 (en) * 2011-12-22 2014-04-01 Emc Corporation Metadata cache supporting multiple heterogeneous systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739311A (zh) * 2009-12-15 2010-06-16 上海爱数软件有限公司 一种安全备份内存数据的方法及装置
CN103544058A (zh) * 2012-07-16 2014-01-29 天津书生投资有限公司 一种实现插件的方法和装置
CN103699554A (zh) * 2012-09-27 2014-04-02 深圳云富网络科技有限公司 一种网页数据调用方法及装置
CN103793266A (zh) * 2012-10-30 2014-05-14 腾讯科技(深圳)有限公司 插件管理装置
CN103077047A (zh) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 一种插件播放方法及装置
CN104750528A (zh) * 2015-03-31 2015-07-01 北京奇虎科技有限公司 一种Android程序中的组件管理方法和装置

Also Published As

Publication number Publication date
CN106933607A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
US11409547B2 (en) Method for rendering user interface and terminal
CN107832100B (zh) 一种apk插件的加载方法及其终端
US10205778B2 (en) Method and apparatus for sharing application data
AU2014375830B2 (en) Data processing method for realizing multiple operating systems and terminal device
US20140208328A1 (en) Method for terminal acceleration, terminal and storage medium
CN113990354B (zh) 基于Linux的音频控制方法、装置、设备和存储介质
US20220058772A1 (en) Image Processing Method and Device
CN113360807B (zh) 混合模式移动应用的页面显示方法、装置及相关设备
AU2019256257A1 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN104572054A (zh) 一种能力调用方法和设备
CN113157345A (zh) 前端工程自动启动方法及装置
US20160080293A1 (en) Accounts Control
CN112214250B (zh) 一种应用程序组件的加载方法和装置
CN107682389B (zh) 一种执行网络请求的方法、终端及计算机可读存储介质
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
US20150234637A1 (en) Method for creating binary code and electronic device thereof
CN106874020B (zh) 启动插件的方法及装置
CN106933607B (zh) 插件运行方法及装置
WO2020135129A1 (zh) 加载应用的插件的方法、装置和终端
CN108920246B (zh) 表单草稿组件共享方法及装置、终端设备及可读存储介质
CN107704279B (zh) 一种数据加载方法以及装置
CN111142972B (zh) 用于扩展应用程序的功能的方法、装置、系统及介质
CN106793165B (zh) 一种wifi热点的连接方法及智能终端
CN111176679B (zh) 一种应用程序更新方法和装置
CN114237755A (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
GR01 Patent grant