CN112527301B - 一种实现应用插件化的方法及电子设备 - Google Patents

一种实现应用插件化的方法及电子设备 Download PDF

Info

Publication number
CN112527301B
CN112527301B CN201910880334.5A CN201910880334A CN112527301B CN 112527301 B CN112527301 B CN 112527301B CN 201910880334 A CN201910880334 A CN 201910880334A CN 112527301 B CN112527301 B CN 112527301B
Authority
CN
China
Prior art keywords
plug
application
electronic device
interface
electronic equipment
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
CN201910880334.5A
Other languages
English (en)
Other versions
CN112527301A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910880334.5A priority Critical patent/CN112527301B/zh
Priority to PCT/CN2020/112848 priority patent/WO2021052167A1/zh
Publication of CN112527301A publication Critical patent/CN112527301A/zh
Application granted granted Critical
Publication of CN112527301B publication Critical patent/CN112527301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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

Abstract

本申请提供一种实现应用插件化的方法及电子设备,用以实现应用的插件独立开发和发布,以提高应用开发的效率,和提升应用的灵活性。在该方案中,电子设备在提前安装应用的基础模块的前提下,可以从服务器下载并安装该应用的插件,以扩展该应用的功能。由于电子设备可以从服务器上独立下载插件,插件的开发、发布以及下载安装过程均无需依赖于基础模块,因此该方案可以实现应用的独立开发和发布,能够提高应用开发的效率,和提升应用的灵活性。

Description

