一种应用实现方法及相关装置制造方法

文档序号:6493730阅读:154来源:国知局
一种应用实现方法及相关装置制造方法
【专利摘要】本发明实施例公开了一种应用实现方法及相关装置,用于在无需安装的情况下实现目标应用的功能。本发明实施例方法包括:获取目标应用的安装包;生成管理所述目标应用的代理界面;所述代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面。
【专利说明】一种应用实现方法及相关装置
【技术领域】
[0001]本发明涉及终端的应用领域,尤其涉及一种应用实现方法及相关装置。
【背景技术】
[0002]在终端的一些应用程序中,一个整体的应用程序会划分有主体功能和附属功能,在对该应用程序进行初始安装时,一般只安装其主体功能,对于附属功能,当用户有需要的时候使用时,再另行安装。
[0003]下列将应用程序的附属功能称作插件,现有技术对插件的功能实现主要包括以下两种:
[0004]现有技术一,在终端安装了应用程序的主体功能之后,通过因特网(Intent)下载该应用程序的插件安装包,待该插件安装包下载完成后,提示用户进行插件的安装,以实现该应用程序的附属功能。
[0005]现有技术一的缺点是需要对插件进行另外的安装,安装的过程需要对插件的功能另外的注册和授权,占用终端的数据存储空间,用户体验差。
[0006]现有技术二,在终端安装了应用程序的主体功能之后,该应用程序的安装包中已经包含了该插件的安装程序,在用户需要使用到该插件的功能时,通过后台运行插件安装程序的方式,实现隐蔽插件安装。
[0007]在现有技术二的插件实现方式中,由于应用程序的安装程序包含了各种插件的子安装包,因此,该应用程序的安装程序相对比较臃肿,在用户不需要该应用程序的附属功能的情况下,影响到对该应用程序进行初始下载和安装时的用户体验;并且,现有技术二还是需要对应用程序的插件进行安装(用户可能没发现,在后台运行),也会额外的占用终端的数据存储空间。

【发明内容】

[0008]本发明实施例提供了 一种应用实现方法及相关装置,用于在无需安装的情况下实现目标应用的功能。
[0009]本发明提供的应用实现方法,包括:获取目标应用的安装包;生成管理所述目标应用的代理界面;所述代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面。
[0010]本发明提供的应用实现装置,包括:
[0011]安装包获取单元,用于获取目标应用的安装包;
[0012]代理生成单元,用于生成管理所述目标应用的代理界面;
[0013]代理加载单元,用于通过代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,所述运行参数包括:终端的显示参数。
[0014]从以上技术方案可以看出,本发明实施例具有以下优点:
[0015]在本发明实施例中,先获取目标应用的安装包,生成管理所述目标应用的代理界面,再通过该代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,实现所述目标应用的功能;其中,本发明实施例无需对目标应用的安装包进行安装,代理界面作为终端和安装包之间的接口,在启动所述安装包所要实现的功能时,代理界面提供运行所述功能所必要的运行参数,并动态的将实现目标应用的代码和运行参数写在终端的内存上,使得终端无需安装该安装包就可以使用该安装包对应的目标应用。
【专利附图】

