CN105278942B - 组件管理方法及装置 - Google Patents

组件管理方法及装置 Download PDF

Info

Publication number
CN105278942B
CN105278942B CN201410353837.4A CN201410353837A CN105278942B CN 105278942 B CN105278942 B CN 105278942B CN 201410353837 A CN201410353837 A CN 201410353837A CN 105278942 B CN105278942 B CN 105278942B
Authority
CN
China
Prior art keywords
component
target component
target
library file
assembly
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
CN201410353837.4A
Other languages
English (en)
Other versions
CN105278942A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410353837.4A priority Critical patent/CN105278942B/zh
Publication of CN105278942A publication Critical patent/CN105278942A/zh
Application granted granted Critical
Publication of CN105278942B publication Critical patent/CN105278942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种组件管理方法及装置,属于计算机技术领域。所述方法包括:根据当前运行的应用程序确定需要加载的目标组件;获取目标组件对应的库文件;根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。本发明通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,对应用程序的影响较小。

Description

组件管理方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种组件管理方法及装置。
背景技术
随着计算机技术的迅速发展,通过应用程序处理信息的应用范围越来越广。其中,应用程序在处理信息时,通常需要使用应用程序对应的组件对信息进行处理。因而如何对应用程序的组件进行管理是提高应用程序使用体验的关键。
相关技术提供了一种组件管理方法,该方法中的组件固定加载在应用程序中。具体实施时,在应用程序开发的过程中,组件以代码的形式加载在应用程序中。后续在对组件进行管理时,由于组件为加载在应用程序中的固定组件,因而组件的运行与应用程序当前所处的软硬件环境相关。若应用程序当前所处的软硬件环境不满足已加载的固定组件的运行条件,则加载该固定组件的应用程序会强制退出,或者已加载的固定组件会崩溃。
在实现本发明的过程中,发明人发现上述方法至少存在以下问题:
由于组件是加载在应用程序中的固定组件,使得在应用程序当前所处的软硬件环境不满足已加载的固定组件的运行条件时,加载的固定组件会直接崩溃或者加载固定组件的应用程序会强制退出,导致上述组件管理方法的灵活性较差,对应用程序的使用影响较大。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种组件管理方法及装置,所述技术方案如下:
一方面,提供了一种组件管理方法,所述方法包括:
根据当前运行的应用程序确定需要加载的目标组件;
获取所述目标组件对应的库文件;
根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。
另一方面,提供了一种组件管理装置,所述装置包括:
确定模块,用于根据当前运行的应用程序确定需要加载的目标组件;
获取模块,用于获取所述目标组件对应的库文件;
加载模块,用于根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。
本发明实施例提供的技术方案带来的有益效果是:
通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种组件管理方法的流程图;
图2是根据一示例性实施例示出的一种组件管理方法的流程图;
图3是根据一示例性实施例示出的一种组件管理装置的结构示意图;
图4是根据一示例性实施例示出的一种组件管理装置的结构示意图;
图5是根据一示例性实施例示出的一种组件管理装置的结构示意图;
图6是根据一示例性实施例示出的一种组件管理装置的结构示意图;
图7是根据一示例性实施例示出的一种组件管理装置的结构示意图;
图8是根据一示例性实施例示出的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
由于相关技术中在管理组件时,加载的组件是应用程序中的固定组件,使得在应用程序当前所处的软硬件环境不满足已加载的固定组件的运行条件时,加载的固定组件会直接崩溃或者加载固定组件的应用程序会强制退出,导致上述组件管理方法的灵活性较差,对应用程序的使用影响较大。
为了预防上述情况,提高组件管理的灵活性,并减少对应用程序的影响,本发明实施例提供了一种组件管理方法,该方法应用于终端,该终端包括但不限于手机、计算机、平板电脑等等,参见图1,本实施例提供的方法流程包括:
101:根据当前运行的应用程序确定需要加载的目标组件;
102:获取目标组件对应的库文件;
作为一种可选实施例,获取目标组件对应的库文件之前,还包括:
预先在本地保存各个组件的库文件;
获取目标组件对应的库文件,包括:
从本地预先存储的库文件中获取目标组件对应的库文件。
103:根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。
作为一种可选实施例,根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中之后,还包括:
如果成功加载目标组件,初始化目标组件对应的组件资源,并在组件资源初始化成功后,运行目标组件。
作为一种可选实施例,根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中之后,还包括:
如果未成功加载所述目标组件,则使用所述目标组件的被替代功能。
作为一种可选实施例,运行目标组件之后,还包括:
检测是否满足目标组件的拔出条件;
如果检测到满足目标组件的拔出条件,则停止运行目标组件,并释放目标组件对应的组件资源。
作为一种可选实施例,检测是否满足目标组件的拔出条件,包括:
检测是否获取到目标组件的拔出指令;
若获取到目标组件的拔出指令,则满足目标组件的拔出条件。
作为一种可选实施例,检测是否满足目标组件的拔出条件,包括:
检测当前运行环境是否满足目标组件的运行需求;
若当前运行环境未满足目标组件的运行需求,则满足目标组件的拔出条件。
本实施例提供的方法,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
本发明实施例提供了一种组件管理方法,该方法涉及终端,结合上述实施例中的内容,对本实施例提供的方法进行举例说明。参见图2,本实施例提供的方法流程包括:
201:根据当前运行的应用程序确定需要加载的目标组件;
本实施例不对根据当前运行的应用程序确定需要加载的目标组件的方式作具体限定,包括但不限于:确定当前运行的应用程序需要执行的功能,根据需要执行的功能确定需要加载的目标组件。其中,需要加载的目标组件的数量可以为一个,也可以为多个,本实施例不对需要加载的目标组件的数量作具体限定。
例如,确定当前运行的应用程序需要执行功能为播放视频,则可以加载相应的视频播放组件。在此,视频播放组件即为需要加载的目标组件,目标组件的个数为一个。另外,在播放视频的同时,往往还需要加载视频加速组件,以对视频播放进行加速,即视频加速组件也为需要加载的目标组件。此时,目标组件的个数为多个。
202:获取目标组件对应的库文件;
本实施例不对获取目标组件对应的库文件的方式作具体限定,包括但不限于:预先在本地保存各个组件的库文件;从本地预先存储的库文件中获取目标组件对应的库文件。其中,每个目标组件都对应着至少一个库文件,本实施例不对每个目标组件对应的库文件的个数作具体限定。
关于从本地预先存储的库文件中获取目标组件对应的库文件的方式,本实施例对此不作具体限定,包括但不限于:根据目标组件的属性在本地预先存储的库文件中获取目标组件对应的库文件。其中,目标组件的属性可以包括目标组件的标识等,本实施例对此不作具体限定。
例如,以目标组件的属性为目标组件的标识,每个目标组件唯一对应一个标识为例,预先将各个组件的库文件保存在本地中,由于每个目标组件都对应一个标识,可将每个目标组件的标识与对应的库文件相关联。若需要获取某个目标组件对应的库文件,可以根据该目标组件的标识在本地进行查找,从而获取标识对应的库文件。
需要说明的是,上述过程中各个组件的库文件可以保存在本地的***固件中,如本地的ROM(Read-Only Memory,只读内存)中,本实施例不对各个组件的库文件在本地存储的位置作具体限定。另外,各个组件的库文件还可以打包放入APK(Android PacKage,安卓安装包),当需要安装包含库文件的APK时,可以从APK中解压出来,并同时进行存储。其中,可存储至上述过程中的***固件中,也可以存储至外部存储设备中,本实施例对此不作具体限定。
另外,由于目标组件在被释放到本地ROM等***固件或外部存储设备时,会受限于设备空间大小,设备文件***是否正常以及是否有读写权限等条件,因此,可预先根据上述条件定义拔出条件。在加载目标组件时,可先检测当前是否满足拔出条件,若当前满足拔出条件,则此时可使用目标组件的被替代功能,即目标组件可以被执行同种功能的组件或者应用程序或者***功能所替代,本实施例对此不作具体限定。其中,关于检测当前是否满足拔出条件的方式,本实施例对此不作具体限定,包括但不限于:在目标组件被释放到本地ROM等***固件或外部存储设备时,检测对应的设备空间大小是否足够,若设备空间大小不够,则确定当前满足拔出条件;或者,检测设备文件***是否在正常状态以及是否有读写权限,若设备文件***不在正常状态或不具有读写权限,则确定当前满足拔出条件。
203:根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中;
由于目标组件实际上为执行代码后的进程,而目标组件对应的库文件包含着对应的代码。因此,关于根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中的方式,本实施例对此不作具体限定,包括但不限于:将目标组件对应的库文件加载到当前运行的应用程序对应的代码中。若当前运行的应用程序需要使用该目标组件,则可以执行该目标组件对应的库文件中代码,从而将目标组件动态加载到了当前运行的应用程序中。
204:如果成功加载目标组件,初始化目标组件对应的组件资源,并在组件资源初始化成功后,运行目标组件;
通过上述步骤203,可将目标组件动态加载到当前运行的应用程序中,如果成功加载了,则初始化目标组件对应的组件资源。其中,组件资源可以包括运行目标组件需要的上下文代码、目标组件需要使用的硬件资源等,本实施例对此不作具体限定。本实施例不对初始化目标组件对应的组件资源的方式作具体限定,包括但不限于:根据目标组件对应的组件资源类型对组件资源进行初始化。例如,当组件资源为运行目标组件需要的上下文代码时,可以将上下文代码加载到内存中,以完成组件资源的初始化。当组件资源为硬件资源打印机时,可以重新设定打印机的初始参数,以完成组件资源的初始化。
经过上述过程,若组件资源初始化成功后,可以运行目标组件,以执行不同的功能。例如,若目标组件为视频播放组件,则可以运行视频播放组件,以通过该视频播放组件来播放视频。
需要说明的是,由于上述步骤203中加载目标组件的过程存在加载失败的可能性,因此,当未成功加载目标组件时,则同样可以使用该目标组件的被替代功能。
例如,若在将目标组件对应的库文件加载到当前运行的应用程序对应的代码中时,存储应用程序对应的代码的文件***出现了故障,或者不具有写权限。此时,由于不能加载目标组件的库文件,从而会导致加载目标组件失败,这时便可使用该目标组件的被替代功能。例如,以目标组件为一种音频播放组件为例,当该音频播放组件加载失败时,由于Windows***中往往还会自带有Windows Media Player音频播放组件,因此,可由***自带的音频播放组件播放音频,以完成之前加载失败的音频播放组件所要执行的功能。或者,目标组件可以为一种浏览器,当该浏览器加载失败时,由于Windows***中往往还会自带有Internet Explorer浏览器,从而可以使用***自带的浏览器供用户浏览网页。
另外,由于本步骤中初始化目标组件对应的组件资源也可能会出现失败的情形,此时,同样可以使用目标组件的被替代功能,具体过程可以参考上述内容,此处不再赘述。通过上述目标组件的被替代功能,能够保证应用程序自身逻辑的正确性,从而使得应用程序在目标组件加载失败或者其它不能使用的情况下,能够正常运行而不会强制退出,进而提高了应用程序运行的稳定性。
可选地,在组件资源初始化成功,运行目标组件后,可以为每个运行的目标组件设置一个运行标识,用于表示该目标组件已经被成功加载和运行,本实施例对此不作具体限定。
可选地,由于本实施例提供的方法是动态加载组件,组件有极强的独立性。因此,除了上述加载组件的过程之外,本实施例还提供了一种动态卸载组件的方法,具体过程详见后续的可选步骤。
205:检测是否满足目标组件的拔出条件;
由于运行目标组件时可能存在目标组件失效的情形,因此,可预先定义运行目标组件时的拔出条件,并在运行目标组件后,检测当前是否满足运行目标组件时的拔出条件,从而根据检测结果采取后续的处理步骤,以保证应用程序的稳定性。本实施例不对检测是否满足目标组件的拔出条件的方式作具体限定,包括但不限于如下两种检测方式:
第一种检测方式:检测是否获取到目标组件的拔出指令;若获取到目标组件的拔出指令,则满足目标组件的拔出条件。
针对第一种检测方式,本实施例不对检测是否获取到目标组件的拔出指令的方式作具体限定,包括但不限于:预先在加载目标组件的应用程序中设置目标组件卸载选项,并以预设的交互形式在应用程序的交互界面中显示。当获取到用户根据交互界面中的卸载选项输入的卸载目标组件指令后,将获取到的卸载目标组件指令作为目标组件的拔出指令。其中,交互形式可以根据需求预先设定,本实施例不对预设的交互形式进行限定。
例如,应用程序的交互界面中可以用列表的形式显示当前已经加载的目标组件,并在每个目标组件对应的列表项后设置一个卸载选项,如用按钮的形式。当检测到用户点击某个目标组件对应的卸载选项按钮时,则确定获取到了该目标组件的拔出指令。
通过上述过程,在获取到目标组件的拔出指令后,则检测结果为满足目标组件的拔出条件。
第二种检测方式:检测当前运行环境是否满足目标组件的运行需求;若当前运行环境未满足目标组件的运行需求,则满足目标组件的拔出条件。
针对第二种检测方式,目标组件的运行需求可以为目标组件所需的运行资源,本实施例不对目标组件运行需求的内容作具体限定。例如,运行目标组件需要的内存资源等。本实施例不对检测当前运行环境是否满足目标组件的运行需求的方式作具体限定,包括但不限于:将目标组件的运行需求与当前运行环境进行比较,根据比较结果确定当前运行环境是否满足目标组件的运行需求。
例如,以目标组件的运行需求为需要一定的内存资源为例,若当前运行环境剩下的可用内存资源为50M(兆),而运行目标组件需要的内存资源为100M。将两者进行比较可知,当前运行环境剩下的可用内存资源是小于运行目标组件需要的内存资源的,则此时可确定当前运行环境未满足目标组件的运行需求。
通过上述过程,在检测到当前运行环境未满足目标组件的运行需求后,则检测结果为满足目标组件的拔出条件。
206:如果检测到满足目标组件的拔出条件,则停止运行目标组件,并释放目标组件对应的组件资源。
通过上述步骤205,若检测到满足目标组件的拔出条件,则可停止运行目标组件,并释放目标组件对应的组件资源。其中,释放的组件资源为上述步骤204中初始化目标组件时对应的组件资源,释放时可以释放初始化时对应的全部组件资源,也可以释放部分组件资源,本实施例对此不作具体限定。
另外,由于在上述步骤204中,在运行目标组件后,可以为每个运行的目标组件设置一个运行标识。因此,在本步骤中可以将已停止运行的目标组件对应的运行标识清除,本实施例对此不作具体限定。当***检测到原来在运行的目标组件对应的运行标识被清除后,可以使用该目标组件的被替代功能,以保证应用程序的自身逻辑,具体过程可以参考上述步骤204中的内容,本实施例对此不作具体限定。
本实施例提供的方法,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
本发明实施例提供了一种组件管理装置,该装置用于执行上述实施例提供的组件管理方法。参见图3,该装置包括:
确定模块301,用于根据当前运行的应用程序确定需要加载的目标组件;
获取模块302,用于获取目标组件对应的库文件;
加载模块303,用于根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。
作为一种可选实施例,参见图4,该装置还包括:
存储模块304,用于预先在本地保存各个组件的库文件;
获取模块302,用于从本地预先存储的库文件中获取目标组件对应的库文件。
作为一种可选实施例,参见图5,该装置还包括:
初始化模块305,用于当成功加载目标组件时,初始化目标组件对应的组件资源;
运行模块306,用于在组件资源初始化成功后,运行目标组件。
作为一种可选实施例,参见图6,该装置还包括:
处理模块307,用于在未成功加载目标组件时,使用目标组件的被替代功能。
作为一种可选实施例,参见图7,该装置还包括:
检测模块308,用于检测是否满足目标组件的拔出条件;
停止模块309,用于当检测到满足目标组件的拔出条件时,则停止运行目标组件;
释放模块310,用于释放目标组件对应的组件资源。
作为一种可选实施例,检测模块308,用于检测是否获取到目标组件的拔出指令;若获取到目标组件的拔出指令,则满足目标组件的拔出条件。
作为一种可选实施例,检测模块308,用于检测当前运行环境是否满足目标组件的运行需求;若当前运行环境未满足目标组件的运行需求,则满足目标组件的拔出条件。
本实施例提供的装置,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
本实施例提供了一种终端,该终端可以用于执行上述各个实施例中提供的组件管理方法。参见图8,该终端800包括:
终端800可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行以下操作的指令:
根据当前运行的应用程序确定需要加载的目标组件;
获取目标组件对应的库文件;
根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
预先在本地保存各个组件的库文件;
获取目标组件对应的库文件,包括:
从本地预先存储的库文件中获取目标组件对应的库文件。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
如果成功加载目标组件,初始化目标组件对应的组件资源,并在组件资源初始化成功后,运行目标组件。
在第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
如果未成功加载所述目标组件,则使用所述目标组件的被替代功能。
在第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
检测是否满足目标组件的拔出条件;
如果检测到满足目标组件的拔出条件,则停止运行目标组件,并释放目标组件对应的组件资源。
在第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
检测是否获取到目标组件的拔出指令;
若获取到目标组件的拔出指令,则满足目标组件的拔出条件。
在第五种可能的实施方式作为基础而提供的第七种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
检测当前运行环境是否满足目标组件的运行需求;
若当前运行环境未满足目标组件的运行需求,则满足目标组件的拔出条件。
本发明提供的终端,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行实现组件管理方法,该方法包括:
根据当前运行的应用程序确定需要加载的目标组件;
获取目标组件对应的库文件;
根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述获取所述目标组件对应的库文件之前,还包括:
预先在本地保存各个组件的库文件;
获取目标组件对应的库文件,包括:
从本地预先存储的库文件中获取目标组件对应的库文件。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中之后,还包括:
如果成功加载目标组件,初始化目标组件对应的组件资源,并在组件资源初始化成功后,运行目标组件。
在第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中之后,还包括:
如果未成功加载所述目标组件,则使用所述目标组件的被替代功能。
在第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述运行所述目标组件之后,还包括:
检测是否满足目标组件的拔出条件;
如果检测到满足目标组件的拔出条件,则停止运行目标组件,并释放目标组件对应的组件资源。
在第五种可能的实施方式作为基础而提供的第六种可能的实施方式中所述检测是否满足所述目标组件的拔出条件,包括:
检测是否获取到目标组件的拔出指令;
若获取到目标组件的拔出指令,则满足目标组件的拔出条件。
在第五种可能的实施方式作为基础而提供的第七种可能的实施方式中所述检测是否满足所述目标组件的拔出条件,包括:
检测当前运行环境是否满足目标组件的运行需求;
若当前运行环境未满足目标组件的运行需求,则满足目标组件的拔出条件。
本发明实施例提供的计算机可读存储介质,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
本发明实施例提供了一种图形用户接口,所述图形用户接口用在终端上,所述终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;所述图形用户接口包括:
根据当前运行的应用程序确定需要加载的目标组件;
获取目标组件对应的库文件;
根据目标组件对应的库文件将目标组件动态加载到当前运行的应用程序中。
本发明实施例提供的图形用户接口,通过确定需要加载的目标组件,获取目标组件对应的库文件,根据目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中。由于能够在应用程序运行时,根据需要动态加载组件,从而提高了组件的管理灵活性,降低了对应用程序的影响。
需要说明的是:上述实施例提供的组件管理装置在管理组件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组件管理装置与组件管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种组件管理方法,其特征在于,所述方法包括:
根据当前运行的应用程序确定需要加载的目标组件;
获取所述目标组件对应的库文件;
根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中;
如果成功加载所述目标组件,初始化所述目标组件对应的组件资源,并在组件资源初始化成功后,运行所述目标组件,其中,每个运行的目标组件对应一个运行标识,所述运行标识用于指示所述目标组件已经被成功加载和运行;
检测是否满足所述目标组件的拔出条件;
如果检测到满足所述目标组件的拔出条件,则停止运行所述目标组件,并释放所述目标组件对应的组件资源,清除已停止运行的目标组件对应的运行标识;
当检测到原来在运行的目标组件对应的运行标识被清除后,使用执行同种功能的组件或者应用程序或者***功能替代所述目标组件。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标组件对应的库文件之前,还包括:
预先在本地保存各个组件的库文件;
所述获取所述目标组件对应的库文件,包括:
从本地预先存储的库文件中获取所述目标组件对应的库文件。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中之后,还包括:
如果未成功加载所述目标组件,则使用所述目标组件的被替代功能。
4.根据权利要求1所述的方法,其特征在于,所述检测是否满足所述目标组件的拔出条件,包括:
检测是否获取到所述目标组件的拔出指令;
若获取到所述目标组件的拔出指令,则满足所述目标组件的拔出条件。
5.根据权利要求1所述的方法,其特征在于,所述检测是否满足所述目标组件的拔出条件,包括:
检测当前运行环境是否满足所述目标组件的运行需求;
若所述当前运行环境未满足所述目标组件的运行需求,则满足所述目标组件的拔出条件。
6.一种组件管理装置,其特征在于,所述装置包括:
确定模块,用于根据当前运行的应用程序确定需要加载的目标组件;
获取模块,用于获取所述目标组件对应的库文件;
加载模块,用于根据所述目标组件对应的库文件将所述目标组件动态加载到所述当前运行的应用程序中;
初始化模块,用于当成功加载所述目标组件时,初始化所述目标组件对应的组件资源;
运行模块,用于在组件资源初始化成功后,运行所述目标组件,每个运行的目标组件对应一个运行标识,所述运行标识用于指示所述目标组件已经被成功加载和运行;
检测模块,用于检测是否满足所述目标组件的拔出条件;
停止模块,用于当检测到满足所述目标组件的拔出条件时,停止运行所述目标组件,并释放所述目标组件对应的组件资源,清除已停止运行的目标组件对应的运行标识;
替代模块,用于当检测到原来在运行的目标组件对应的运行标识被清除后,使用执行同种功能的组件或者应用程序或者***功能替代所述目标组件。
7.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
存储模块,用于预先在本地保存各个组件的库文件;
所述获取模块,用于从本地预先存储的库文件中获取所述目标组件对应的库文件。
8.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
处理模块,用于在未成功加载所述目标组件时,使用执行同种功能的组件或者应用程序或者***功能替代所述目标组件。
9.根据权利要求6所述的装置,其特征在于,所述检测模块,用于检测是否获取到所述目标组件的拔出指令;若获取到所述目标组件的拔出指令,则满足所述目标组件的拔出条件。
10.根据权利要求6所述的装置,其特征在于,所述检测模块,用于检测当前运行环境是否满足所述目标组件的运行需求;若所述当前运行环境未满足所述目标组件的运行需求,则满足所述目标组件的拔出条件。
11.一种终端,其特征在于,所述终端包括一个或一个以上的处理器和一个或一个以上存储有程序的存储器或存储介质,当所述程序被所述一个或一个以上的处理器执行时,实现权利要求1-5任一项所述的组件管理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现权利要求1至5任一项所述的组件管理方法。
CN201410353837.4A 2014-07-23 2014-07-23 组件管理方法及装置 Active CN105278942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410353837.4A CN105278942B (zh) 2014-07-23 2014-07-23 组件管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410353837.4A CN105278942B (zh) 2014-07-23 2014-07-23 组件管理方法及装置

