一种安卓终端应用程序的插件化管理方法技术

技术编号:17878527 阅读:68 留言:0更新日期:2018-05-06 00:27
本发明专利技术提供了一种安卓终端应用程序的插件化管理方法,将插件字节码资源路径添加到系统资源路径集合中,保证插件可以直接使用自身的资源文件而不依赖于宿主;支持插件同时启动多个Service组件;支持插件使用第三方的动态共享库文件;插件管理器可以进行自动更新,而不依赖于宿主应用程序。

A plug-in management method for Android terminal application

The invention provides a plug-in management method for the Android terminal application, adding the plug-in bytecode resource path to the system resource path set, ensuring that the plug-in can directly use its own resource file without relying on the host; support the plug-in to start multiple Service components at the same time; support the plug-in to use the third party movement. State shared library file; plug-in manager can automatically update without relying on the host application.

【技术实现步骤摘要】
一种安卓终端应用程序的插件化管理方法
本专利技术属于智能终端
,具体涉及一种安卓终端应用程序的插件化管理方法。
技术介绍
伴随着Android操作系统的问世,移动嵌入式设备的影响力发生了天翻地覆的变化。当今用户对基于Android系统的终端应用更是有着越来越多的依赖,而应用本身的功能也在不断地完善与扩展。因此市面上的许多Android应用都会变得十分臃肿,这给应用功能的扩展造成了不便。使用插件技术,可以让一个已经安装在Android系统的应用程序(宿主)去运行那些并没有被Android系统识别安装的APK文件。这样大大提高了应用程序扩展与更新的灵活性。目前常见的Android插件技术,在校验插件的合法性之后,解析插件并在宿主程序中创建一个沙箱环境,使用宿主本身以及系统的资源管理器,并通过反射的方式来调用插件中的程序及其方法,启动插件。现有技术中的上述技术方案存在如下缺点:一是插件资源管理器依赖于宿主程序,无法独立使用插件文件内部的相关资源文件;二是不支持插件同时启动多个Service组件;三是插件管理器本身嵌入在宿主应用APK中,不支持自身的动态更新,需与宿主应用程序一同更新。
技术实现思路
为克服上述现有技术的不足,本专利技术提供了一种安卓终端应用程序的插件化管理方法。1.启动宿主应用程序,检查插件管理器的版本,通过网络从服务器端下载最新版本的插件管理器,校验其完整性。2.初始化插件管理器,在Android系统创建Activity组件和Service组件时进行拦截操作,替换指定的类加载器。3.装载插件,首先从服务器端下载最新版本的插件APK文件,校验完整性,校验通过后启动独立线程来进行异步装载。4.启动运行插件,使用插件相关功能包含以下几个方面:运行插件界面,用户可以通过触摸、按键、语音输入等行为来与之进行交互;运行一个或多个Service组件,来独立完成一些逻辑任务,并将反馈信息通过界面交互来显示给用户;装载运行插件内部预制的动态共享库文件,进行一些更高效的运算操作;调用插件应用程序封装的功能函数,可以通过多线程的方式来与宿主应用进行协作通信。从而实现将插件字节码资源路径添加到系统资源路径集合中,保证插件可以直接使用自身的资源文件而不依赖于宿主;支持插件同时启动多个Service组件;支持插件使用第三方的动态共享库文件;插件管理器可以进行自动更新,而不依赖于宿主应用程序。所述安卓终端应用程序的插件化管理方法具体包括:S101:启动宿主应用程序,建立Android应用的沙盒进程;S102:读取宿主应用中的插件管理器版本,并向服务器端发送网络请求来上传该版本值;S103:接收服务器端下发的插件管理器的更新数据;S104:判断是否需要更新插件管理器;如果判断结果为需要更新,则执行S105,如果判断结果为不需要更新,则进入步骤S107;S105:宿主应用下载插件管理器;S106:判断所下载插件管理器完整性是否正确,如果判断完整性正确则执行S107;如果判断完整性不正确,则返回S105;S107:初始化插件管理器;S108:检查宿主应用中的插件版本;S109:判断是否需要更新插件,如果判断结果为需要更新,则进入步骤S110,如果判断结果为不需要更新,则进入步骤S112;S110:宿主应用下载插件APK文件;S111:判断插件是否下载成功,如果判断结果为下载成功,则进入步骤S112,如果判断结果为下载不成功,则重新执行步骤S110;S112:装载插件,初始化插件的资源管理器和类加载器;根据本专利技术的一个优选实施方式,其中插件的类加载器,会优先查找与插件包名相关的类文件;S113:用户使用插件,通过插件来实现具体的应用功能;S114:结束相关操作,退出宿主应用程序。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1示出了根据本专利技术的一个实施例的插件化管理流程图;图2示出了根据本专利技术的一个实施例的初始化插件管理器流程图;图3示出了根据本专利技术的一个实施例的进一步的插件化管理流程图。具体实施方式为更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的安卓终端应用程序的插件化管理方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。本专利技术所使用的术语如下:Android:中文译为安卓,一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能终端和平板电脑,由Google公司和开放终端联盟领导及开发;APK:是一种Android操作系统上的应用程序安装文件格式,其英文全称为“Androidapplicationpackage”;Activity组件:是指Android系统中的负责创建视窗显示界面的应用组件;Service组件:是指Android系统中没有用户界面的在后台运行执行耗时操作的应用组件。在本专利技术的一个具体实施方式中,所述插件化管理方法具体包括:S101:启动宿主应用程序,建立Android应用的沙盒进程;所述沙盒进程是指Android给每个APK进程分配一个单独的空间,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它);S102:读取宿主应用中的插件管理器版本,并向服务器端发送网络请求来上传该版本值;S103:接收服务器端下发的插件管理器的更新数据;根据本专利技术的一个优选实施方式,如果不需要进行更新,则收到的更新数据为空;S104:判断是否需要更新插件管理器;如果判断结果为需要更新,则执行S105,如果判断结果为不需要更新,则进入步骤S107;S105:宿主应用下载插件管理器;根据本专利技术的一个优选实施方式,完成下载插件管理器后,还将通过预定算法计算下载文件的完整性;S106:判断所下载插件管理器完整性是否正确,如果判断完整性正确则执行S107;如果判断完整性不正确,则返回S105;根据本专利技术的一个优选实施方式,可通过计算下载下来的插件管理器的md5值来进行完整性判断,将计算的插件管理器的md5值与服务器端下发的md5值进行比对,如两者一致则表示完整性,如不一致则表示完整性不正确;S107:初始化插件管理器;根据本专利技术的一个优选实施方式,在Android系统创建Activity组件和Service组件时进行拦截操作,替换指定的类加载器;S108:检查宿主应用中的插件版本;根据本专利技术的一个优选实施方式,首先读取插件版本,并向服务器端发送网络请求来检查插件是否需要更新,最后获取服务器端下发的更新数据;S109:判断是否需要更新插件,如果判断结果为需要更新,则进入步骤S110,如果判断结果为不需要更新,则进入步骤S112;S110:宿主应用下载插件APK文件;根据本专利技术的一个优选实施方式,可通过服务器端下发的url地址来下载插件到宿主应用的可读写目录中;S111:判断插件是否下载成功,如果判断结果为下载成功,则进入步骤S112,如果判断结果为下载不成功,则重新执行步骤S110;S112:装载插本文档来自技高网...
一种安卓终端应用程序的插件化管理方法