【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本发明实施例应用实现方法的一个流程示意图;
[0018]图2是本发明实施例应用实现方法的另一个流程示意图;
[0019]图3是本发明实施例应用实现方法的另一个流程示意图;
[0020]图4是本发明实施例应用实现方法的程序模块示意图;
[0021]图5是本发明实施例应用实现装置的逻辑结构示意图。
【具体实施方式】
[0022]本发明实施例提供了 一种应用实现方法及相关装置,用于在无需安装的情况下实现目标应用的功能。
[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]请参阅图1,本发明实施例中应用实现方法的一个实施例包括:
[0025]101、获取目标应用的安装包;
[0026]应用实现装置获取目标应用的安装包;具体的,所述目标应用可以为一种应用下的插件,也可以为一种控制平台下的应用(如,QQ游戏平台下的中国象棋)。
[0027]在实际应用中,上述的插件可以理解为一个应用程序中附属功能所对应的应用。上述的控制平台可以理解为与目标应用有相匹配的数据传输协议和接口的操作平台;该控制平台可以为该目标应用提供操作和显示的界面,而编写该目标应用的代码也可以被该控制平台所支持或识别。
[0028]可选的,目标应用的安装包可以在先就预存在终端的静态存储器中,则“获取目标应用的安装包”的操作就可以为读取所述安装包在终端中的存储地址;可选的,目标应用的安装包也可以即时的通过联网下载,如,当用户点击该目标应用时,若该目标应用未被安装且本地没有存有该目标应用的安装包,则终端联网并链接到该目标应用的安装包的下载地址,对该安装包进行下载。
[0029]102、生成管理所述目标应用的代理界面;
[0030]应用实现装置生成管理所述目标应用的代理界面;具体的,代理界面为终端和安装包之间的中介接口,当终端需要加载安装包内的功能时,提供实现该功能的必要的运行参数;如,目标应用的操作界面要在终端的显示屏幕上显示,则代理界面需要提供终端的显示参数(如,显示屏幕的尺寸和分辨率)。
[0031]所述代理界面是主程序中的普通界面,特征是界面上不带任何按钮、文字或图标的透明界面,并能够获得终端系统的所有信息。界面显示的内容从目标应用的安装包中获得。代理界面的创建、显示、隐藏和回收由终端系统管理。
[0032]103、使用终端的运行参数动态加载所述安装包。
[0033]代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面。
[0034]具体的,当终端需要加载安装包内的功能时,代理界面读取该安装包的内容,在终端侧获取实现该功能终端所需要提供的运行参数,再动态的将该安装包中的实现目标应用的代码和运行参数写在终端的内存(动态存储器)上,启动所述目标应用的操作界面,使得用户可以使用该目标应用对应的功能。
[0035]可选的,所述运行参数具体可以包括:终端的显示参数、触屏和按键的事件、IMEI号、当前的网络类型、GPS信息、终端设置的语言类型、终端传感器中任意一项或两项以上的组合。
[0036]本发明实施例中的应用实现装置可以为一种应用程序,可以集成在一个应用的主体程序中,也可以集成在一个控制平台的主体程序中。
[0037]在本发明实施例中,先获取目标应用的安装包,生成管理所述目标应用的代理界面,再通过该代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,实现所述目标应用的功能;其中,本发明实施例无需对目标应用的安装包进行安装,代理界面作为终端和安装包之间的接口,在启动所述安装包所要实现的功能时,代理界面提供运行所述功能所必要的运行参数,并动态的将实现目标应用的代码和运行参数写在终端的内存上,使得终端无需安装该安装包就可以使用该安装包对应的目标应用。
[0038]除了作为终端和安装包之间的接口,本发明实施例中提出的代理界面还具有管理目标应用的一些必要参数,维护所述目标应用正常运作的功能,具体请参阅图2,本发明实施例中应用实现方法的另一个实施例包括:
[0039]201、获取目标应用的安装包;
[0040]应用实现装置获取目标应用的安装包;具体的,所述目标应用可以为一种应用下的插件,也可以为一种控制平台下的应用(如,QQ游戏平台下的中国象棋)。
[0041]在实际应用中,上述的插件可以理解为一个应用程序中附属功能所对应的应用。上述的控制平台可以理解为与目标应用有相匹配的数据传输协议和接口的操作平台;该控制平台可以为该目标应用提供操作和显示的界面,而编写该目标应用的代码也可以被该控制平台所支持或识别。
[0042]可选的,目标应用的安装包可以在先就预存在终端的静态存储器中,则“获取目标应用的安装包”的操作就可以为读取所述安装包在终端中的存储地址;可选的,目标应用的安装包也可以即时的通过联网下载,如,当用户点击该目标应用时,若该目标应用未被安装且本地没有存有该目标应用的安装包,则终端联网并链接到该目标应用的安装包的下载地址,对该安装包进行下载。[0043]202、生成管理所述目标应用的代理界面;
[0044]应用实现装置生成管理所述目标应用的代理界面;具体的,代理界面为终端和安装包之间的中介接口,当终端需要加载安装包内的功能时,提供实现该功能的必要的运行参数;如,目标应用的操作界面要在终端的显示屏幕上显示,则代理界面需要提供终端的显示参数(如,显示屏幕的尺寸和分辨率)。
[0045]所述代理界面是主程序中的普通界面,特征是界面上不带任何按钮、文字或图标的透明界面,并能够获得终端系统的所有信息。界面显示的内容从目标应用的安装包中获得。代理界面的创建、显示、隐藏和回收由终端系统管理。
[0046]可选的,生成管理所述目标应用的代理界面的过程具体可以为:创建动态加载所述目标应用的安装包的代码;创建传送所述终端的运行参数的代码;创建管理所述目标应用的创建、显示、隐藏和回收的代码,得到所述目标应用的代理界面。
[0047]动态加载所述目标应用的安装包的代码可以包括:动态加载目标应用安装包逻辑的代码,和加载目标应用安装包字符串、图片、声音文件的代码等。
[0048]管理所述目标应用的代码还可以包括:目标应用界面中包括按钮、文字和图标等元素的代码,传送屏幕和按键事件的代码等。
[0049]具体的,在生成目标应用的代理界面之后,代理界面会解析指定路径(目标应用的安装包在终端中存储地址)的安装包,从安装包中获取所述目标应用的版本号和包名;可选的,当上述对安装包的解析失败时,目标应用的启动流程失败。
[0050]203、通过java类加载器加载所述安装包的类;
[0051]当代理界面需要读取所述安装包时,会创建Resource,解析安装包中的资源文件,再通过java类加载器(DexClassLoadr)加载所述安装包的类(class, dex),创建所述目标应用运行的上下文环境(context);所述安装包的类包括所述目标应用的主程序、工具和业务逻辑。
[0052]在实际应用中,如果指定了启动插件的界面类(PluginAct), DexClassLoader动态加载该指定的PluginAct。如果未指定,在插件文件中查找第一个带有启动器(Launcher)标识的界面类 PluginAct, DexClassLoader 动态加载该 PluginAct。
[0053]在本发明实施例中,目标应用的上下文环境(Context)和现有技术中目标应用的主应用程序的Context不同,仓Ij建Context需要资源管理接口(Resource)读取资源文件(包括:各种图片和主体等),创建Resource需要通过资源管理器(AssetManager)读取所述安装包中的数据。
[0054]204、通过java的反射机制调用所述安装包的创建单元;
[0055]代理界面通过java的反射机制调用所述安装包的创建单元(onCreate)。
[0056]具体的,Java反射机制是通过获得目标应用的对象,强制调用目标应用中未公开或隐藏的方法和获取目标应用的属性。
[0057]205、使用所述运行参数加载所述创建单元;
[0058]代理界面使用所述运行参数加载所述创建单元,使得终端的显示屏幕显示所述目标应用的操作界面,用户可以在所述操作界面中使用所述目标应用的功能。
[0059]206、在所述代理界面中维护所述目标应用的运行环境、资源和生命周期。
[0060]在启动了所述目标应用的操作界面之后,代理界面会存储所述目标应用的运行环境、资源和生命周期。
[0061]目标应用的运行环境可以包括:终端的显示参数,屏幕和按键事件、屏幕是否关闭、内存使用情况、CPU状态、当前的网络状况、位置信息、是否正在通话。
[0062]目标应用的运行资源可以包括:当前终端设置的语言、文字串、图片、声音文件、屏幕文本按钮图标元素。
[0063]目标应用的生命周期从界面的创建开始,到界面的销毁结束,经历显示(屏幕打开,切到前台)和隐藏(屏幕关闭、切至后台)阶段。
[0064]具体的,所述生命周期包括:所述目标应用的创建时间和所述目标应用的关闭或最小化(即退到后台)的条件。所述目标应用的关闭或最小化的条件可以包括:1、当用户发送关闭或最小化指令(可以表现为点击操作)时,当前的目标应用关闭或最小化;2、当所述终端来电时,所述当前的目标应用关闭或最小化。
[0065]所述代理界面对运行环境的维护还可以包括:终端操作按键与所述目标应用的操作功能的同步和匹配。
[0066]为了便于理解,下面以一具体应用场景(目标应用为主应用程序的插件)对上述的实施例中描述的应用实现方法再进行详细描述,请参考图3,具体为:
[0067]301、用户点击插件;
[0068]用户点击插件时,终端检测到该插件未被安装且本地没有存有该插件的安装包,则执行步骤302。
[0069]302、终端联网下载所述插件的安装包;
[0070]终端联网并链接到该插件的安装包的下载地址,对所述插件的安装包进行下载。
[0071]303、应用实现装置生成管理所述插件的代理界面;
[0072]在终端安装的主应用程序或控制平台的应用实现装置生成管理所述插件的代理界面。
[0073]具体的,在生成插件的代理界面之后,代理界面会解析指定路径(插件的安装包在终端中存储地址)的安装包,从安装包中获取所述插件的版本号和包名;可选的,当上述对安装包的解析失败时,插件的启动流程失败。
[0074]304、代理界面通过java类加载器加载所述安装包的类;
[0075]在实际应用中,如果指定了启动插件的界面类(PluginAct), DexClassLoader动态加载该指定的PluginAct。如果未指定,在插件文件中查找第一个带有启动器(Launcher)标识的界面类 PluginAct, DexClassLoader 动态加载该 PluginAct。
[0076]305、代理界面创建所述插件运行的上下文环境;
[0077]代理界面创建Context需要资源管理接口(Resource)读取资源文件,创建Resource需要通过资源管理器(AssetManager)读取所述安装包中的数据。
[0078]306、代理界面通过java的反射机制调用所述安装包的创建单元;
[0079]307、代理界面使用所述运行参数加载所述创建单元,启动所述插件的操作界面。
[0080]308、代理界面维护所述插件的运行环境、资源和生命周期。
[0081]请参阅图4,图4是插件总体架构图,由三部分组成,第一部分是代理界面(ProxyAct),第二部分是插件界面的基类PluginAct,第三部分是插件公共类,包括插件运行环境(PluginContext),插件数据表(PluginTableManager)、插件与主程序数据和网络通信类(PluginComm)。代理执行(ProxyActivity)封装了与插件界面同步生命周期和控件事件的实现。PluginAct封装了插件运行环境的创建。对于插件开发工作,只需要继承PluginAct,其它与开发非插件程序相同。
[0082]上面仅以一些例子对本发明实施例中的应用场景进行了说明,可以理解的是,在实际应用中,还可以有更多的应用场景,具体此处不作限定。
[0083]下面对用于执行上述应用实现方法的本发明应用实现装置的实施例进行说明,其逻辑结构请参考图5,本发明实施例中的应用实现装置一个实施例包括:
[0084]安装包获取单元501,用于获取目标应用的安装包;
[0085]代理生成单元502,用于生成管理所述目标应用的代理界面;
[0086]代理加载单元503,用于通过代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,所述运行参数包括:终端的显示参数。
[0087]可选的,所述运行参数包括:
[0088]所述终端的显示参数、触屏和按键的事件、IMEI号、当前的网络类型、GPS信息、终端设置的语言类型、终端传感器中任意一项或两项以上的组合。
[0089]所述代理生成单元502具体用于:创建动态加载所述目标应用的安装包的代码;创建传送所述终端的运行参数的代码;创建管理所述目标应用的创建、显示、隐藏和回收的代码,得到所述目标应用的代理界面。
[0090]可选的,所述代理加载单元包503括:
[0091]类加载模块5031,用于通过java类加载器DexClassLoadr加载所述安装包的类;
[0092]上下文创建模块5032,用于创建所述目标应用运行的上下文环境context ;
[0093]调用模块5033,用于通过java的反射机制调用所述安装包的创建单元onCreate方法;
[0094]创建加载模块5034,用于使用所述运行参数加载所述创建单元。
[0095]可选的,所述装置还包括:
[0096]维护单元504,用于在所述代理界面中维护所述目标应用的运行环境、资源和生命周期。
[0097]可选的,所述安装包获取单元501包括:
[0098]地址读取模块5011,用于读取所述安装包在终端中的存储地址;
[0099]或,
[0100]下载模块5012,用于指示终端联网下载所述目标应用的安装包。
[0101]上述各个单元/模块的具体操作过程请参阅方法实施例,此处不再赘述。
[0102]在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0103]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0104]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0105]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0106]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种应用实现方法,其特征在于,包括: 获取目标应用的安装包; 生成管理所述目标应用的代理界面; 所述代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,所述运行参数包括:终端的显示参数。
2.根据权利要求1所述的方法,其特征在于,所述生成管理所述目标应用的代理界面,包括: 创建动态加载所述目标应用的安装包的代码; 创建传送所述终端的运行参数的代码; 创建管理所述目标应用的创建、显示、隐藏和回收的代码,得到所述目标应用的代理界面。
3.根据权利要求1所述的方法,其特征在于,所述使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,包括: 通过java类加载器加载所述安装包的类; 创建所述目标应用运行的上下文环境; 通过java的反射机制调用所述安装包的创建单元; 使用所述运行参数加载所述创建单元。
4.根据权利要求1所述的方法,其特征在于,所述使用终端的运行参数动态加载所述安装包之后,所述方法还包括: 在所述代理界面中维护所述目标应用的运行环境、资源和生命周期。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述获取目标应用的安装包,包括: 读取所述安装包在终端中的存储地址; 或,指示终端联网下载所述目标应用的安装包。
6.一种应用实现装置,其特征在于,包括: 安装包获取单元,用于获取目标应用的安装包; 代理生成单元,用于生成管理所述目标应用的代理界面; 代理加载单元,用于通过代理界面使用终端的运行参数动态加载所述安装包,启动所述目标应用的操作界面,所述运行参数包括:终端的显示参数。
7.根据权利要求6所述的装置,其特征在于,所述代理生成单元具体用于: 创建动态加载所述目标应用的安装包的代码; 创建传送所述终端的运行参数的代码; 创建管理所述目标应用的创建、显示、隐藏和回收的代码,得到所述目标应用的代理界面。
8.根据权利要求6所述的装置,其特征在于,所述代理加载单元包括: 类加载模块,用于通过java类加载器加载所述安装包的类; 上下文创建模块,用于创建所述目标应用运行的上下文环境; 调用模块,用于通过java的反射机制调用所述安装包的创建单元; 创建加载模块,用于使用所述运行参数加载所述创建单元。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 维护单元,用于在所述代理界面中维护所述目标应用的运行环境、资源和生命周期。
10.根据权利要求6至9任 意一项所述的装置,其特征在于,所述安装包获取单元包括: 地址读取模块,用于读取所述安装包在终端中的存储地址; 或, 下载模块,用于指示终端联网下载所述目标应用的安装包。
【文档编号】G06F9/44GK103902265SQ201210575981
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】钟于胜, 林声炜, 朱德亮, 邹迪飞 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1