当前位置: 首页 > 专利查询>李宏伟专利>正文

安卓安装包转换方法和装置以及运行应用的方法和装置制造方法及图纸

技术编号:10959609 阅读:103 留言:0更新日期:2015-01-28 11:50
本发明专利技术公开了一种安卓安装包转换方法和装置以及运行应用的方法和装置。响应于用户基于第一应用的客户端运行第二应用的请求,获取通过转换第二应用的安卓安装包而构建的新数据包,然后基于第一应用的客户端,使用新数据包运行第二应用。该转换方法包括:获取安卓安装包中的基础可执行文件;从基础可执行文件获取资源类文件;将资源类文件中特定于安卓系统的内容修改为特定于第一应用的客户端的内容,以形成新资源类文件;将新资源类文件编译为附加可执行文件;以及构建新数据包,新数据包包括基础可执行文件和附加可执行文件。由此,使得可以基于第一应用,在不需要安装第二应用的情况下,直接运行第二应用,从而可以为用户提供更好的体验。

【技术实现步骤摘要】
安卓安装包转换方法和装置以及运行应用的方法和装置
本专利技术涉及安卓系统中的应用,特别涉及转换安卓安装包的方法和装置以及基于第一应用的客户端运行第二应用的方法和装置。
技术介绍
安卓(Android)系统是由谷歌公司推出的移动终端操作系统。基于安卓系统,用户可以在应用市场(或应用商店)中购买/下载并安装应用,然后可以在移动终端(例如手机等)上运行应用。目前,在安卓系统中,每个应用在安装前都以安卓安装包(APK)的方式存在。用户如果想在安卓系统中使用某个应用,则需要使用系统提供的应用安装API(应用程序接口),在应用商店或其他应用中,将此应用的APK安装到系统中,之后用户可以直接运行这个应用。不只是应用市场,还有很多应用,都会在其中提供一些其它应用的介绍和链接。用户可以通过点击这些链接来下载其它应用。根据目前的技术,如果要在一个应用(例如应用市场)中,不经过对其它应用的安装过程而直接启动(运行)其它应用,而该其它应用尚没有被安装在安卓系统中,则需要采用插件技术。插件一般指为了在一个主程序中实现比较通用的功能,把业务相关或者让可以让用户自定义扩展的功能不附加在主程序中,主程序可在运行时安装和卸载。在安卓系统中如何实现插件也已经被广泛传播,实现的原理都是实现一套插件接口,把插件实现编成apk包或者dex文件,然后,在运行时使用DexClassLoader动态加载进来。通过这样的方式,可以在一个应用中,直接启动并使用通过插件技术实现的apk。然而,在通过插件来实现在一个应用中启动其它应用的情况下,需要将被启动的应用本身修改为安卓插件的形式。而这样的修改往往需要被启动的应用的开发者自己来执行。因此,在一般情况下,这种方案是不方便的,甚至是难以或不能做到的。
技术实现思路
本专利技术所要解决的技术问题是提供一种转换安卓安装包的方法和装置以及基于第一应用的客户端运行第二应用的方法和装置,使得不需要将应用修改为安卓插件的形式即可在第一应用中不经过对第二应用的安装过程而直接启动/运行尚没有被安装在安卓系统中的第二应用。根据本专利技术的一个方面,提供了一种对第二应用的安卓安装包进行转换以适于在第一应用中运行的方法,包括:获取安卓安装包中的基础可执行文件;从基础可执行文件获取资源类文件;将资源类文件中特定于安卓系统的内容修改为特定于第一应用的客户端的内容,以形成新资源类文件;将新资源类文件编译为附加可执行文件;以及构建新数据包,新数据包包括基础可执行文件和附加可执行文件。优选地,该方法还可以包括:检索安卓安装包的资源文件目录中是否有XML布局文件;如果检索到XML布局文件,则通过安卓系统软件开发工具包将XML布局文件的内容合并到资源类文件中。优选地,该方法还可以包括:判断在基础可执行文件的实际执行过程中是否会用到XML布局文件。如果判定没有用到XML布局文件,则忽略XML布局文件。优选地,将资源类文件中特定于安卓系统的内容修改为特定于第一应用的客户端的内容的步骤可以包括:将资源类文件中依赖安卓活动对象的编程语句修改为依赖第一应用的客户端管理的相应活动对象的编程语句;和/或将资源类文件中与安卓系统进行交互的编程语句修改为与第一应用的客户端进行交互的编程语句。优选地,该方法还可以包括:对基础可执行文件进行修改,以便将其中依赖于安卓系统对服务对象和活动对象的生命周期进行管理的内容,修改为依赖于第一应用的客户端对服务对象和活动对象的生命周期进行管理的内容。新数据包中包括的是修改后的基础可执行文件。优选地,可以按照适于第一应用的客户端执行的结构来构建新数据包。新数据包适于在第一应用中无需安装而直接运行第二应用。优选地,该方法还可以包括:获取安卓安装包中的资源文件;以第一应用的客户端能够提取的格式压缩资源文件,以形成资源压缩包。新数据包还包括资源压缩包。优选地,该方法还可以包括:创建针对第一应用的客户端的新签名文件。新数据包还包括新签名文件。优选地,该方法还可以包括:获取安卓安装包中除基础可执行文件、XML布局文件、资源文件以及原有的签名文件之外的至少部分其余文件。新数据包还包括上述至少部分其余文件。优选地,该方法可以是在所述第一应用的服务器端执行的。或者,该方法也可以是在所述第一应用的客户端执行的。根据本专利技术的另一个方面,提供了一种基于第一应用的客户端运行第二应用的方法,包括:响应于用户基于第一应用的客户端运行第二应用的请求,获取根据上述转换方法针对第二应用构建的新数据包;基于第一应用的客户端,使用新数据包运行第二应用。优选地,获取新数据包的步骤可以包括:向第一应用的服务器端发送获取针对第二应用构建的新数据包的请求;从第一应用的服务器端接收新数据包。优选地,获取新数据包的步骤可以包括:向第一应用的服务器端发送获取第二应用的安卓安装包的请求;从第一应用的服务器端接收安卓安装包;基于安卓安装包,使用上述转换方法,构建新数据包。优选地,使用新数据包运行第二应用的步骤可以包括:获取第二应用对安卓系统资源的调用请求;基于调用请求,调用安卓系统资源。优选地,使用新数据包运行第二应用的步骤可以包括:获取第二应用的数据输入请求;基于数据输入请求,从安卓系统资源获取数据;将数据提供给第二应用。优选地,使用新数据包运行第二应用的步骤可以包括:使第一应用的客户端管理和控制第二应用的服务对象和活动对象的生命周期;以及使第一应用的客户端替代安卓系统为第二应用提供全部的安卓系统服务与功能。优选地,在使用新数据包运行第二应用的步骤中,不需要安装第二应用而直接使用新数据包运行第二应用。根据本专利技术的另一个方面,提供了一种对第二应用的安卓安装包进行转换以适于在第一应用中运行的装置,包括:用于获取安卓安装包中的基础可执行文件的装置;用于从基础可执行文件获取资源类文件的装置;用于将资源类文件中特定于安卓系统的内容修改为特定于第一应用的客户端的内容以形成新资源类文件的装置;用于将新资源类文件编译为附加可执行文件的装置;以及用于构建新数据包的装置,新数据包包括基础可执行文件和附加可执行文件。优选地,该装置还可以包括:用于检索安卓安装包的资源文件目录中是否有XML布局文件的装置;用于在检索到XML布局文件的情况下通过安卓系统软件开发工具包将XML布局文件的内容合并到资源类文件中的装置。优选地,该装置还可以包括:用于在检索到XML布局文件的情况下判断在基础可执行文件的实际执行过程中是否会用到XML布局文件的装置。如果判定没有用到XML布局文件,则忽略XML布局文件。优选地,将资源类文件中特定于安卓系统的内容修改为特定于第一应用的客户端的内容以形成新资源类文件的装置包括:用于将资源类文件中依赖安卓活动对象的编程语句修改为依赖第一应用的客户端管理的相应活动对象的编程语句的装置;和/或用于将资源类文件中与安卓系统进行交互的编程语句修改为与第一应用的客户端进行交互的编程语句的装置。优选地,该装置还可以包括:用于对基础可执行文件进行修改的装置,以便将其中依赖于安卓系统对服务对象和活动对象的生命周期进行管理的内容,修改为依赖于第一应用的客户端对服务对象和活动对象的生命周期进行管理的内容。新数据包中包括的是修改后的基础可执行文件。优选地,用于构建新数据包的装置可以按照适于第一应用的客户端执行的结本文档来自技高网
...
安卓安装包转换方法和装置以及运行应用的方法和装置

