应用安装、运行方法及装置的制造方法

文档序号:8395749阅读:164来源:国知局
应用安装、运行方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网应用领域,特别是涉及一种应用安装方法及装置,以及一种应用运行方法及装置。
【背景技术】
[0002]安卓(Android)系统因其开放性、兼容性等特性已经成为目前智能终端最常用的操作系统之一。Android系统的组织架构因其拥有很好的组件间以及应用间通信的机制,可以很方便的将应用插件化、功能独立化。但是,这些机制仅限于已安装的应用。
[0003]目前,Android系统中传统的插件化技术规定,每个插件都需要以独立应用的形式安装在用户的操作系统中。但是,如果每个插件都需要安装才能使用,随着用户需求的增加以及网络本身的发展,操作系统需要安装的插件越来越多,随着插件的增长,应用数会逐渐增多,占用大量的资源,容易造成操作系统运行缓慢甚至过载。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用安装方法、应用运行方法和相应的装置。
[0005]基于本发明的一个方面,本发明实施例提供了一种应用安装方法,包括:
[0006]根据需求确定需实现的多类功能,其中,所述多类功能包括主功能和辅助功能;
[0007]为所述主功能生成主应用,以及,为各类辅助功能生成独立的插件;
[0008]安装所述主应用,其中,所述主应用能够根据需求调用不同的插件,以实现不同的辅助功能。
[0009]可选地,在所述主应用安装结束之后,还包括:
[0010]在前台显示性地加载具备辅助功能的各插件;或者
[0011]在后台静默加载具备辅助功能的各插件。
[0012]可选地,所述加载具备辅助功能的各插件,包括:
[0013]利用所述主应用的类加载器加载各插件的插件代码;
[0014]将各插件的所述插件代码加载到内存中,为各插件生成本插件独立的类加载器;
[0015]利用各插件的类加载器对应加载各插件资源。
[0016]可选地,各插件的插件代码和资源被加载后用于在插件被调用时模拟插件运行环境;以及
[0017]各插件加载结束后,由插件管理器对插件进行统一命名以及管理。
[0018]基于本发明的另一个方面,本发明实施例还提供了一种应用运行方法,包括:
[0019]开启具备主功能的主应用,其中,所述主应用能够调用具备除所述主功能外的其他辅助功能的插件;
[0020]在所述主应用的界面中根据需求选择辅助功能对应的插件标识;
[0021]利用所述主应用调用选择的插件标识所对应的插件,以实现对应的辅助功能。
[0022]可选地,利用所述主应用调用插件,包括:
[0023]在所述主应用中建立托管插件组件,其中,所述托管插件组件能够模拟实现同一辅助功能、且嵌入到主应用中的非独立插件被调用时所产生事件;
[0024]当监测到任一事件发生时,所述托管插件组件被触发将发生的事件转至所述非独立插件具备的事件处理函数中进行处理。
[0025]可选地,当所述插件为活动Activity时,
[0026]所述托管插件组件为代理Activity,能够模拟Activity生命周期和Activity事件;
[0027]当Activity事件发生时,所述代理Activity通过反射调用将Activity事件传递到插件Activity事件对应的处理函数中进行处理。
[0028]可选地,所述托管插件组件通过如下步骤实现:
[0029]统一插件架构中同类Activity的父类;
[0030]将统一的父类替换为特定的PluginActivity ;
[0031]当子类被调用时,由所述PluginActivity将子类的调用转发至所述托管插件组件。
[0032]可选地,所述托管插件组件相对于其对应的插件是透明的。
[0033]可选地,利用所述主应用调用插件,还包括:
[0034]将各插件的资源对象和类加载器强行注入到所述主应用调用各插件所使用的上下文环境中,以供所述主应用调用各插件。
[0035]可选地,利用所述主应用调用插件,包括:
[0036]当所述主应用调用一个插件时,利用反射将所述主应用的上下文的资源对象和类加载器替换为该插件的资源对象和类加载器;
[0037]利用该插件的资源对象和类加载器分别加载插件的资源和代码,执行插件的辅助功能。
[0038]可选地,利用所述主应用调用插件,包括:
[0039]所述主应用通过设置各插件上的插件接口与各插件进行通信,以实现对各插件的调用。
[0040]可选地,应用运行方法还包括:
[0041]当所述主应用同时调用多个插件时,
[0042]当其中任一个插件发出命令时,所述插件管理器接收所述命令并将所述命令分发至所述插件管理器管理的所有插件,其中,对所述命令感兴趣的插件对其进行处理,产生应答结果;
[0043]所述插件管理器接收对所述命令的应答结果,并将其返回至发出命令的插件。
[0044]可选地,所述命令在传递过程中使用系统的Intent类封装。
[0045]可选地,在所述主应用的运行过程中,根据需求可增删插件数量或种类。
[0046]可选地,增删插件的命令由云端远程控制。
[0047]可选地,所述插件在所述主应用界面中的呈现形式包括下列至少之一:
[0048]卡片;
[0049]弹窗;
[0050]滚屏。
[0051]可选地,当所述主应用为搜索应用时,
[0052]辅助功能包括下列至少之一:
[0053]小说;
[0054]扫码;
[0055]音乐;
[0056]视频;
[0057]新闻;
[0058]皮肤。
[0059]基于本发明的又一个方面,本发明实施例还提供了一种应用安装装置,包括:
[0060]功能确定模块,适于根据需求确定需实现的多类功能,其中,所述多类功能包括主功能和辅助功能;
[0061]分类配置模块,适于为所述主功能生成主应用,以及,为各类辅助功能生成独立的插件;
[0062]安装模块,适于安装所述主应用,其中,所述主应用能够根据需求调用不同的插件,以实现不同的辅助功能。
[0063]可选地,应用安装装置还包括:
[0064]插件加载模块,适于在所述主应用安装结束之后,在前台显示性地加载具备辅助功能的各插件;或者,在后台静默加载具备辅助功能的各插件。
[0065]可选地,所述插件加载模块还用于:
[0066]利用所述主应用的类加载器加载各插件的插件代码;
[0067]将各插件的所述插件代码加载到内存中,为各插件生成本插件独立的类加载器;
[0068]利用各插件的类加载器对应加载各插件资源。
[0069]可选地,各插件的插件代码和资源被加载后用于在插件被调用时模拟插件运行环境;以及
[0070]各插件加载结束后,由插件管理器对插件进行统一命名以及管理。
[0071]基于本发明的又一个方面,本发明实施例还提供了一种应用运行装置,包括:
[0072]启动模块,适于开启具备主功能的主应用,其中,所述主应用能够调用具备除所述主功能外的其他辅助功能的插件;
[0073]选择模块,适于在所述主应用的界面中根据需求选择辅助功能对应的插件标识;
[0074]调用模块,适于利用所述主应用调用选择的插件标识所对应的插件,以实现对应的辅助功能。
[0075]可选地,所述调用模块还用于:
[0076]在所述主应用中建立托管插件组件,其中,所述托管插件组件能够模拟实现同一辅助功能、且嵌入到主应用中的非独立插件被调用时所产生事件;
[0077]当监测到任一事件发生时,所述托管插件组件被触发将发生的事件转至所述非独立插件具备的事件处理函数中进行处理。
[0078]可选地,当所述插件为活动Activity时,
[0079]所述托管插件组件为代理Activity,能够模拟Activity生命周期和Activity事件;
[0080]当Activity事件发生时,所述代理Activity通过反射调用将Activity事件传递到插件Activity事件对应的处理函数中进行处理。
[0081]可选地,所述托管插件组件通过如下步骤实现:
[0082]统一插件架构中同类Activity的父类;
[0083]将统一的父类替换为特定的PluginActivity ;
[0084]当子类被调用时,由所述PluginActivity将子类的调用转发至所述托管插件组件。
[0085]可选地,所述托管插件组件相对于其对应的插件是透明的。
[0086]可选地,所述调用模块还用于:
[0087]将各插件的资源对象和类加载器强行注入到所述主应用调用各插件所使用的上下文环境中,以供所述主应用调用各插件。
[0088]可选地,所述调用模块还用于:
[0089]当所述主应用调用一个插件时,利用反射将所述主应用的上下文的资源对象和类加载器替换为该插件的资源对象和类加载器;
[0090]利用该插件的资源对象和类加载器分别加载插件的资源和代码,执行插件的辅助功能。
[0091]在本发明实施例中,将需求对应的功能分为两类,一类是由主应用实现
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1