一种基于安卓系统的功能插件的实现方法及其系统的制作方法

文档序号:6544403阅读:168来源:国知局
一种基于安卓系统的功能插件的实现方法及其系统的制作方法
【专利摘要】本发明提供了一种基于安卓系统的功能插件的实现方法,包括:所述组件或自定义view将所述资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器;所述组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;所述组件或自定义view将功能插件中对应的类作为其在功能插件的代理,将生命周期函数委托给RemoteProxy远程代理;实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态,解决了安卓系统四大组件和自定义view插件化问题。本发明还提供了一种基于安卓系统的功能插件的系统。
【专利说明】一种基于安卓系统的功能插件的实现方法及其系统
【技术领域】
[0001]本发明涉及安卓系统插件领域,尤其涉及一种基于安卓系统的功能插件的实现方法及其系统。
【背景技术】
[0002]随着终端设备的硬件配置越来越高,在软件开发中,为了方便对软件进行功能扩展,往往采用插件方式进行开发,将软件所能实现的一个一个功能封装在插件中,最后将各个插件加载到主程序中。但早期的安卓系统2.3,无法加载插件中复杂函数,特别是安卓四大组件和自定义view的插件化问题,安卓四大组件的生命周期由系统管理并需要定义在清单配置文件中,在插件里实现四大组件无办法被系统识别。

【发明内容】

[0003]针对现有技术的不足,本发明的目的在于提供一种解决安卓系统四大组件和自定义view插件化问题的基于安卓系统的功能插件的实现方法。
[0004]本发明的另外一个目的在于提供一种基于安卓系统的功能插件的系统。
[0005]为实现上述目的,本发明采用的技术方案如下:一种基于安卓系统的功能插件的实现方法,用以在安卓系统中加载安卓四大组件或自定义view的功能插件,所述安卓四大组件为:Activity显示界面、Service月艮务、ContentProvider内容提供者、BroadcastReceiver广播接收器,所述方法包括以下步骤:
[0006]S1、功能插件储存于资源目录中;
[0007]S2、功能插件初始化运行,所述组件或自定义view将所述资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器;
[0008]S3、所述组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;
[0009]S4、所述组件或自定义view将步骤S3中功能插件中对应的类作为所述组件或自定义view在功能插件的代理,将所述组件或自定义view的生命周期函数委托给RemoteProxy远程代理;
[0010]S5、实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态。
[0011]进一步,所述方法还包括以下步骤:
[0012]所述组件或自定义view补充实现其超类的生命周期函数,并将本身的生命周期函数的实现委托给RemoteProxy远程代理;
[0013]所述RemoteProxy远程代理在其所获得的生命周期函数中调用已有实例的补充实现函数来组建实例超类生命函数,以实现间接对所述组件或自定义view的超类生命函数的调用。
[0014]进一步,所述方法还包括:生成功能插件的配置文件,所述配置文件中包括功能插件的调用接口 ;所述组件或自定义view通过调用接口连接功能插件。
[0015]为实现本发明的另一目的,本发明还采用如下技术方案:一种基于安卓系统的功能插件的系统,用以在安卓系统中加载安卓四大组件和自定义view的功能插件,所述安卓四大组件为:Activity显示界面、Service服务、Content Provider内容提供者、BroadcastReceiver广播接收器,该系统包括:
[0016]功能插件,储存于资源目录中;
[0017]类加载器,功能插件初始化运行时,由组件或自定义view为每个功能插件所建立的;
[0018]RemoteProxy远程代理,用于获取组件或自定义view的生命周期函数,实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态;
[0019]组件或自定义view,用于将所述资源目录中存储的每个功能插件读取到内存中,并使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;将功能插件中对应的类作为组件或自定义view在功能插件的代理,将生命周期函数委托给RemoteProxy远程代理。
[0020]进一步,所述系统还包括:所述组件或自定义view补充实现其超类的生命周期函数,并将本身的生命周期函数的实现委托给RemoteProxy远程代理;
[0021]所述RemoteProxy远程代理在其所获得的生命周期函数中调用已有实例的补充实现函数来组建实例超类生命函数,以实现间接对所述组件或自定义view的超类生命函数的调用。
[0022]进一步,所述系统还包括:配置文件生成模块,用于生成功能插件的配置文件,所述配置文件中包括功能插件的调用接口 ;所述组件或自定义view通过调用接口连接功能插件。
[0023]相对于现有技术,本发明所述的技术方案通过功能插件储存于资源目录中,功能插件初始化运行,所述组件或自定义view将所述资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器;所述组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;所述组件或自定义view将功能插件中对应的类作为所述组件或自定义view在功能插件的代理,将所述组件或自定义view的生命周期函数委托给RemoteProxy远程代理;实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态,解决了安卓系统四大组件和自定义view插件化问题。
[0024]为了充分地了解本发明的目的、特征和效果,以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明。
【专利附图】