【技术保护点】
一种对第二应用的安卓安装包进行转换以适于在第一应用中运行的方法,包括:获取所述安卓安装包中的基础可执行文件;从所述基础可执行文件获取资源类文件;将所述资源类文件中特定于安卓系统的内容修改为特定于所述第一应用的客户端的内容,以形成新资源类文件;将所述新资源类文件编译为附加可执行文件;以及构建新数据包,所述新数据包包括所述基础可执行文件和所述附加可执行文件。

【技术特征摘要】
1.一种对第二应用的安卓安装包进行转换以适于在第一应用中运行的方法,包括:获取所述安卓安装包中的基础可执行文件;从所述基础可执行文件获取资源类文件;将所述资源类文件中特定于安卓系统的内容修改为特定于所述第一应用的客户端的内容,以形成新资源类文件;将所述新资源类文件编译为附加可执行文件;以及构建新数据包,所述新数据包包括所述基础可执行文件和所述附加可执行文件。2.根据权利要求1所述的方法,还包括:检索所述安卓安装包的资源文件目录中是否有XML布局文件;如果检索到所述XML布局文件,则通过安卓系统软件开发工具包将所述XML布局文件的内容合并到所述资源类文件中。3.根据权利要求2所述的方法,还包括:判断在所述基础可执行文件的实际执行过程中是否会用到所述XML布局文件,如果判定没有用到所述XML布局文件,则忽略所述XML布局文件。4.根据权利要求1所述的方法,其中,将所述资源类文件中特定于安卓系统的内容修改为特定于所述第一应用的客户端的内容的步骤包括:将所述资源类文件中依赖安卓活动对象的编程语句修改为依赖所述第一应用的客户端管理的相应活动对象的编程语句;和/或将所述资源类文件中与安卓系统进行交互的编程语句修改为与所述第一应用的客户端进行交互的编程语句。5.根据权利要求1所述的方法,还包括:对所述基础可执行文件进行修改,以便将其中依赖于安卓系统对服务对象和活动对象的生命周期进行管理的内容,修改为依赖于所述第一应用的客户端对服务对象和活动对象的生命周期进行管理的内容,其中,所述新数据包中包括的是修改后的基础可执行文件。6.根据权利要求1至5中任何一项所述的方法,其中,按照适于所述第一应用的客户端执行的结构来构建所述新数据包,所述新数据包适于在所述第一应用中无需安装而直接运行所述第二应用。7.根据权利要求6所述的方法,还包括:创建针对所述第一应用的客户端的新签名文件,其中,所述新数据包还包括所述新签名文件。8.根据权利要求6所述的方法,还包括:获取所述安卓安装包中的资源文件;以所述第一应用的客户端能够提取的格式压缩所述资源文件,以形成资源压缩包,其中,所述新数据包还包括所述资源压缩包。9.根据权利要求8所述的方法,还包括:获取安卓安装包中除所述基础可执行文件、XML布局文件、所述资源文件以及原有的签名文件之外的至少部分其余文件,其中,所述新数据包还包括所述至少部分其余文件。10.根据权利要求1至5中任何一项所述的方法,其中,该方法是在所述第一应用的服务器端执行的;或者该方法是在所述第一应用的客户端执行的。11.一种基于第一应用的客户端运行第二应用的方法,包括:响应于用户基于所述第一应用的客户端运行第二应用的请求,获取根据权利要求1至10中任何一项所述的方法针对所述第二应用构建的新数据包;基于所述第一应用的客户端,使用所述新数据包运行所述第二应用。12.根据权利要求11所述的方法,其中,获取新数据包的步骤包括:向所述第一应用的服务器端发送获取针对所述第二应用构建的新数据包的请求;以及从所述第一应用的服务器端接收所述新数据包。13.根据权利要求11所述的方法,其中,获取新数据包的步骤包括:向所述第一应用的服务器端发送获取所述第二应用的安卓安装包的请求;从所述第一应用的服务器端接收所述安卓安装包;以及基于所述安卓安装包,使用根据权利要求1至10中任何一项所述的方法,构建所述新数据包。14.根据权利要求11所述的方法,其中,使用所述新数据包运行所述第二应用的步骤包括:获取所述第二应用对安卓系统资源的调用请求;以及基于所述调用请求,调用所述安卓系统资源。15.根据权利要求11所述的方法,其中,使用所述新数据包运行所述第二应用的步骤包括:获取所述第二应用的数据输入请求;基于所述数据输入请求,从所述安卓系统资源获取数据;以及将所述数据提供给所述第二应用。16.根据权利要求11所述的方法,其中,使用所述新数据包运行所述第二应用的步骤包括:使所述第一应用的客户端管理和控制所述第二应用的服务对象和活动对象的生命周期;以及使所述第一应用的客户端替代安卓系统为第二应用提供全部的安卓系统服务与功能。17.根据权利要求11所述的方法,其中,在使用所述新数据包运行所述第二应用的步骤中,不需要安装所述第二应用而直接使用所述新数据包运行所述第二应用。18.一种对第二应用的安卓安装包进行转换以适于在第一应用中运行的装置,包括:用于获取所述安卓安装包中的基础可执行文件的装置;用于从所述基础...

【专利技术属性】
技术研发人员:李宏伟杨琦
申请(专利权)人:李宏伟
类型:发明
国别省市:北京;11

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

1