Publications (2)

Publication Number Publication Date
CN105278942A CN105278942A (zh) 2016-01-27
CN105278942B true CN105278942B (zh) 2020-11-06

Family

ID=55148004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410353837.4A Active CN105278942B (zh) 2014-07-23 2014-07-23 组件管理方法及装置

Country Status (1)

Country Link
CN (1) CN105278942B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132844B (zh) * 2016-12-01 2020-11-10 腾讯科技(深圳)有限公司 插件下载方法及装置
CN108737324B (zh) * 2017-04-13 2021-03-02 腾讯科技(深圳)有限公司 生成人工智能服务组件的方法、装置及相关设备、***
CN112148342A (zh) * 2019-06-27 2020-12-29 北京达佳互联信息技术有限公司 组件配置方法、装置、电子设备和存储介质
CN111258555A (zh) * 2020-01-15 2020-06-09 上海知白智能科技有限公司 软件实现装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999352A (zh) * 2012-11-15 2013-03-27 中国科学院声学研究所 一种嵌入式***组件加载方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915511B2 (en) * 2001-05-22 2005-07-05 Sun Microsystems, Inc. Dynamic class reloading mechanism
CN101989203A (zh) * 2010-01-05 2011-03-23 深圳中兴网信科技有限公司 软件组件管理***
CN103294457B (zh) * 2012-02-27 2017-02-01 百度在线网络技术(北京)有限公司 动态替换主程序中c/c++函数的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999352A (zh) * 2012-11-15 2013-03-27 中国科学院声学研究所 一种嵌入式***组件加载方法

