一种应用程序插件化的方法、系统以及相关装置与流程

文档序号:17600657发布日期:2019-05-07 20:15阅读:169来源:国知局
一种应用程序插件化的方法、系统以及相关装置与流程

本申请涉及通信领域,尤其涉及一种应用程序插件化的方法、系统以及相关装置。



背景技术:

我国一直是全球最大的智能手机生产国和消费国,但是因回收价格低,回收渠道混乱等原因,回收率一直不足2%,保守估计淘汰的二手手机大约有10亿部。

闲置的二手手机数量巨大,且近几年由于手机技术的快速发展,使得被淘汰的二手手机仍然有着不错的性能,目前有厂家提供把手机的闲置资源即过剩的部分性能利用起来,即将手机过剩的性能云共享,比如将某个闲置的手机作为一个云存储器,或者云cpu,只需要在手机内下载对应的app即可,但是由于安卓系统在使用过程中,若下载新的应用或者相关操作的话,需要用户授予相关权限,升级安装的问题,每次安装都需要用户参与,而这一点与闲置手机经常放在某一个地方而不被使用的属性是相反的,这些问题对于用户的体验,以及系统的稳定性都是一个很大的挑战。

申请内容

本申请实施例提供了一种应用程序插件化的方法、系统以及相关装置,用于实现在使用闲置资源或者目前市场上安卓产品过剩的性能时,可以不需要二次赋予权限,提高部署的灵活性。

本申请第一方面提供一种应用程序插件化的方法,包括:

安装第一程序插件至主应用程序;

通过所述第一程序插件从服务器获取待执行任务;

若所述主应用程序中已安装有能够完成所述待执行任务的第二程序插件,控制所述第二程序插件完成所述任务。

可选地,所述安装第一程序插件至主应用之前,所述方法还包括:

在主应用内集成程序化框架,所述程序化框架用于安装所述第一程序插件和所述第二程序插件。

可选地,所述通过所述第一程序插件从服务器获取任务之后,所述方法还包括:

若所述主应用程序中未安装可以完成所述任务的第二程序插件,则从服务器下载所述第二程序插件;

将所述第二程序插件安装至所述插件化框架;

所述将所述第二程序插件安装至所述插件化框架具体包括:

判断所述第二程序插件是否与所述插件化框架匹配;

若是,则将所述第二程序插件安装至所述插件化框架;

若否,则卸载该第二程序插件。

可选地,所述控制第二程序插件完成所述任务具体包括:

所述第一程序插件或者所述主应用通过消息路由与所述第二应用建立通信连接,所述消息路由存在于所述程序化框架内;

所述第二程序插件完成所述任务。

可选地,所述控制所述第二程序插件完成所述任务之后,所述方法还包括:

所述主应用按照预设方式对所述第一程序插件进行操作;

所述主应用按照预设方式对所述第一程序插件进行操作具体包括:

若服务器下发对所述第一程序插件更新的任务,则主应用对所述第一程序插件进行更新;

所述主应用按照预设方式对所述第二程序插件进行操作;

所述主应用按照预设方式对所述第二程序插件进行操作具体包括:

若所述第二程序插件已完成服务器下发的任务,则卸载所述第二程序插件;

或,

若服务器下发对所述第二程序插件更新的任务,则主应用对所述第二程序插件进行更新。

本申请第二方面提供一种应用程序插件化的装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的应用程序插件化的程序,所述应用程序插件化的程序被所述处理器执行时实现如权利要求1-5任一项所述的方法。

可选地,所述装置为组成cdn网络或者区块链网络的节点。

本申请第三方面提供一种应用程序插件化的系统,其特征在于,所述系统包括:

安装单元,安装第一程序插件至主应用程序;

获取单元,用于通过所述第一程序插件从服务器获取任务;

控制单元,用于控制所述第二程序插件完成所述任务。