【附图说明】
[0025]图1是本发明基于安卓系统的功能插件的系统示意图;
[0026]图2是本发明基于安卓系统的功能插件的方法流程图。
【具体实施方式】[0027]下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
[0028]如图1所示,一种基于安卓系统的功能插件的系统,用以在安卓系统中加载安卓四大组件和自定义view的功能插件,所述安卓四大组件为=Activity显示界面、Service服务、ContentProvider内容提供者、BroadcastReceiver广播接收器,该系统包括:
[0029]功能插件,储存于资源目录中;
[0030]类加载器,功能插件初始化运行时,由组件或自定义view为每个功能插件所建立的;
[0031]RemoteProxy远程代理,用于获取组件或自定义view的生命周期函数,实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态;
[0032]组件或自定义view,用于将所述资源目录中存储的每个功能插件读取到内存中,并使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;将功能插件中对应的类作为组件或自定义view在功能插件的代理,将生命周期函数委托给RemoteProxy远程代理。
[0033]配置文件生成模块,用于生成功能插件的配置文件,所述配置文件中包括功能插件的调用接口 ;所述组件或自定义view通过调用接口连接功能插件。
[0034]当所述功能插件中对应的类为超类时,所述组件或自定义view补充实现其超类的生命周期函数,并将本身的生命周期函数的实现委托给RemoteProxy远程代理;所述RemoteProxy远程代理在其所获得的生命周期函数中调用已有实例的补充实现函数来组建实例超类生命函数,以实现间接对所述组件或自定义view的超类生命函数的调用。
[0035]以Activity组件为例:
[0036]主程序的Activity组件放置在代码目录data/data下;功能插件放置在res/raw下;
[0037]主程序的Activity组件将res/raw下存储的功能插件读取到内存中,为每个功能插件对应的代理类创建并使用自定义的类加载器ClassLoader ;
[0038]主程序的Activity组件使用类加载器ClassLoader将功能插件中对应的类通过反射调用方法构造实例,并将自身对象传递给实例;
[0039]主程序的Activity组件将功能插件中对应的类作为其在功能插件的代理ProxyActivity,将生命周期函数委托给RemoteProxy远程代理;
[0040]实例通过RemoteProxy远程代理使得功能插件中对应类的生命周期函数,以响应Activity组件生命周期的不同状态。
[0041]如图2所示,一种基于安卓系统的功能插件的实现方法,包括以下步骤:
[0042]SlOl:功能插件初始化运行,组件或自定义view将资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器;
[0043]S102:组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;
[0044]S103:组件或自定义view将功能插件中对应的类作为其在功能插件的代理,将生命周期函数委托给RemoteProxy远程代理;[0045]S104:实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态。
[0046]本发明所述的技术方案通过功能插件储存于资源目录中,功能插件初始化运行,所述组件或自定义view将所述资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器;所述组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;所述组件或自定义view将功能插件中对应的类作为所述组件或自定义view在功能插件的代理,将所述组件或自定义view的生命周期函数委托给RemoteProxy远程代理;实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态,解决了安卓系统四大组件和自定义view插件化问题。
[0047]以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本【技术领域】中技术人员依本发明构思在现有技术基础上通过逻辑分析、推理或者根据有限的实验可以得到的技术方案,均应该在由本权利要求书所确定的保护范围之中。
【权利要求】
1.一种基于安卓系统的功能插件的实现方法,用以在安卓系统中加载安卓四大组件或自定义view的功能插件,所述安卓四大组件为:Activity显示界面、Service服务、ContentProvider内容提供者、BroadcastReceiver广播接收器,其特征在于,所述方法包括以下步骤: 51、功能插件储存于资源目录中; 52、功能插件初始化运行,所述组件或自定义view将所述资源目录中存储的功能插件读取到内存中,为每个功能插件建立类加载器; 53、所述组件或自定义view使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例; 54、所述组件或自定义view将步骤S3中功能插件中对应的类作为所述组件或自定义view在功能插件的代理,将所述组件或自定义view的生命周期函数委托给RemoteProxy远程代理; 55、实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态。
2.如权利要求1所述的功能插件的实现方法,其特征在于,所述方法还包括以下步骤: 所述组件或自定义view补充实现其超类的生命周期函数,并将本身的生命周期函数的实现委托给RemoteProxy远程代理; 所述RemoteProxy远程代理在其所获得的生命周期函数中调用已有实例的补充实现函数来组建实例超类生命函数,以实现间接对所述组件或自定义view的超类生命函数的调用。
3.如权利要求1所述的功能插件的实现方法,其特征在于,所述方法还包括: 生成功能插件的配置文件,所述配置文件中包括功能插件的调用接口 ;所述组件或自定义view通过调用接口连接功能插件。
4.一种基于安卓系统的功能插件的系统,用以在安卓系统中加载安卓四大组件和自定义view的功能插件,所述安卓四大组件为=Activity显示界面、Service服务、ContentProvider内容提供者、BroadcastReceiver广播接收器,其特征在于,该系统包括: 功能插件,储存于资源目录中; 类加载器,功能插件初始化运行时,由组件或自定义view为每个功能插件所建立的;RemoteProxy远程代理,用于获取组件或自定义view的生命周期函数,实例通过RemoteProxy远程代理使功能插件获得对应类的生命周期函数,以响应所述组件或自定义view生命周期的不同状态; 组件或自定义view,用于将所述资源目录中存储的每个功能插件读取到内存中,并使用类加载器将功能插件中对应的类名反射构造实例,并将自身对象传递给实例;将功能插件中对应的类作为组件或自定义view在功能插件的代理,将生命周期函数委托给RemoteProxy远程代理。
5.如权利要求4所述的功能插件的系统,其特征在于,所述系统还包括: 所述组件或自定义view补充实现其超类的生命周期函数,并将本身的生命周期函数的实现委托给RemoteProxy远程代理; 所述RemoteProxy 远程代理在其所获得的生命周期函数中调用已有实例的补充实现函数来组建实例超类生命函数,以实现间接对所述组件或自定义view的超类生命函数的调用。
6.如权利要求4所述的功能插件的系统,其特征在于,所述系统还包括: 配置文件生成模块,用于生成功能插件的配置文件,所述配置文件中包括功能插件的调用接口 ;所述组件或自定义view通过调用接口连接功能插件。
【文档编号】G06F9/44GK103927180SQ201410161342
【公开日】2014年7月16日 申请日期:2014年4月21日 优先权日:2014年4月21日
【发明者】邓裕强, 黄爱华, 梁国盛, 区永强, 欧经文, 李存宽, 周超红 申请人:广州市久邦数码科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1