一种实现应用插件化的方法及电子设备
技术领域
本申请涉及电子设备技术领域,尤其涉及一种实现应用插件化的方法及电子设备。
背景技术
电子设备可以通过各种应用(application,APP)为用户提供服务。针对不同的操作系统,其对应的供应商提供了专用的开发方案。针对谷歌提供的安卓(Android)操作系统,谷歌官方提供了BundleAPP方案。
参阅图1所示,BundleAPP方案的原理为:开发者需要针对应用的所有功能进行开发,并在编译时通过工具将应用的分割为基础模块和至少一个特性模块,以及将每个模块按照不同的资源配置,进一步划分为多个资源配置模块。其中,所述基础模块用于实现应用的基础功能,所述特性模型用于实现该应用的扩展功能。通常,基础模块的文件形式为base.apk,特性模块的文件形式为split.apk。以相机应用为例,基础模块实现的功能为照相和录像,特性模块用于实现夜景、美食、全景等扩展功能的拍摄。需要说明的是,应用扩展功能的实现依赖于应用的基础功能。
如图1中所示,基础模块和每个特性模块还可以划分为多个资源配置模块,例如,特性2模块可以根据图片资源、指令资源以及语言资源,可以划分为至少一个按分辨率分割的图片资源、至少一个按CPU指令集分割的动态库资源,以及至少一个按语言分类的语言资源。
在BundleAPP方案中,由于应用是整体开发,在编译阶段才分割为多个模块,因此,分割后的模块之间存在调用关系(即互相依赖),因此,各个模块需要同时开发和编译,也需要在应用开发完成后,需要将该应用的所有模块整体打包,发布到应用市场。电子设备根据应用市场的推送,下载整个应用的安装包从而更新或安装该应用。
然而,随着用户需求的不断增长,应用的功能也越来越强大,这就导致应用的规模越来越大,为了快速响应需求,应用的模块化开发诉求日益强烈,因此针对Android操作系统设计一种应用的模块化(也可以称为插件化)方法,以实现应用的模块的独立开发和发布。
发明内容
本申请提供了一种实现应用插件化的方法及电子设备,用以实现应用的插件独立开发和发布,以提高应用开发的效率,和提升应用的灵活性。
第一方面,本申请实施例提供了一种实现应用插件化的方法,该方法可以适用于图2所示的应用场景中。该方法为:在电子设备已经安装应用的基础模块后,所述电子设备从服务器下载该应用的插件,然后安装所述插件。其中,所述基础模块用于实现所述应用的基础功能,所述插件用于实现所述应用的扩展功能。
通过上述方法,电子设备在提前安装应用的基础模块的前提下,可以从服务器下载并安装该应用的插件,以扩展该应用的功能。由于电子设备可以从服务器上独立下载插件,插件的开发、发布以及下载安装过程均无需依赖于基础模块,因此该方案可以实现应用的独立开发和发布,能够提高应用开发的效率,和提升应用的灵活性。
在一个可能的设计中,所述插件的开发环境与所述基础模块的开发环境相同。这样,可以保证所述插件和所述基础模块可以在相同的设备中安装运行。
在一个可能的设计中,在所述电子设备从所述服务器下载所述应用的插件之前,所述电子设备确定所述插件的识别信息与所述基础模块的识别信息相同,其中所述插件的识别信息用于确定所述插件所归属的应用,所述基础模块的识别信息用于确定所述基础模块所归属的应用。其中,插件/基础模块的识别信息可以包括包名和签名等。这样,可以保证所述电子设备下载的插件与已安装的基础模块归属于同一应用,避免下载本地未安装的应用的插件,造成资源浪费。
在一个可能的设计中,在所述电子设备从所述服务器下载所述应用的插件之前,所述电子设备确定所述插件的版本号与所述基础模块的版本号兼容。这样,电子设备在从服务器下载插件之前,可以通过判断插件的版本号和基础模块的版本号是否兼容,来确定已经安装的基础模块是否能够与插件兼容,避免下载到与已安装的基础模块不兼容的插件,造成资源浪费。
在一个可能的设计中,所述电子设备确定所述插件的版本号与所述基础模块的版本号兼容,包括:所述电子设备确定所述插件的版本号中指示插件接口的字段与所述基础模块的版本号中指示的插件接口的字段相同。这样,所述插件和所述基础模块可以基于同一插件接口实现访问,以实现兼容性。
在一个可能的设计中,所述电子设备安装所述插件之前,所述电子设备确定所述插件的文件包中包含插件指示配置文件。这样,所述电子设备可以识别插件的文件包的属性为插件。
在一个可能的设计中,所述插件通过所述基础模块提供的插件接口进行编译。
在一个可能的设计中,所述电子设备配置有显示屏,所述电子设备确定所述服务器中保存所述插件时,可以在所述显示屏中显示提示信息,所述提示信息用于提示用户下载所述插件;然后所述电子设备检测到用户输入的下载操作后,响应于所述下载操作,从所述服务器下载所述插件。这样,所述电子设备可以将服务器推送的插件显示在显示屏中以体现用户下载安装,从而提高用户的使用体验。
在一个可能的设计中,所述电子设备可以但不限于通过以下方式在所述显示屏中显示所述提示信息:
方式一:所述电子设备在所述显示屏中显示的通知栏中显示所述提示信息。
方式二:所述电子设备在打开所述应用后,在所述显示屏中显示应用界面,并在所述应用界面中显示所述提示信息。
方式三:所述电子设备在打开所述应用中的插件管理功能后,在所述显示屏中显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息。
方式四:所述电子设备在打开管理应用后,在所述显示屏中显示管理应用界面,并在所述管理应用界面中显示所述提示信息。
通过该设计,可以提高电子设备显示提示信息的灵活性。
在一个可能的设计中,在所述电子设备安装所述插件后,还可以独立卸载所述插件。通过该设计,用户可以根据个人需求,卸载插件,而不影响应用的使用和功能。
第二方面,本申请实施例还提供了一种显示方法,应用于配置有显示屏的电子设备中,该方法可以适用于图2所示的应用场景中。该方法包括:所述电子设备确定服务器中保存应用的插件时,在所述显示屏中显示提示信息,所述提示信息用于提示用户下载所述插件;其中,所述电子设备已经安装所述应用的基础模块,所述基础模块用于实现所述应用的基础功能,所述插件用于实现所述应用的扩展功能;在所述电子设备检测到用户输入的下载操作之后,响应于所述下载操作,从所述服务器下载所述插件;最后,所述电子设备可以安装所述插件。
在一个可能的设计中,所述电子设备可以但不限于通过以下方式在所述显示屏中显示所述提示信息:
方式一:所述电子设备在所述显示屏中显示的通知栏中显示所述提示信息。
方式二:所述电子设备在打开所述应用后,在所述显示屏中显示应用界面,并在所述应用界面中显示所述提示信息。
方式三:所述电子设备在打开所述应用中的插件管理功能后,在所述显示屏中显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息。
方式四:所述电子设备在打开管理应用后,在所述显示屏中显示管理应用界面,并在所述管理应用界面中显示所述提示信息。
通过该设计,可以提高电子设备显示提示信息的灵活性。
第三方面,本申请实施例还提供了一种电子设备,包括用于执行上述各个方面各个步骤的单元或模块。
第四方面,本申请提供一种电子设备,包括至少一个处理元件和至少一个存储元件,其中所述至少一个存储元件用于存储程序和数据,所述至少一个处理元件用于执行本申请各个方面中提供的方法。
第五方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现各个方面或其中任意一种设计提供的方法。
第六方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方面或其中任一种设计提供的方法。
第七方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持电子设备实现上述各个方面中所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存电子设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第八方面,本申请实施例还提供了一种电子设备上的图形用户界面,其中,所述电子设备具有显示屏、存储器,以及处理器,所述处理器用于执行存储在所述存储器中的计算机程序,所述图形用户界面包括所述电子设备执行第二方面所述的方法时显示的图形用户界面。
附图说明
图1为现有技术提供的BundleAPP方案的示意图;
图2为本申请实施例提供的一种应用插件化的应用场景示意图;
图3为本申请实施例提供的插件/基础模块的版本号形式示意图;
图4A为本申请实施例提供的插件和基础模块之间的访问示意图;
图4B为本申请实施例提供的插件的运行环境示意图;
图5A为本申请实施例提供的一种相机应用的功能组合示例图;
图5B为本申请实施例提供的一种AI应用的功能组合实例图;
图6为本申请实施例提供的一种服务器的结构图;
图7为本申请实施例提供的一种电子设备的结构图;
图8为本申请实施例提供的一种电子设备的软件结构图;
图9为本申请实施例提供的一种应用插件化的方法流程图;
图10A为本申请实施例提供的一种显示提示信息的界面示例图;
图10B为本申请实施例提供的一种显示提示信息的界面示例图;
图10C为本申请实施例提供的一种显示提示信息的界面示例图;
图10D为本申请实施例提供的一种显示提示信息的界面示例图;
图10E为本申请实施例提供的一种显示提示信息的界面示例图;
图10F为本申请实施例提供的一种显示提示信息的界面示例图;
图10G为本申请实施例提供的一种显示提示信息的界面示例图;
图10H为本申请实施例提供的一种显示提示信息的界面示例图;
图10I为本申请实施例提供的一种显示提示信息的界面示例图;
图10J为本申请实施例提供的一种显示提示信息的界面示例图;
图10K为本申请实施例提供的一种显示提示信息的界面示例图;
图10L为本申请实施例提供的一种显示提示信息的界面示例图;
图11为本申请实施例提供的一种电子设备的结构图;
图12为本申请实施例提供的一种电子设备的结构图。
具体实施方式
本申请提供一种实现应用插件化的方法及电子设备,用以实现应用的插件独立开发和发布,以提高应用开发的效率,和提升应用的灵活性。其中,方法和电子设备是基于同一技术构思的,由于方法及电子设备解决问题的原理相似,因此电子设备与方法的实施可以相互参见,重复之处不再赘述。
在本申请实施例提供的方案中,电子设备在提前安装应用的基础模块的前提下,可以从服务器下载并安装该应用的插件,以扩展该应用的功能。由于电子设备可以从服务器上独立下载插件,插件的开发、发布以及下载安装过程均无需依赖于基础模块,因此该方案可以实现应用的独立开发和发布,能够提高应用开发的效率,和提升应用的灵活性。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)、电子设备,是一种向用户提供语音、视频、拍摄、数据连通性等各种服务功能的设备。
例如,电子设备可以为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、智能销售终端(point of sale,POS)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端等。
2)、应用,用于安装在电子设备中,具有向用户提供服务的功能。例如,具有提供拍摄服务功能的相机应用,具有提供聊天服务功能的微信应用、QQ应用等,具有提供视频服务功能的爱奇艺应用、腾讯视频应用等,具有提供音乐服务功能的QQ音乐应用、酷我音乐应用等。应用可以是电子设备的生产厂商开发,或者为电子设备的操作系统的供应商开发,或者由第三方应用厂商开发,本申请对此不作限定。
随着用户对应用的服务需求的不断增加,应用也在基础功能的基础上,不断增加扩展功能,以向用户提供更全面的服务。以相机应用为例,初始的相机应用一般具有拍照和录像两个基础功能。而目前的相机应用除了上述基础功能以外,增加了多个新的扩展功能,例如全景模式、人像模式、夜景模式等。
3)、插件(plugin),是一种遵循一定的应用程序接口编写的程序,其职能运行在程序规定的应用(运行平台)下,而不能脱离该应用单独运行。插件能够为应用提供其不具备的扩展功能。
另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面结合附图对本申请实施例进行具体说明。
图2示出了本申请提供的实现应用插件化的方法的应用场景。该应用场景针对适用于Android操作系统的应用插件化。如图所示,该应用场景中主要包含:应用开发者、插件开发者、服务器以及电子设备。下面结合实现应用插件化的方法对各个部分的功能进行描述。
应用开发者用于开发应用的基础模块,所述基础模块用于实现所述应用的基础功能。可选的,应用开发者可以采用如图1所示的BundleAPP方案,同时开发应用的基础模块和与基础模块绑定的特性模块(后续可以简称为DF)。其中,所述应用开发者需要采用传统的应用开发环境开发该应用的基础模块,例如Android Studio等。其中,所述应用的开发者可以为电子设备的生产厂商,或者为Android操作系统的供应商开发,或者由第三方应用厂商开发,本申请对此不作限定。
其中,应用开发者在开发基础模块时需要在基础模块中设置一组遵循兼容性处理原则的标准化开放接口Plugin软件开发包(software development kit,SDK)(该PluginSDK的实现体在基础模块内),以便插件开发者可以动态依赖它实现插件的开发编译,以及插件可以通过Plugin SDK来访问基础模块。
插件开发者可以针对应用开发者开发的基础模块,开发该基础模块能够兼容的至少一个插件(后续这种兼容关系可以称为对应关系),以扩展该应用的功能;或者所述插件开发者针对旧版本的插件,开发出新版本的插件。需要说明的是,插件开发者可以采用以下开发规则独立开发每个插件:
(1)插件的开发环境与基础模块的开发环境相同。例如应用开发者采用AndroidStudio开发应用的基础模块,那么插件开发者也需要采用Android Studio开发应用的插件。
(2)插件开发者设置插件的识别信息与基础模块的识别信息相同。其中,插件/基础模块的识别信息,用于确定插件/基础模块所归属的应用。电子设备在下载插件之前,可以通过判断插件的识别信息与基础模块的识别信息是否相同,确定插件和所述基础模块是否归属于同一应用。其中,识别信息可以包括:包名、签名等。可选的,包名可以为应用标识,签名可以为安全信息,例如安全证书等。
当插件/基础模块的识别信息均包括包名和签名时,插件开发者设置插件的包名与该插件对应的基础模块的包名一致,且设置插件的签名与该插件对应的基础模块的签名也一致。
进一步的,插件开发者设置插件的版本号与基础模块的版本号兼容。这样,电子设备在从服务器下载插件之前,可以通过判断插件的版本号和基础模块的版本号是否兼容,来确定已经安装的基础模块是否能够与插件兼容,避免下载到与已安装的基础模块不兼容的插件,造成资源浪费。
在一种实施方式中,所述插件的版本号与基础模块的版本号兼容,包括:插件的版本号中指示插件接口的字段与基础模块的版本号中指示的插件接口的字段相同。即电子设备在从服务器下载插件之前,需要确定插件的版本号中指示插件接口的字段与已安装的基础模块的版本号中指示的插件接口的字段相同。
示例性的,当插件和基础模块的版本号均采用如图3所示的三段式X.Y.Z时,首段X为插件接口的版本号字段(即指示插件接口的字段),中段Y为该版本号的插件接口的版本变化字段,末段Z为插件/基础模块的版本号。其中,所述插件接口为Plugin SDK。当针对版本号为001.&&&.&&&&的基础模块开发插件时,插件开发者需要设置该插件的版本号为001.&&&.&&&&。其中&代表任意值。
(3)、插件开发者开发的插件文件包中包含插件指示配置文件。该插件指示配置文件用于指示该插件文件包的属性为插件。当电子设备下载插件的文件包后,安装所述插件之前,需要确定所述插件的文件包中包含插件指示配置文件。
示例性的,所述插件开发者配置插件文件包中isPlugin=“true”,以标明该插件文件包的插件身份。
(4)、插件开发者开发插件时,需要动态依赖基础模块发布的开放接口Plugin SDK和Android操作系统开放接口(即Android SDK)进行编译。
(5)、插件可以通过Plugin SDK来访问基础模块,基础模块可以通过反射调用接口来访问插件,如图4A所示。另外,针对同一应用的基础模块开发的不同插件之间不能存在依赖调用关系。并且,插件不能被除对应的基础模块以外的其他模块访问调用,即插件不能绕开对应的基础模块对外暴露其功能。
(6)、插件开发者在开发插件时,可以在插件中提供com.huawei.plugin.<splitName>.PluginEntry类供基础模块反射调用,且它必须继承自IPluginEntry接口。其中,基础模块可以加载查询反射调用该PluginEntry类,以获取插件的反射调用接口。
(7)、插件开发者设置插件所带的so/dex文件全部打包进apk文件包内,并配置该split.apk文件包为不解压。其中,so/dex文件均为页对齐。
(8)、插件开发者设置带资源的插件的文件包内任两个文件的package-id必须不同,package-id的取值范围为0x80~0xFF。这样可以避免插件的资源访问冲突。
基于以上原则,插件开发者开发的插件需要在如图4B所示的运行环境中运行。应了解的是,无论在插件的开发过程中,还是在插件安装到电子设备后,只要该插件被运行设备(开发过程中使用的设备或电子设备)运行,则该插件需要满足该运行环境。如图4B所示,插件的运行环境为:运行设备的操作系统为Android操作系统,且在Android操作系统中运行了基础模块。插件在运行前,需要通过基础模块提供的Plugin SDK以及Android操作系统提供的Android SDK进行编译。还需要说明的是,基础模块运行前也是通过Android SDK进行编译的。
在本申请实施例中,基础模块的文件形式可以为base.apk,插件的文件形式可以与BundleAPP机制中的特性模块的文件形式相同,为split.apk。
值得注意的是,在本应用场景中,不同插件对应的开发者可以不同,也可以相同。另外,应用开发者可以与插件的开发者也可以相同,或不同,本申请对此也不作限定。
在应用开发者开发出应用的基础模块,且插件开发者开发出该基础模块对应的多个插件后,电子设备的生产厂商可以根据市场中的不同类型的用户对该应用的功能需求不同,以及电子设备的软硬件能力不同,设置应用的多种功能组合版,并在电子设备出厂前预置在电子设备中。
示例性的,如图5A所示,假设相机应用的全部功能模块为图5A中的(a)图所示,其中,拍照功能和录像功能由基础模块提供,其他功能由相应的插件提供。电子设备的生产厂商可以为相机应用设置如图(b)所示的全量功能组合版、图(c)所示的轻量功能组合版,以及图(d)所示的超级轻量功能组合版。然后电子设备的生产厂商生成电子设备时,可以将不同相机应用的功能组合版,预置到相应类型的电子设备中。
示例性的,如图5B所示,假设人工智能(artificial intelligence,AI)应用的全部功能模块为图5B中的(a)图所示,其中,AI通用算法由基础模块提供,其他功能由相应的插件提供。电子设备的生产厂商可以为AI应用设置如图(b)所示的高端功能组合版、图(c)所示的轻量功能组合版。然后电子设备的生产厂商生成电子设备时,可以将不同相机应用的功能组合版,预置到相应类型的电子设备中。
另外,如图2所示,应用开发者在开发出应用的基础模块之后,还可以发布到服务器中;插件开发者在开发出每个插件之后,也可以发布到服务器中。服务器负责存储应用开发者和插件开发者发布的基础模块和插件。可选的,所述服务器可以为传统的服务器或云服务器,本申请对此不作限定。
在一种实施方式中,服务器可以根据本地保存的应用的全部功能模块,设置多种应用的功能组合版,例如图5A和图5B所示。这样,所述服务器可以向用户进行推送任一种应用的功能组合版,以便于用户可以灵活地选择具体的功能组合进行下载安装。
在另一种实施方式中,如图2所示,服务器可以分为应用服务器和插件服务器,其中应用服务器主要负责存储应用的基础模块,而插件服务器主要负责存储应用的插件。应用服务器可以向用户推送存储的应用的基础模块。在电子设备安装应用的基础模块(可选的,还可以安装旧版的插件)后,插件服务器可以向用户推送存储的最新版的插件。例如,电子设备中预置或用户安装的相机应用中基础模块的版本号为1.1.3,人像模式插件的版本号为1.1.5的人像模式,那么插件服务器中存储的相机应用对应的最新版的人像模式插件的版本号为1.1.8,最新版的夜景模式插件的版本号为1.1.4,那么所述插件服务器可以向所述电子设备推送版本号为1.1.8的人像模式插件和版本号为1.1.4的夜景模式插件。通过这种实施例方式,可以提高插件推送的灵活性,从而使电子设备可以根据能力或者用户的功能需求获取/更新插件。
电子设备可以通过一系列插件管理机制,对应用的插件进行管理。如图所示,插件管理机制包括:安装升级、动态加载、兼容检查、签名校验、版本管理、独立卸载等。
签名校验机制为在服务器推送插件过程中,主动向服务器发送电子设备已安装的基础模块的识别信息(包名、签名等),已使服务器为所述电子设备推送与所述基础模块的识别信息一致的插件;或者为在服务器推送插件过程中,服务器向电子设备发送存储的所有插件的识别信息,所述电子设备在推送到所有的插件的识别信息中选择出与已安装的基础模块的是被信息一致的插件,以便进一步进行兼容检查或者进行后续推送步骤。
版本管理机制为电子设备保存已安装的基础模块以及插件的版本号,以便后续进行基础模块和插件的升级,以及兼容检查。
兼容检查机制可以为电子设备在接收到服务器推送的插件的版本号后,对插件的版本号和电子设备已安装的基础模块的版本号进行匹配,判断基础模块是否兼容该版本号的插件。当判定基础模块兼容该版本号的插件时,可以在显示屏中显示提醒用于获取/更新插件的提示信息;当判定基础模块不兼容该版本号的插件时,不在显示屏中显示提示信息。
兼容检查机制还可以为在电子设备下载插件后,安装插件之前,对插件的版本号和电子设备已安装的基础模块的版本号进行匹配,判断基础模式是否兼容该版本号的插件。当判定基础模块兼容该版本号的插件时,可以直接安装插件,或者提示用户安装插件;当判定基础模块不兼容该版本号的插件时,可以提示用户版本号不兼容,不能安装。
安装升级机制用于在电子设备从服务器下载插件的安装包后,运行所述安装包,以安装插件。
动态加载机制为电子设备在运行应用的基础模块后,通过基础模块提供的PluginSDK动态加载插件。
独立卸载机制为电子设备在安装插件后,可以在不卸载基础模块的基础上,独立卸载插件。
当电子设备安装应用的基础模块和至少一个插件后,如图中所示,基础模块可以通过自身的Plugin SDK,动态加载插件。
还需要说明的是,图2仅示意性的提供了一种应用场景,并不对本申请提供的方法的应用场景构成限定。
基于图2所示的应用场景,本申请实施例还提供了一种服务器,参阅图6所示,所述服务器600包括:处理器601、存储器602、通信接口603等部件。其中,所述处理器601与其他部件之间相互连接。
所述通信接口603用于与其他设备通信。
所述存储器602,可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器601通过运行存储在存储器602的指令,从而执行服务器的各种功能。存储器602可以包括存储程序区和存储数据区。其中,存储程序区可存储服务器的操作系统,以及至少一个应用程序的软件代码等。存储数据区可存储应用开发者发布的基础模块(以及DF),和/或,插件开发者发布的插件。当服务器可以根据本地保存的应用的全部功能模块,设置多种应用的功能组合时,所述存储数据区还可以存储每个应用对应的多种功能组合版。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
所述处理器601,可以包括一个或多个处理器单元,例如应用处理器(applicationprocessor,AP)、控制器、存储器,等。其中不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是服务器的神经中枢和指挥中心,可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。例如所述处理器601可以通过通信接口603与应用开发者/插件开发者进行交互,接收其发布的应用的基础模块/插件,并将基础模块/插件存储至存储器602中。又例如,所述处理器601可以通过通信接口603连接通信系统(包括核心网和接入网),进而通过通信系统连接电子设备,从而实现向电子设备推送应用的基础模块、插件或者应用的功能组合版,以及向电子设备发送基础模块、插件或者功能组合版,实现电子设备的基础模块、插件或者功能组合版的获取或更新。
处理器601中还可以设置具有缓冲作用的存储器,用于存储指令和数据。在一些实施例中,处理器601中的存储器为高速缓冲存储器。该存储器可以保存处理器601刚用过或循环使用的指令或数据。如果处理器601需要再次使用该指令或数据,可从内部的该存储器中直接调用。避免了重复从存储器602中存取,减少了处理器601的等待时间,因而提高了处理器的工作效率。
可以理解的是,图6所示的服务器的结构并不构成服务器的限定,适用图2所示的应用场景的服务器可以包括比图示更多或更少的部件。例如,所述服务器还可以包括用于连接外部存储器的外部存储器接口,显示屏等。
基于图2所示的应用场景,本申请实施例还提供了一种电子设备,参阅图7所示,所述电子设备700包括:处理器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等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。例如,所述处理器110可以通过移动通信模块150或者无线通信模块160接入通信系统(包括接入网和核心网),并通过通信系统连接服务器,从而接收服务器推送的应用的基础模块、插件或者应用的功能组合版,以及从服务器下载应用的基础模块、插件或者应用的功能组合版,实现电子设备的基础模块、插件或者功能组合版的获取或更新。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备充电,也可以用于电子设备与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频、放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
显示屏194为可折叠显示屏,用于显示界面。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用(例如相机应用、AI应用等)的软件代码等,其中,所述操作系统可以为Android操作系统,任一个应用的软件代码包括:该应用的基础模块(以及与基础模块绑定的DF),还可以包括电子设备安装的插件。存储数据区可存储电子设备使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储与读取功能。例如将图片,视频等文件保存在外部存储卡中。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音、通话等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。其中,触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194内,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型,并可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。由于本申请方案不涉及其他种类的传感器的功能,此处不再展开对其他种类传感器的功能描述。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现与电子设备的接触和分离。
可以理解的是,图7所示的电子设备的结构并不构成对电子设备的具体限定,适用图2所示的应用场景的电子设备还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。以下的实施例中,以图7所示的电子设备为例进行介绍。
基于图7所示的电子设备,本申请实施例还提供了一种电子设备的软件结构。参阅图8所示,电子设备的软件结构可以是分层架构,例如可以将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android操作系统分为四层,从上至下分别为应用程序层,应用程序框架层(framework,FWK),安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用。如图8中所示,应用程序层可以包括相机、AI应用、设置、电话、短信息、图库、日历等应用。
应用程序框架层为应用程序层中的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数。如图8所示,应用程序框架层可以包括:窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器,为窗口提供窗口管理服务(window manager service),以对显示屏显示的界面进行控制管理。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用的界面。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
Android runtime包括核心库和虚拟机。Android runtime是Android操作系统的运行时环境,负责Android操作系统的调度和管理。在本申请的方案中,在电子设备安装应用的基础模块和/或插件(即安装apk),或者基础模块动态加载插件(即运行插件)时,Android runtime可以提供运行环境和编译环境,例如图4B所示。其中,核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是Android操作系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:状态检测模块、显示算法模块、媒体库(media libraries),图像处理库等。
状态检测模块,用于对电子设备的可折叠显示屏的物理形态进行识别。例如,状态检测模块可以用于根据硬件层中各类传感器上传的传感器数据确定该可折叠显示屏的物理形态。
所述显示算法模块,用于根据电子设备内部的插件管理机制,以及服务器推送的插件的版本号,确定是否需要获取或升级插件。
媒体库支持多种格式的音频、视频的回放和录制,以及支持打开多种格式的静态图像等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
内核层是电子设备的硬件和软件之间的层。内核层至少包含显示驱动,传感器驱动、摄像头驱动,音频驱动等,用于驱动硬件层中的硬件。
硬件层可以包括各类传感器、显示屏、摄像头等。
下面结合本申请实施例提供的实现应用插件化的方法,示例性的说明服务器和电子设备的软件以及硬件工作流程。
本申请实施例提供了一种实现应用插件化的方法,该方法适用于如图2所示的应用场景。参阅图9所示,该方法的流程包括:
S901:插件开发者按照插件开发规则,开发与目标应用的基础模块兼容的第n版插件1,n为大于0的整数。其中,所述开发规则可以参考以上应用场景中介绍的8条规则,此处不再赘述。
其中,目标应用的基础模块为应用开发者开发的,所述基础模块中发布有标准化开放接口Plugin SDK,以便插件开发者可以动态依赖它实现插件的开发编译,以及插件可以通过Plugin SDK来访问基础模块。可选的,应用开发者可以采用BundleAPP方案开发基础模块以及与该基础模块绑定的至少一个DF,本申请对此不做限定。
在本申请实施例中,电子设备可以通过以下三种方案,按照该第n版插件1。如图所示,S902a为方案一,S902b1-S902b4为方案二,S902c1-S902c5为方案三。
下面对方案一进行介绍。
S902a:电子设备的生产厂商可以根据市场中的不同类型的用户对该应用的功能需求不同,以及电子设备的软硬件能力不同,设置目标应用的多种功能组合版,其中,功能组合版1中包含所述基础模块和第n版插件1。电子设备的生成厂商将功能组合版1预置到软硬件能力能够支持该功能组合版1的电子设备中。
可选的,所述功能组合版1中还可以包含其他插件,本申请对此不作限定。另外当所述应用开发者采用BundleAPP方案开发基础模块的同时,还开发与基础模块绑定的至少一个DF时,所述功能组合版1中还包含该至少一个DF。
通过方案一,电子设备的生产厂商可以针对同一应用灵活地配置多种功能组合版,以满足不同的市场需求。
下面对方案二进行介绍。该方案的实现条件为电子设备已经安装或预置目标应用的基础模块。可选的,当所述应用开发者采用BundleAPP方案开发基础模块的同时,还开发与基础模块绑定的至少一个DF时,所述电子设备还已安装或预置有至少一个DF。
S902b1:插件开发者将第n版插件1发布到服务器中。
S902b2:服务器保存第n版插件1到存储器中,并通过插件推送流程向电子设备推送第n版插件1。
所述插件的推送流程可以与传统的应用推送流程相同。示例性的,插件的推送流程可以为:服务器通过通信系统连接电子设备,然后获取电子设备的应用安装情况,以及软硬件能力,然后根据所述电子设备的应用安装情况,以及软硬件能力,进行插件的推送。其中,电子设备在该插件的推送流程中,可以使用内部的签名校验机制、版本管理机制、兼容性检查机制等以保证服务器推送的插件与其已经安装的目标应用的基础模块兼容。
例如,当前电子设备已安装目标应用的基础模块,未安装第n版插件1,且电子设备的软硬件能力能够支持电子设备运行第n版插件1,那么服务器向电子设备推送第n版插件1。
S902b3:电子设备接收到服务器的推送后,在显示屏中显示提示用户获取插件1的提示信息。
示例性的,所述电子设备可以但不限于通过以下方式,在所述显示屏中显示所述提示信息,包括:
方式一:所述电子设备在通知栏中显示所述提示信息。以所述目标应用为相机,插件1为美食模式为例,电子设备显示所述提示信息的界面可以如图10A所示。
方式二:所述电子设备在打开所述目标应用后,显示应用界面,并在所述应用界面中显示所述提示信息。
以所述目标应用为相机,插件1为夜景模式为例,所述电子设备可以在打开所述相机应用后,在相机应用的应用主界面显示所述提示信息,如图10B所示。所述电子设备还可以在应用界面中设置服务器推送的插件的图标,当用户点击某个插件图标时,显示提示信息,如图10C所示,电子设备的应用界面中显示有慢动作插件图标、夜景插件图标、全景插件图标等等,当用户点击夜景插件图标时,显示提示信息。
方式三:所述电子设备在打开所述目标应用中的插件管理功能后,显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息。以所述目标应用为相机,插件1为美食模式为例,相机应用中的插件管理功能界面可以为相机应用市场,相机应用市场中关于美食模式插件的提示信息如图10D所示。
方式四:所述电子设备在打开管理应用,显示管理应用界面,并在所述管理应用界面中显示所述提示信息。其中所述管理应用可以管理电子设备的应用的获取、更新和安装,以及应用中的插件的获取、更新和安装。示例性的,电子设备中显示有相机应用中的美食模式插件的提示信息的管理应用界面可以如图10E所示。
S902b4:电子设备在接收到用户输入的下载操作时,响应与该下载操作,从服务器下载第n版插件。在电子设备下载第n版插件后,安装第n版插件。
所述下载操作可以为用户语音输入操作,用户操作电子设备的物理按钮,或者用户对显示屏中的提示信息的点击或滑动操作,本申请对此不作限定。
通过方案二,可以实现插件的独立发布、独立下载和安装,以提高插件的发布和下载的灵活性。
下面对方案三进行介绍。该方案的实现条件为电子设备已经安装或预置目标应用的基础模块。
S902c1:插件开发者将第n版插件1发布到服务器中。
S902c2:服务器保存第n版插件1到存储器中。然后服务器可以根据市场中不同类型的用户对该应用的功能需求不同,以及电子设备的软硬件能力不同,以及本地保存的目标应用的基础模块和多种插件,设置目标应用的多种功能组合版,其中,功能组合版1中包含基础模块和第n版插件1。
S902c3:服务器通过应用推送流程,向电子设备推送目标应用的功能组合版1。
所述应用推送流程与传统的应用推送流程相同,此处不再赘述。
S902c4:电子设备接收到服务器的推送后,在显示屏中显示提示用户获取目标应用的功能组合版1的提示信息。
示例性的,所述电子设备可以但不限于通过以下方式,在所述显示屏中显示所述提示信息,包括:
方式一:所述电子设备在通知栏中显示所述提示信息。以所述目标应用为相机,插件1为美食模式为例,电子设备显示所述提示信息的界面可以如图10F所示。
方式二:所述电子设备在打开管理应用,显示管理应用界面,并在所述管理应用界面中显示所述提示信息。其中所述管理应用可以管理电子设备的应用的获取、更新和安装。示例性的,电子设备中显示有相机应用中的美食模式插件的提示信息的管理应用界面可以如图10G所示。
S902c5:电子设备在接收到用户输入的下载操作时,响应与该下载操作,从服务器下载目标应用的功能组合版1。然后在电子设备下载功能组合版1后,安装功能组合版1中的基础模块和第n版插件1。
其中,所述下载操作可以为用户语音输入操作,用户操作物理按钮,或者用户对显示屏中的提示信息的点击或滑动操作,本申请对此不作限定。
通过方案三,可以提高服务器的插件推送的灵活性和效率,以满足不同的市场需求。
通过以上三种方案,电子设备实现第n版插件的安装。需要说明的是,本申请实施例不仅能够实现插件的独立安装,还可以实现插件的独立卸载,如图所示,当电子设备安装任意款、任一版插件之后,可以通过独立卸载机制,独立卸载已安装的插件。
插件开发者在开发插件1后,还会不断对插件1的版本进行更新,以完善插件1的功能。即插件开发者可以在开发第n版插件1后,继续开发第n+1版插件1。因此,本申请实施例可以通过S903-S907,对插件1进行升级(电子设备未卸载第n版插件1的情况下)/获取(电子设备卸载第n版插件1的情况下)。
需要说明的是,在S904-S907的过程中,由于电子设备已经安装目标应用的基础模块,因此S903-S907的步骤与方案二的步骤类似,因此可以参考方案二中的描述,此处不再赘述。另外,在电子设备通过对S904-S907对插件1进行升级的情况下,电子设备接收到服务器的推送后,在显示屏中显示提示用户更新插件1的提示信息。电子设备也可以但不限于通过方案二中的四种方式,显示所述提示信息。
示例性的,如图10H所示,以所述目标应用为相机,插件1为美食模式为例,电子设备可以在通知栏中显示所述提示信息。
示例性的,以所述目标应用为相机,插件1为夜景模式为例,所述电子设备可以在打开所述相机应用后,在相机应用的应用主界面显示所述提示信息,如图10I所示。所述电子设备还可以在应用界面中设置服务器推送的插件的图标,当用户点击某个插件图标时,显示提示信息,如图10J所示,电子设备的应用界面中显示有慢动作插件图标、夜景插件图标、全景插件图标等等,当用户点击夜景插件图标时,显示提示信息。
示例性的,以所述目标应用为相机,插件1为水印模式为例,相机应用中的插件管理功能界面可以为相机应用市场,相机应用市场中关于水印模式插件的提示信息如图10K所示。
示例性的,电子设备还可以在管理应用界面中显示所述提示信息。以所述目标应用为相机,插件1为水印模式为例,电子设备中显示有相机应用中的水印模式插件的提示信息的管理应用界面可以如图10L所示。
在插件开发者在开发插件1后,还可以开发其他插件,以不断对目标应用的功能进行扩展。因此,本申请实施例可以通过S908-S912,实现插件2的独立开发、独立发布,以及独立下载和安装。类似的,由于在A909-S912的过程中,电子设备已经安装目标应用的基础模块,因此S909-S912的步骤也与方案二的步骤类似,因此也可以参考方案二中的描述,此处不再赘述。
在本申请实施例中,“获取插件”表示电子设备本地未安装该插件,需要通过从服务器下载该插件以安装,因此,“获取插件”还可以用“下载插件”、“安装插件”、“添加插件”等表示相同语义的词语替换。“更新插件”表示电子设备本地已安装插件的版本,需要再次从服务器下载比已安装版本更新的版本以升级该插件,因此“更新插件”还可以用“升级插件”、“替换插件”等表示相同语义的词语替换。
本申请实施例提供了一种实现应用插件化的方法。在该方法中,电子设备在提前安装应用的基础模块的前提下,可以从服务器下载并安装该应用的插件,以扩展该应用的功能。由于电子设备可以从服务器上独立下载插件,插件的开发、发布以及下载安装过程均无需依赖于基础模块,因此该方案可以实现应用的独立开发和发布,能够提高应用开发的效率,和提升应用的灵活性。
基于相同的技术构思,本申请还提供了一种电子设备,所述电子设备适用于如图2所示的应用场景中,用于实现如图9所示的实现应用插件化的方法。参阅图11所示,所述电子设备1100包括:处理单元1101、通信单元1102。下面对各个单元的功能进行描述。
通信单元1102,用于接收和发送数据;
处理单元1101,用于通过通信单元1102从服务器下载应用的插件,其中,所述电子设备已经安装所述应用的基础模块,所述基础模块用于实现所述应用的基础功能,所述插件用于实现所述应用的扩展功能;以及安装所述插件。
在一种实施方式中,所述插件的开发环境与所述基础模块的开发环境相同。
在一种实施方式中,所述处理单元1101,还用于:
在从所述服务器下载所述应用的插件之前,确定所述插件的识别信息与所述基础模块的识别信息相同,其中所述插件的识别信息用于确定所述插件所归属的应用,所述基础模块的识别信息用于确定所述基础模块所归属的应用。
在一种实施方式中,所述处理单元1101,还用于:
在从所述服务器下载所述应用的插件之前,确定所述插件的版本号与所述基础模块的版本号兼容。
在一种实施方式中,所述处理单元1101,在确定所述插件的版本号与所述基础模块的版本号兼容时,具体用于:
确定所述插件的版本号中指示插件接口的字段与所述基础模块的版本号中指示的插件接口的字段相同。
在一种实施方式中,所述处理单元1101,还用于:在安装所述插件之前,确定所述插件的文件包中包含插件指示配置文件。
在一种实施方式中,所述插件通过所述基础模块提供的插件接口进行编译。
在一种实施方式中,所述电子设备1100配置有用于显示界面的显示屏1103,所述处理单元1101在通过所述通信单元1102从服务器下载所述应用的插件时,具体用于:
确定所述服务器中保存所述插件时,在所述显示屏1103中显示提示信息,所述提示信息用于提示用户下载所述插件;
检测到用户输入的下载操作;
响应于所述下载操作,通过所述通信单元1102从所述服务器下载所述插件。
在一种实施方式中,所述处理单元1101在所述显示屏1103中显示所述提示信息,包括:
在所述显示屏1103中显示的通知栏中显示所述提示信息;或者
在打开所述应用后,在所述显示屏中1103显示应用界面,并在所述应用界面中显示所述提示信息;或者
在打开所述应用中的插件管理功能后,在所述显示屏1103中显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息;或者
在打开管理应用后,在所述显示屏1103中显示管理应用界面,并在所述管理应用界面中显示所述提示信息。
在一种实施方式中,所述处理单元1101还用于卸载所述插件。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
基于相同的技术构思,本申请还提供了一种电子设备,所述电子设备适用于如图2所示的应用场景中,用于实现如图9所示的实现应用插件化的方法,具有如图11所示的电子设备1100的功能。参阅图12所示,所述电子设备1200包括:处理器1201,存储器1202,收发器1203,以及显示屏1204。
其中,所述处理器1201与其它部件之间相互连接。可选的,所述处理器1201和其他部件可以通过总线相互连接;所述总线可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述收发器1203,用于接收和发送数据。所述终端设备1200可以通过所述收发器1203与其他设备进行通信交互,例如所述电子设备1200可以通过所述收发器1203接收服务器推送的应用的插件相关信息,以及从所述服务器下载插件。示例性的,所述收发器1203可以包含图7所示的电子设备700中的移动通信模块150和/或无线通信模块160。
所述处理器1201,用于实现如图9所示的实现应用插件化的方法,具体可以参见上述实施例中的描述,此处不再赘述。
所述显示屏1204,用于显示界面。例如,所述处理器1201在确定服务器中保存应用的插件时,可以在所述显示屏1204中显示用于提示用户下载该插件的提示信息。
在一些实施方式中,所述终端设备1200还可以包括摄像头、各种传感器等部件。
所述存储器1202,用于存放计算机程序和数据等。具体地,计算机程序可以包括程序代码,该程序代码包括计算机操作的指令。存储器1202可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。所述处理器1201执行所述存储器1202所存放的程序指令,并通过上述各个部件,实现上述功能,从而最终实现以上实施例提供的实现应用插件化的方法。
基于以上实施例,本申请实施例还提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行以上实施例提供的实现应用插件化的方法。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行以上实施例提供的实现应用插件化的方法。
基于以上实施例,本申请实施例还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,实现以上实施例提供的实现应用插件化的方法。
基于以上实施例,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持以上实施例中电子设备所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
基于以上实施例,本申请实施例还提供了一种电子设备上的图形用户界面,其中,所述电子设备具有显示屏、存储器,以及处理器,所述处理器用于执行存储在所述存储器中的计算机程序,所述图形用户界面包括所述电子设备执行以上实施例提供的实现应用插件化的方法时显示的图形用户界面。
综上所述,本申请提供了一种实现应用插件化的方法及电子设备。在该方法中,电子设备在提前安装应用的基础模块的前提下,可以从服务器下载并安装该应用的插件,以扩展该应用的功能。由于电子设备可以从服务器上独立下载插件,插件的开发、发布以及下载安装过程均无需依赖于基础模块,因此该方案可以实现应用的独立开发和发布,能够提高应用开发的效率,和提升应用的灵活性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种实现应用插件化的方法,其特征在于,所述方法包括:
电子设备从服务器下载应用的插件,其中,所述电子设备已经安装所述应用的基础模块,所述基础模块用于实现所述应用的基础功能,所述插件用于实现所述应用的扩展功能;
所述电子设备安装所述插件;其中,所述插件通过插件接口来访问所述基础模块,所述基础模块通过反射调用接口来访问所述插件。
2.如权利要求1所述的方法,其特征在于,所述插件的开发环境与所述基础模块的开发环境相同。
3.如权利要求1所述的方法,其特征在于,在所述电子设备从所述服务器下载所述应用的插件之前,所述方法还包括:
所述电子设备确定所述插件的识别信息与所述基础模块的识别信息相同,其中所述插件的识别信息用于确定所述插件所归属的应用,所述基础模块的识别信息用于确定所述基础模块所归属的应用。
4.如权利要求1所述的方法,其特征在于,在所述电子设备从所述服务器下载所述应用的插件之前,所述方法还包括:
所述电子设备确定所述插件的版本号与所述基础模块的版本号兼容。
5.如权利要求4所述的方法,其特征在于,所述电子设备确定所述插件的版本号与所述基础模块的版本号兼容,包括:
所述电子设备确定所述插件的版本号中指示插件接口的字段与所述基础模块的版本号中指示的插件接口的字段相同。
6.如权利要求1所述的方法,其特征在于,所述电子设备安装所述插件之前,所述方法还包括:
所述电子设备确定所述插件的文件包中包含插件指示配置文件。
7.如权利要求1所述的方法,其特征在于,所述插件通过所述基础模块提供的插件接口进行编译。
8.如权利要求1所述的方法,其特征在于,所述电子设备配置有显示屏,所述电子设备从服务器下载所述应用的插件,包括:
所述电子设备确定所述服务器中保存所述插件时,在所述显示屏中显示提示信息,所述提示信息用于提示用户下载所述插件;
所述电子设备检测到用户输入的下载操作;
所述电子设备响应于所述下载操作,从所述服务器下载所述插件。
9.如权利要求8所述的方法,其特征在于,所述电子设备在所述显示屏中显示所述提示信息,包括:
所述电子设备在所述显示屏中显示的通知栏中显示所述提示信息;或者
所述电子设备在打开所述应用后,在所述显示屏中显示应用界面,并在所述应用界面中显示所述提示信息;或者
所述电子设备在打开所述应用中的插件管理功能后,在所述显示屏中显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息;或者
所述电子设备在打开管理应用后,在所述显示屏中显示管理应用界面,并在所述管理应用界面中显示所述提示信息。
10.如权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备卸载所述插件。
11.一种显示方法,应用于配置有显示屏的电子设备中,其特征在于,包括:
所述电子设备确定服务器中保存应用的插件时,在所述显示屏中显示提示信息,所述提示信息用于提示用户下载所述插件;其中,所述电子设备已经安装所述应用的基础模块,所述基础模块用于实现所述应用的基础功能,所述插件用于实现所述应用的扩展功能;
所述电子设备检测到用户输入的下载操作;
所述电子设备响应于所述下载操作,从所述服务器下载所述插件;其中,所述插件通过插件接口来访问所述基础模块,所述基础模块通过反射调用接口来访问所述插件。
12.如权利要求11所述的方法,其特征在于,所述电子设备在所述显示屏中显示所述提示信息,包括:
所述电子设备在所述显示屏中显示的通知栏中显示所述提示信息;或者
所述电子设备在打开所述应用后,在所述显示屏中显示应用界面,并在所述应用界面中显示所述提示信息;或者
所述电子设备在打开所述应用中的插件管理功能后,在所述显示屏中显示插件管理功能界面,并在所述插件管理功能界面中显示所述提示信息;或者
所述电子设备在打开管理应用后,在所述显示屏中显示管理应用界面,并在所述管理应用界面中显示所述提示信息。
13.一种电子设备,其特征在于,包括:
收发器,用于接收和发送数据;
存储器,用于存储计算机程序;
处理器,用于执行存储器中的存储的计算机程序,通过所述收发器执行如权利要求1-10任一项所述的方法。
14.一种电子设备,其特征在于,包括:
显示屏,用于显示界面;
收发器,用于接收和发送数据;
存储器,用于存储计算机程序,所述计算机程序包括指令;
处理器,用于执行存储器中存储的计算机程序,通过所述显示屏、收发器执行如权利要求11或12所述的方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-12任一项所述的方法。
16.一种芯片,其特征在于,所述芯片用于读取存储器中存储的计算机程序,执行如权利要求1-12任一项所述的方法。
CN201910880334.5A 2019-09-18 2019-09-18 一种实现应用插件化的方法及电子设备 Active CN112527301B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910880334.5A CN112527301B (zh) 2019-09-18 2019-09-18 一种实现应用插件化的方法及电子设备
PCT/CN2020/112848 WO2021052167A1 (zh) 2019-09-18 2020-09-01 一种实现应用插件化的方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910880334.5A CN112527301B (zh) 2019-09-18 2019-09-18 一种实现应用插件化的方法及电子设备