Also Published As

Publication number Publication date
CN105278942A (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
US9800609B2 (en) Method, device and system for detecting malware in a mobile terminal
US10853437B2 (en) Method and apparatus for invoking application programming interface
CN107734616B (zh) 应用程序关闭方法、装置、存储介质和电子设备
CN103544033B (zh) 应用程序回退方法、装置及相关设备
CN106775833B (zh) 设备驱动程序加载方法、终端及***
US20160315999A1 (en) Device and method for associating applications
CN106502703B (zh) 一种函数调用方法和装置
CN106775828B (zh) 应用程序安装方法及装置、计算机设备
CN108039963B (zh) 一种容器配置方法、装置及存储介质
CN103473163A (zh) 应用程序检测方法及装置
WO2015078342A1 (en) Method for acquiring memory information, and terminal
US20170097725A1 (en) Device and method for starting mobile terminal application and mobile terminal
EP2869604B1 (en) Method, apparatus and device for processing a mobile terminal resource
EP2979177A1 (en) Method for controlling process of application and computer system
CN106919458B (zh) Hook目标内核函数的方法及装置
CN105278942B (zh) 组件管理方法及装置
CN107015866B (zh) 一种数据处理方法及装置
CN106095423B (zh) 提供浏览服务的方法、终端及服务器
EP3129883B1 (en) Method and apparatus for repairing dynamic link library file
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
US11150913B2 (en) Method, device, and terminal for accelerating startup of application
CN106709330B (zh) 记录文件执行行为的方法及装置
CN107967203B (zh) 基于可执行文件的函数判定方法及装置
EP2869233A1 (en) Method, device and terminal for protecting application program
CN105528220B (zh) 加载动态共享对象的方法和装置

Legal Events

Date Code Title Description
C06 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