本申请第四方面提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序插件化的程序,所述应用程序插件化的程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的应用程序插件化的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:本实施例中,安装第一程序插件至主应用程序,通过所述第一程序插件从服务器获取待执行任务,若所述主应用程序中已安装有能够完成所述待执行任务的第二程序插件,控制所述第二程序插件完成所述任务。由于在具体的实施过程中,是从属于主应用的某些具体程序完成任务,而这种程序是在主应用安装的时候就授予了权限的,就可以在日后的使用中不需要像下载一个普通的安卓应用一样重复授权,用于实现在使用闲置资源或者目前市场上安卓产品过剩的性能时,提高部署的灵活性。

附图说明

图1为本申请实施例中一种应用程序插件化的方法实施例的一个示意图;

图2为本申请实施例中一种应用程序插件化的方法实施例的另一个示意图;

图3为本申请实施例中一种应用程序插件化的方法实施例的另一个示意图;

图4为本申请实施例中一种应用程序插件化的系统实施例的一个示意图;

图5为本申请实施例中一种计算机装置的一个示意图。

具体实施方式

本申请实施例提供了一种应用程序插件化的方法、系统以及相关装置,用于实现在使用闲置资源或者目前市场上安卓产品过剩的性能时,可以不需要二次赋予权限,提高部署的灵活性。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

我国一直是全球最大的智能手机生产国和消费国,但是因回收价格低,回收渠道混乱等原因,回收率一直不足2%,保守估计淘汰的二手手机大约有10亿部,而从多年前开始,二手手机的性能已经相当不错,鉴于此种情况,我们提供了基于闲置二手手机或者手机过剩部分的性能的共享云计算方案。通常的技术手段是在安卓系统的手机、平板电脑以及其它有上网功能的电子设备上安装相应可以完成任务的应用,比如可以利用数量庞大的闲置二手手机的各种资源,包括cpu,gpu,内存,闪存,网络。但是如果在设备上安装的应用是以一个普通应用的形式存在时,若下载新的应用或者相关操作的话,需要用户重新授予相关权限,升级安装的问题,每次安装都需要用户参与,而这一点与闲置手机经常放在某一个地方而不被使用的属性是相反的,这些问题对于用户的体验,以及系统的稳定性都是一个很大的挑战。所以我们提供了一个基于iaas(infrastructureasaservice,基础设施即服务)的方案。消费者通过网络可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务。为解决上述需要客户需要用户重新授予相关权限以及每次安装都需要用户参与的问题,我们提供了一种应用程序插件化的方法,先在安卓设备上安装一个主应用,主应用内带有第一程序插件,第一程序插件作为主插件存在于主应用内,第一程序插件可以管理第二程序插件,第二程序插件即为用以完成任务的iaas应用,iaas应用作为一段程序以插件的形式存在于主应用内,由于插件的更新以及相关操作在主应用安装时就确认,不需要用户重复的授予相关权限。

为了便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图1,本申请实施例中一种应用程序插件化的方法的一种实施例包括:

101、安装第一程序插件至主应用;

具体地,第一程序插件为存在于主应用内的主插件,在第一程序插件安装的过程中,第一程序插件与主应用可以同时安装,并且第一程序插件即主插件,若其本体需要更新时,可以从服务器下载相关程序用来更新主插件。

102、通过所述第一程序插件从服务器获取任务;

具体地,主插件会定期的跟服务器通信,获取配置和任务,根据任务可以决定是否需要通知宿主安装,卸载,启动或者是关闭某个插件,示例性的,若某一部安卓手机已经下载了玩客云即主应用并安装了相关的主插件,主插件会定时的与服务器进行沟通,则可能会获取该玩客云作为云节点,比如云盘以待其他用户从该安卓手机下载数据的任务。

103、若所述主应用程序中已安装有能够完成所述待执行任务的第二程序插件,利用所述第二程序插件插件完成所述待执行任务。