【技术保护点】
一种安卓终端应用程序插件化管理方法,其特征在于,包括:S101:启动宿主应用程序,建立Android应用的沙盒进程;S102:读取宿主应用中的插件管理器版本,并向服务器端发送网络请求来上传该版本值;S103:接收服务器端下发的插件管理器的更新数据;S104:判断是否需要更新插件管理器;如果判断结果为需要更新,则执行S105,如果判断结果为不需要更新,则进入步骤S107;S105:宿主应用下载插件管理器;S106:判断所下载插件管理器完整性是否正确,如果判断完整性正确则执行S107;如果判断完整性不正确,则返回S105;S107:初始化插件管理器;S108:检查宿主应用中的插件版本;S109:判断是否需要更新插件,如果判断结果为需要更新,则进入步骤S110,如果判断结果为不需要更新,则进入步骤S112;S110:宿主应用下载插件APK文件;S111:判断插件是否下载成功,如果判断结果为下载成功,则进入步骤S112,如果判断结果为下载不成功,则重新执行步骤S110;S112:装载插件,初始化插件的资源管理器和类加载器;根据本专利技术的一个优选实施方式,其中插件的类加载器,会优先查找与插件包名相关的类文件;S113:用户使用插件,通过插件来实现具体的应用功能;S114:结束相关操作,退出宿主应用程序。...

【技术特征摘要】
1.一种安卓终端应用程序插件化管理方法,其特征在于,包括:S101:启动宿主应用程序,建立Android应用的沙盒进程;S102:读取宿主应用中的插件管理器版本,并向服务器端发送网络请求来上传该版本值;S103:接收服务器端下发的插件管理器的更新数据;S104:判断是否需要更新插件管理器;如果判断结果为需要更新,则执行S105,如果判断结果为不需要更新,则进入步骤S107;S105:宿主应用下载插件管理器;S106:判断所下载插件管理器完整性是否正确,如果判断完整性正确则执行S107;如果判断完整性不正确,则返回S105;S107:初始化插件管理器;S108:检查宿主应用中的插件版本;S109:判断是否需要更新插件,如果判断结果为需要更新,则进入步骤S110,如果判断结果为不需要更新,则进入步骤S112;S110:宿主应用下载插件APK文件;S111:判断插件是否下载成功,如果判断结果为下载成功,则进入步骤S112,如果判断结果为下载不成功,则重新执行步骤S110;S112:装载插件,初始化插件的资源管理器和类加载器;根据本发明的一个优选实施方式,其中插件的类加载器,会优先查找与插件包名相关的类文件;S113:用户使用插件,通过插件来实现具体的应用功能;S114:结束相关操作,退出宿主应用程序。2.根据权利要求1所述的安卓终端应用程序插件化管理方法,其特征在于:所述接收服务器端下发的插件管理器的更新数据时,如果不需要进行更新,则收到的更新数据为空。3.根据权利要求1或2所述的安卓终端应用程序插件化管理方法,其特征在于:完成下载插件管理器后,还将通过预定算法计算下载文件的完整性。4.根据权利要求1-3任一所述的安卓终端应用程序插件化管理方法,其特征在于:可通过计算下载下来的插件管理器的md5值来进行完整性判断,将计算的插件管理器的md5值与服务器端下发的md5值进行比对,如两者一致则表示完整性,如不一致则表示完整性不正确。5.根据权利要求1-4任一所述的安卓终端应用程序插件...

【专利技术属性】
技术研发人员:徐基慧
申请(专利权)人:竞技世界北京网络技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1