Publications (2)

Publication Number Publication Date
CN112527301A CN112527301A (zh) 2021-03-19
CN112527301B true CN112527301B (zh) 2022-10-25

Family

ID=74883915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910880334.5A Active CN112527301B (zh) 2019-09-18 2019-09-18 一种实现应用插件化的方法及电子设备

Country Status (2)

Country Link
CN (1) CN112527301B (zh)
WO (1) WO2021052167A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172876A (zh) * 2021-11-29 2022-03-11 阿里巴巴(中国)有限公司 数据传输方法、装置及计算机存储介质
CN114443159A (zh) * 2021-12-31 2022-05-06 智器云南京信息科技有限公司 一种插件处理装置、方法、计算机设备和存储介质
CN115242628A (zh) * 2022-06-20 2022-10-25 平安普惠企业管理有限公司 基于模块部署的应用下载方法、装置、设备及存储介质
CN117319482A (zh) * 2022-06-25 2023-12-29 华为技术有限公司 一种插件控制方法、系统及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365644A (zh) * 2012-04-10 2013-10-23 腾讯科技(深圳)有限公司 一种扩展软件功能的方法及装置
WO2014067412A1 (en) * 2012-10-29 2014-05-08 Tencent Technology (Shenzhen) Company Limited Method for downloading plug-in installation packages and download terminal thereof
CN107423101A (zh) * 2017-08-01 2017-12-01 武大吉奥信息技术有限公司 一种应用程序插件网格化发布与管理方法及系统
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108984224A (zh) * 2018-06-13 2018-12-11 中国平安人寿保险股份有限公司 一种插件管理方法、计算机可读存储介质及终端设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397064B2 (en) * 2016-04-20 2019-08-27 Servicenow, Inc. System and method for custom graph generation
CN108595203B (zh) * 2018-04-28 2024-04-19 努比亚技术有限公司 应用功能执行方法、移动终端和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365644A (zh) * 2012-04-10 2013-10-23 腾讯科技(深圳)有限公司 一种扩展软件功能的方法及装置
WO2014067412A1 (en) * 2012-10-29 2014-05-08 Tencent Technology (Shenzhen) Company Limited Method for downloading plug-in installation packages and download terminal thereof
CN107423101A (zh) * 2017-08-01 2017-12-01 武大吉奥信息技术有限公司 一种应用程序插件网格化发布与管理方法及系统
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108984224A (zh) * 2018-06-13 2018-12-11 中国平安人寿保险股份有限公司 一种插件管理方法、计算机可读存储介质及终端设备