具体地,第二程序插件为被主插件控制的用于完成服务器下发的某项具体任务的插件,该某项具体任务可以理解为除例如主插件或第二程序插件插件的更新或安装等只能由主插件完成的任务。在第二程序插件安装的过程中,可以为分批次的下载,主要是根据当前应用需要完成的任务而定。对于已经使用过的第二程序插件内的部分插件,若当前无相关任务执行,也可以对其进行删除,在不影响任务的前提下,也可以选择保留,由于任务是不断下发的,所以部分使用频率较高的比如作为云存储器,云节点的其他功能插件,也可以在满足当前任务的条件时,一直存在于主应用内,对于满足当前任务的条件可以理解为服务器当前并没对该插件作出更新的要求。

从服务器上获取任务,并已经有相关的插件处于准备好的状态时,主插件或者主应用会通过消息路由与该准备好的插件进行通信连接,并将具体的需求发送至其他功能插件即特定程序,以完成任务。

本实施例中,安装第一程序插件至主应用,通过所述第一程序插件从服务器获取任务,若所述主应用程序中已安装有能够完成所述待执行任务的第二程序插件,控制所述第二程序插件插件完成所述任务。由于在具体的实施过程中,是从属于主应用的某些具体程序完成任务,而这种程序是在主应用安装的时候就授予了权限的,就可以在日后的使用中不需要像下载一个普通的安卓应用一样重复授权,用于实现在使用闲置资源或者目前市场上安卓产品过剩的性能时,提高部署的灵活性。

本申请实施例中,基于图一的实施例,为便于理解,提供完整的方案流程图,具体请参见图二,一种应用程序插件化的流程实施例包括:

20、方案整体流程图。

具体地,图内大约有3个通讯板块,第一个由宿主即主应用、主插件与服务器三者构成,第二个由宿主与主插件构成,第三个由宿主与其他功能插件构成。

首先介绍第一个由宿主、主插件与服务器三者构成的通讯板块:

具体地,宿主首先启动主插件,主插件为是我们将主应用中的部分功能剥离出来变成插件来实现的,主插件向服务器发送获取配置以及获取任务的请求,并且接受服务器发送的返回的配置以及任务,根据服务器发送的任务,再进行其它操作。示例性地,若当前安卓设备安装了某种类似图内宿主的应用,并获取了a任务,但是当前应用内的插件不足以完成a任务,则主插件会下载可以完成a任务的其他功能插件,用来完成a任务。在下载插件时,会对下载的插件与应用内的程序化框架进行匹配或者查询该插件是否在服务器的白名单内,若匹配并且在白名单内的话,则会下载插件,若不符合其中任何一项要求,则不会下载该插件,选择下载其它的也可以完成任务的插件。根据当前应用需要完成的任务,可以对其它插件进行相关操作。示例性的,若某个插件已经完成任务,并且当前应用不需要该插件再完成其它任务时,可以删除该插件,若后续有相关任务对该插件存在需求时,再对该插件进行下载,并且如果服务器下发了对于某插件的更新任务时,主插件会对该插件进行更新,具体的更新方式可以为主插件从服务器下载更新包或直接下载新版本的该插件。

对于第二个宿主与主插件的通信板块进行介绍:

具体地,主插件为是我们将主应用中的部分功能剥离出来变成插件来实现的,可以将主插件理解为实行一些系统基本维持工作的插件,相对应的,其他功能插件也就是其他功能插件,是用来完成具体任务的插件。宿主会定时的与主插件进行通信,查询主插件的运行状态,根据主插件的反馈进行操作,可以理解为应用的维护与更新,或者当接收到了服务器下发了对于主插件的任务时,也可以根据该任务执行相应操作,例如服务器下发了更新主插件自身的任务,主插件可以在服务器上下载更新包进行更新。

对于第三个宿主与其他功能插件进行介绍:

具体地,先下载其他功能插件,在下载插件时,会对下载的插件与应用内的程序化框架进行匹配或者查询该插件是否在服务器的白名单内,若匹配并且在白名单内的话,则会下载插件,若不符合其中任何一项要求,则不会下载该插件,选择下载其它的也可以完成任务的插件。然后其他功能插件去完成相应的任务,并且在日常的使用过程中,定期获取插件的运行状态,根据插件的运行状态可以从而向该其他功能插件分配任务,或者删除该插件。

示例性的,一个iaas应用插件按照需求实现相关的功能之后,打包成一个插件安装包,通过服务器下发到相应的手机上,主应用就会开始安装插件,详细的安装流程:

301、主应用对接收到的插件安装包进行md5校验,以确认插件包是否完整,如果完整进入步骤302,否则向服务器上报错误信息,服务器可以重新下发插件安装包;

302、根据插件安装包确认待安装的插件是否是与当前插件化框架匹配的插件,如果是则安装插件安装包,否则丢弃所述插件安装包;

在插件被安装之后,还可包括如下方法:

303、插件安装解包之后分析它的字节码,xml文件等资源文件;

304、通过intent-filter找到插件的主service,并启动它;

305、检查插件是否在服务器配置的插件白名单中,如果不在,卸载插件;

306、启动插件之后在插件管理中进行注册,未注册的插件检查合法性,如何不合法上报异常或者是卸载。

为便于理解,下面从整体的通讯系统方面介绍本申请,具体请见图3,一种应用程序插件化的系统实施例包括:

本申请中,主应用的插件化框架即程序化框架主要分为两个模块:插件管理模块与消息路由模块。具体地,插件管理模块主要进行安装插件、更新插件、卸载插件、启动插件、关闭插件以及插件状态管理的工作。消息路由主要进行主插件或者主应用与其它功能插件的通信连接,可以将其理解为连接两个地方的路,用于当需要完成任务时,将任务需求发送至具体的某个插件,并接收该插件返回的数据。

需要指出的是,之所以将iaas应用1、iaas应用2以及iaas应用3放在插件管理以及消息路由的外侧,是因为iaas应用1、iaas应用2以及iaas应用3是随具体任务而变化的,并非一直需要存在于主应用内。

上面对本申请实施例中的方法部分进行了介绍,下面从虚拟装置的角度对本申请实施例进行说明。

请参阅图4,本申请实施例中一种应用程序插件化的装置的一个实施例包括:

安装单元,用于安装第一程序插件与第二程序插件至主应用;

获取单元,用于通过所述第一程序插件从服务器获取任务;

控制单元,用于控制所述第二程序插件完成所述任务。

本实施例中,安装单元,用于安装第一程序插件与第二程序插件至主应用;获取单元,用于通过所述第一程序插件从服务器获取任务;控制单元,用于控制所述第二程序插件完成所述任务。由于在具体的实施过程中,是从属于主应用的某些具体程序完成任务,而这种程序是在主应用安装的时候就授予了权限的,就可以在日后的使用中不需要像下载一个普通的安卓应用一样重复授权,用于实现在使用闲置资源或者目前市场上安卓产品过剩的性能时,提高部署的灵活性。

下面从实体装置的角度对本申请实施例中的计算机装置进行描述,请参阅图5,本申请实施例中计算机装置的一个实施例包括:

该计算机装置500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)501(例如,一个或一个以上处理器)和存储器505,该存储器505中存储有一个或一个以上的应用程序或数据。

其中,存储器505可以是易失性存储或持久存储。存储在存储器505的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器501可以设置为与存储器505通信,在智能终端500上执行存储器505中的一系列指令操作。

该计算机装置500还可以包括一个或一个以上电源502,一个或一个以上有线或无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

可以理解的是,在本申请的各种实施例中,上述各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以记录在一个计算机可读取记录介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品记录在一个记录介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的记录介质包括:u盘、移动硬盘、只读记录器(rom,read-onlymemory)、随机存取记录器(ram,randomaccessmemory)、磁碟或者光盘等各种可以记录程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1