Also Published As

Publication number Publication date
WO2021052167A1 (zh) 2021-03-25
CN112527301A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN112527301B (zh) 一种实现应用插件化的方法及电子设备
EP4002108B1 (en) Application start method and electronic device
CN109101352B (zh) 图像处理算法架构、算法调用方法、装置、存储介质及移动终端
CN110633090B (zh) 补丁方法、相关装置及系统
CA2768752A1 (en) Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform
CN114461239B (zh) 软件升级系统和软件升级方法
CN110865837B (zh) 一种进行系统升级的方法和终端
WO2021073337A1 (zh) 安装插件的方法、装置和存储介质
CN113727333A (zh) 定制应用的下载方法和系统
CN114327437A (zh) 插件运行系统、插件运行方法以及电子设备
WO2022052766A1 (zh) 主题包适配方法及装置
CN113608753A (zh) 应用卸载方法、应用恢复方法、电子设备以及存储介质
CN115309431B (zh) 一种参数更新方法、可读介质和电子设备
CN114443117B (zh) 一种定制包的处理方法及电子设备
CN113885928B (zh) 程序更新方法和电子设备
WO2022111664A1 (zh) 打补丁的方法、相关设备及系统
CN113485709B (zh) 应用优化方法、装置以及电子设备
WO2021238376A1 (zh) 功能包的加载方法、装置、服务器和电子设备
CN116795435A (zh) 兼容性管控方法及相关设备
WO2024083114A1 (zh) 一种软件分发方法、电子设备及系统
CN116643778B (zh) 一种应用程序优化方法及电子设备
WO2023165413A1 (zh) 一种应用开发系统、方法及设备
CN114706633B (zh) 预加载方法、电子设备及存储介质
WO2024055875A1 (zh) 服务卡片的添加方法、电子设备及计算机可读存储介质
CN117971305A (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