CN105100191B - 一种云编译实现Java应用安装的方法、装置及系统 - Google Patents

一种云编译实现Java应用安装的方法、装置及系统 Download PDF

Info

Publication number
CN105100191B
CN105100191B CN201510268738.0A CN201510268738A CN105100191B CN 105100191 B CN105100191 B CN 105100191B CN 201510268738 A CN201510268738 A CN 201510268738A CN 105100191 B CN105100191 B CN 105100191B
Authority
CN
China
Prior art keywords
application
destination application
information
terminal device
version information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510268738.0A
Other languages
English (en)
Other versions
CN105100191A (zh
Inventor
胡海亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510268738.0A priority Critical patent/CN105100191B/zh
Priority to EP15882898.8A priority patent/EP3128421B1/en
Priority to PCT/CN2015/095025 priority patent/WO2016188059A1/zh
Publication of CN105100191A publication Critical patent/CN105100191A/zh
Priority to US15/261,424 priority patent/US10904361B2/en
Application granted granted Critical
Publication of CN105100191B publication Critical patent/CN105100191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种云编译实现Java应用程序安装的方法,包括:终端设备将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器获取与硬件配置信息及目标应用程序的版本信息对应的目标应用程序的升级信息;终端设备接收应用市场服务器反馈的目标应用程序的升级信息,所述升级信息包括:目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的最新版本信息对应的目标码文件;终端设备根据所述升级信息对目标应用程序进行优化安装,以更新所述目标应用程序的版本。采用本发明实施例,具体可减少应用程序优化安装占用的设备内存,提高应用程序优化安装的效率,增强应用程序安装的用户体验的优点。

Description

一种云编译实现Java应用安装的方法、装置及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种云编译实现Java应用安装的方法、装置及系统。
背景技术
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。当前针对终端领域的Android平台也是采用Java进行应用程序开发。
由于Android虚拟机相比原来的Java虚拟机的运行策略不一样(Java虚拟机是栈式运行方式,而Android虚拟机是采用寄存器运行方式),使得Android虚拟机在应用程序安装过程中,除了解压*.apk文件和扫描*.dex文件等中间码文件外,还需要针对当前硬件设备进行二进制编译,在编译过程中添加针对当前硬件设备的硬件配置信息实现应用程序优化的优化算法,将编译得到的优化文件保存在系统中(上述编译过程也称编译优化过程)。应用程序运行时,硬件设备直接将编译得到的优化文件以及相关的方法和类库拷贝加载到其内存,使得Java应用程序运行的时候性能得到改善。
然而,现有技术中硬件设备安装应用程序时,从应用市场上下载了*.apk文件并解压出*.dex文件,然后进行bytecode扫描提取,进而根据当前硬件设备的配置信息转码优化成为本地机器码格式的*.oat文件。对应用程序进行优化安装时,需要在转码成*.oat文件之前调用编译优化模块,对其针对当前硬件设备的配置信息进行中间码的优化编译,虽然使得应用程序运行时性能得以提升,但是需要将编译优化放在终端设备上执行,占用了终端设备的运行内存和存储空间,使得应用程序的安装时间变长,Java应用程序的安装用户体验差。
发明内容
本发明实施例提供一种云编译实现Java应用程序安装的方法及装置,可减少应用程序优化安装占用的设备内存,提高应用程序优化安装的效率,增强应用程序安装的用户体验。
本发明实施例第一方面提供了一种云编译实现Java应用程序安装的方法,其可包括:
终端设备将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息;
所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件;
所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
结合第一方面,在第一种可能的实现方式中,所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,包括:
所述终端设备接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本,包括:
所述终端设备根据所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
结合第一方面,在第三种可能的实现方式中,所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,包括:
所述终端设备接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本,包括:
所述终端设备将所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
本发明实施例第二方面提供了一种云编译实现Java应用程序安装的方法,其可包括:
云端服务器获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件;
所述云端服务器根据所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本;
若所述目标终端设备内置的目标应用程序的版本不是最新版本,则根据最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件;
所述云端服务器向所述应用市场服务器发送所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
结合第二方面,在第一种可能的实现方式中,所述云端服务器根据所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本,包括:
所述云端服务器将所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
结合第二方面,在第二种可能的实现方式中,所述根据所述最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,包括:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
结合第二方面,在第三种可能的实现方式中,所述根据所述最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,包括:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
结合第二方面至第二方面第三种可能的实现方式中任一种,在第四种可能的实现方式中,所述云端服务器获取应用市场服务器发送的目标终端设备的硬件配置信息之前,所述方法还包括:
所述云端服务器通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息;
建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
本发明实施例第三方面提供了一种云编译实现Java应用程序安装的方法,其可包括:
应用市场服务器获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息;
所述应用市场服务器根据所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
所述应用市场服务器根据所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息;
若所述版本信息不是最新版本信息,则将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
结合第三方面,在第一种可能的实现方式中,所述应用市场服务器获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息之后,所述方法还包括:
所述应用市场服务器将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
本发明实施例第四方面提供了一种终端设备,其可包括:
发送模块,用于将终端设备的硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息;
接收模块,用于接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件;
安装模块,用于根据所述接收模块接收到的所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
结合第四方面,在第一种可能的实现方式中,所述接收模块具体用于:
接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
结合第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述安装模块具体用于:
根据所述接收模块接收的所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
结合第四方面,在第三种可能的实现方式中,所述接收模块具体用于:
接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
结合第四方面第三种可能的实现方式,在第四种可能的实现方式中,所述安装模块具体用于:
将所述接收模块接收的所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
本发明实施例第五方面提供了一种云端服务器,其可包括:
获取模块,用于获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件;
判断模块,用于根据所述获取模块获取的所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本;
编译模块,用于在所述判断模块判断结果为否时,根据最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件;
发送模块,用于向所述应用市场服务器发送所述编译模块编译得到的所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
结合第五方面,在第一种可能的实现方式中,所述判断模块具体用于:
将所述获取模块获取的所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
结合第五方面,在第二种可能的实现方式中,所述编译模块具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
结合第五方面,在第三种可能的实现方式中,所述编译模块具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
结合第五方面至第二方面第三种可能的实现方式中任一种,在第四种可能的实现方式中,所述获取模块还用于:
通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息;
建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
本发明实施例第六方面提供了一种应用市场服务器,其可包括:
获取模块,用于获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息;
确定模块,用于根据所述获取模块获取的所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
判断模块,用于根据所述获取模块获取的所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息;
发送模块,用于在所述判断模块判断结果为否时,将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
结合第六方面,在第一种可能的实现方式中,所述发送模块还用于:
将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
本发明实施例第七方面提供了一种云编译实现Java应用程序安装的系统,其可包括:上述本发明实施例第四方面提供的终端设备、本发明实施例第五方面提供的云端服务器以及第六方面提供的应用市场服务器。
本发明实施例终端设备可将其硬件配置信息,以及终端设备当前安装的目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器匹配得到终端设备的硬件配置信息对应的上述目标应用程序的最新版本信息。终端设备可接收应用市场服务器发送的目标应用程序的升级信息,进而可根据上述升级信息对目标应用程序进行优化安装,通过安装优化后的应用程序(即最新版本的应用程序)来更新终端设备上的目标应用程序,使得目标应用程序达到最新版本。本发明实施例将目标应用程序当前版本信息对应的的中间码文件编译得到最新版本信息对应的目标码文件的过程放在云端市场服务器进行,终端设备无需在设备上进行应用程序的升级优化的编译,减少应用程序升级优化占用的终端设备的运行内存和存储空间,提高应用程序优化安装的效率,增强终端设备的用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中Java应用程序的安装方法流程示意图;
图2是本发明实施例提供的云编译实现Java应用安装的云编译系统架构图;
图3是本发明实施例提供的云编译实现Java应用安装的方法的第一实施例流程示意图;
图4是本发明实施例提供的云编译实现Java应用安装的方法的第二实施例流程示意图;
图5是本发明实施例提供的云编译实现Java应用安装的方法的第三实施例流程示意图;
图6是本发明实施例提供的云编译实现Java应用安装的方法的第三实施例流程示意图;
图7是本发明实施例提供的终端设备的第一实施例结构示意图;
图8是本发明实施例提供的云端服务器的第一实施例结构示意图;
图9是本发明实施例提供的应用市场服务器的第一实施例结构示意图;
图10是本发明实施例提供的终端设备的第二实施例结构示意图;
图11是本发明实施例提供的云端服务器的第二实施例结构示意图;
图12是本发明实施例提供的应用市场服务器的第二实施例结构示意图;
图13是本发明实施例提供的云编译实现Java应用安装的系统的实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Java基础知识介绍
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的Hot Java浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Java applet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。目前最流行的移动平台android系统,就是采用Java作为开发语言。
Java主要由四部分组成:
Java编程语言,主要涉及java的编程语法;
Java文件格式,主要包括各类java的目录、文件及后缀等;
Java应用程序接口;
Java虚拟机,主要包括Java bytecode的编译优化、加载、解释及运行、管理等模块。
运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的系统架构图如表1所示:
表1
在表1所示的Java平台的结构中,可以看出,Java虚拟机(JVM)处在核心的位置,是程序与底层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统,其中依赖于平台的部分称为适配器;JVM通过移植接口在具体的平台和操作系统上实现;在JVM的上方是Java的基本类库和扩展类库以及它们的API,利用JavaAPI编写的应用程序(application)和小程序(Java applet)可以在任何Java平台上运行而无需考虑底层平台,就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java的平台无关性。
具体实现中,为了更好地描述本发明实施例提供的云编译实现Java应用程序安装的方法,下面将结合图1对现有技术中Java应用程序的安装方式进行描述。
参见图1,是现有技术中Java应用程序的安装方法流程示意图。现有技术中Java应用程序的安装方法包括步骤:
1、Java应用程序的应用市场提供应用程序安装包。
2、终端设备根据应用程序安装包将应用程序安装至终端设备上。
3、终端设备完成应用程序的安装,生成应用程序图标。
4、用户点击应用程序图标,触发应用程序运行。
终端设备从Java应用程序市场上下载指定Java应用程序的安装包到设备上,解压安装包得到应用程序的*.class文件。终端设备对*.class文件进行解析,得到应用程序的*.dex文件,再根据*.dex进行DEX字节码(bytecode)扫描提取,最后根据终端设备的硬件配置信息转码编译成本地机器码格式的*.oat文件,生成应用程序图标以完成应用程序的安装。用户点击应用程序图标时,终端设备可通过Java的运行引擎使得Java应用程序正常工作。
现有技术中,在应用程序的安装过程中,若终端设备需要提高应用程序的启动速度,则需要将应用程序进行优化,此时终端设备需要将应用程序优化涉及到的本地方法类库以及通用方法类库都拷贝加载到终端设备的内存中,通过终端设备的编译优化模块对应用程序进行优化安装,占用了终端设备的内存,同时终端设备有限的运行内存也使得应用程序的优化安装时间变长,安装效率低。
此外,现有的针对终端领域的Android平台也采用了Java进行应用程序开发,而Android的Java应用程序的安装运行过程相比原有Java平台有一些区别。由于Android的虚拟机相比原来的Java虚拟机运行策略不一样(原来的Java虚拟机是栈式运行方式,而Android的虚拟机是采用寄存器运行方式)。Android的Java应用程序在安装过程中,终端设备将Android安装包下载到设备上之后,除了解压*.apk文件和扫描*.dex文件外,还需要针对终端设备的硬件配置信息进行二进制编译优化,将优化后的字节码(bytecode)存成*.odex文件,保存在系统中。当用户点击应用程序图标,触发应用程序运行时,终端设备直接将*.odex文件以及相关的方法和类库拷贝加载到内存,使得Java应用程序运行的时候性能得到改善。
此外,为了提升Java应用程序的运行性能,改进Android平台的Java虚拟机,在Android 5.0版本中缺省采用了ART虚拟机来代替低版本中使用的Dalvik虚拟机。ART虚拟机的使用使得应用程序的运行性能提升了将近一倍,然而也使得Java应用程序的安装时间变长了。在ART虚拟机中安装应用程序时,终端设备可首先从应用市场上下载应用程序的*.apk文件,解压出*.dex文件,然后进行bytecode扫描提取,再根据当前设备的具体信息转码优化成为本地机器码格式的*.oat文件。在转码成*.oat文件之前,需要调用终端设备的编译优化模块,对其针对当前硬件的情况进行优化,从而使得后续应用程序的运行的时候,性能得到显著提升。
综上可知,现有技术中,终端设备安装应用程序时在扫描和优化Java的bytecode的时候会耗费一些时间,同时,针对像ART虚拟机这样的平台,在程序安装时,还需要利用AoT的编译技术,根据终端设备的硬件配置信息进行由针对性的编译优化。虽然能够使得后续程序运行的时候性能得到显著提升,但是应用程序优化编译需要在终端设备上,这使得终端设备本地存储变大(即占用了终端设备的本地存储空间),加长了应用程序的安装时间,降低了终端设备的用户体验。
本发明实施例针对现有技术中存储的应用程序的优化编译占用了本地存储空间、加长了应用程序的安装时间等问题,利用云端服务器提前实现终端设备的ART虚拟机的*.dex文件等中间码的转码优化,从而使得终端设备直接从云端服务器获取转码优化得到的文件进行应用程序的安装,缩短了终端设备安装应用程序的时间,提升应用程序安装的用户体验。
本发明实施例中所描述的云编译实现Java应用程序安装的方案主要涉及3个装置:应用市场服务器、编译服务器(也称云端服务器)以及终端设备。可以针对性已知设备的内置应用和第三方应用采取不同的策略,从而实现在特定应用市场上下载的java应用,针对特定的设备有明显的性能改进,从而实现差异化竞争力。其实现的系统架构图如图2所示。
在云端服务器上,针对具体的硬件设备,把相应的内置应用(即内置APP)进行优化编译,将原来android平台编译生成的*.dex文件进一步优化成*.oat文件,最后打包生成*.apk;同时将此apk文件拷贝放在市场服务器特定的硬件设备对应的数据库中,方便后续对应硬件的设备来下载使用。同时将此apk安装在设备上的时候,由于云端服务器已经提前将*.dex文件优化成了*.oat,因此在安装的时候,终端设备的虚拟机模块无需再次做优化,可以大大节省时间。同时程序管理器利用网络通信可以随时和市场服务器建立链接检查当前应用的版本是否是最新版本,从而保证设备运行的应用为最新版本。开发者在提交应用在市场服务器上进行发布的时候,服务器在扫描审核该应用的同时,将其*.dex文件通过patchmaker编译器,将其优化编译,转码成*.oat文件,然后重新打包成*.apk发布在应用市场中便于后续设备下载使用。终端设备通过自己的程序管理器,和市场服务器建立链接后,将本终端设备已有应用的信息及其硬件信息,告知市场服务器,市场服务器根据其硬件和应用的信息进行查询,看看是否可更新升级其应用。
下面将结合图3至图13,从终端设备和云端服务器的角度分别对本发明实施例提供的云编译实现Java应用程序安装的方法、装置及系统进行具体描述。
具体实现中,本发明实施例中所描述的终端设备具体可为手机、平板电脑、个人计算机助理或者笔记本电脑等,上述终端设备仅是举例,而非穷举,包含但不限于上述设备,在此不做限制。下面将以手机为例,进行具体说明。
参见图3,是本发明实施例提供的云编译实现Java应用程序安装的方法的第一实施例流程示意图。本发明实施例中所描述的方法,包括步骤:
S101,终端设备将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息。
具体实现中,本发明实施例将首先以终端设备(以下将以手机为例进行说明)的角度,对本发明实施例提供的云编译实现Java应用程序安装的方法进行具体描述。
在一些可行的实施方式中,手机启动时,可与应用市场服务器建立通信链接,以从应用市场服务器中获取目标应用程序的最新版本信息,或者已经优化完成的目标应用程序的优化安装文件。手机与应用市场服务器建立通信链接之后,可将手机当前的硬件配置信息,以及当前手机中已安装目标应用程序(即待优化的目标应用程序,例如待优化的即时通讯软件等)的版本信息发送给应用市场服务器。其中,上述应用市场服务器具体可为手机的应用市场对应的管理服务平台,应用市场服务器可获知应用市场中包含的各个应用程序的最新版本信息,也可与云端服务器进行通信,以通过云端服务器对目标应用程序的中间码文件(例如*.dex文件)进行编译,以得到优化后的目标应用程序的最新版本信息对应的目标码文件(例如*.oat文件)。手机将其硬件配置信息和目标应用程序的版本信息发送给应用市场服务器之后,则可通过应用市场服务器获取目标应用程序的升级信息,或者目标应用程序的最新版本信息。具体实现中,上述*.dex文件或者*.oat文件为应用程序升级过程中涉及到的中间码,即,具体实现中,Java平台或者Android平台的程序升级可分为本地(native)的程序升级,或者带有中间码的程序升级。本发明实施例中所描述的平台还可包括IOS,或者Windows Phone平台等,在此不做限制。下面将以带有中间码的Android平台为例进行具体说明,其中,上述中间码可包括应用程序的*.dex文件或者*.oat文件等,在此不做限制。
具体实现中,本发明实施例中所描述的手机的硬件配置信息可包括:手机的型号信息,手机的系统版本信息或者手机的硬件接口信息等。其中,上述手机的硬件配置信息或称手机的硬件环境,上述硬件配置信息仅是举例,而非穷举,包含但不限于上述信息,在此不做限制。
S102,所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
具体实现中,手机将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器之后,应用市场服务器可根据手机发送的硬件配置信息,结合应用市场服务器的数据库中存储终端设备的硬件配置信息进行匹配,从数据库中查找得到与手机发送的硬件配置信息相同的数据,进而可根据数据库中存储的硬件配置信息与手机应用程序的版本信息的对应关系,确定当前手机发送的硬件配置信息(以下简称手机配置)对应的目标应用程序的最新版本信息。
在一些可行的实施方式中,应用市场服务器从其数据库中查找得到当前手机配置对应的目标应用程序的最新版本信息之后,可将最新版本信息与手机发送的版本信息进行比对,判断手机发送的版本信息是否为最新版本信息。若手机发送的版本信息不是最新版本信息,则可将当前版本升级优化需要的优化应用程序的升级信息反馈给手机。手机可接收应用市场服务器反馈的目标应用程序的升级信息,其中,上述升级信息可包括:目标应用程序的版本信息(即当前手机中安装的目标应用程序的版本)对应的中间码文件(例如*.dex文件)编译得到的优化后的目标应用程序的最新版本信息对应的目标码文件(例如*.oat文件)。具体实现中,手机可通过应用市场服务器获取云端服务器预先编译得到的优化后的目标应用程序的*.oat文件,上述优化后的目标应用程序的*.oat文件是云端服务器预先编译得到并存储中应用市场服务器中的目标应用程序的目标码文件,终端设备可直接从应用市场服务器中获取。终端设备也可直接与云端服务器建立连接,从云端服务器上下载云端服务器预先编译得到的优化后的上述目标应用程序的*.oat文件,具体实现方式可根据手机与云端服务器和应用市场服务器的通信链接关系确定,在此不做限制。
需要说明的是,在本发明实施例中,终端设备还可通过应用市场服务器实时可将需要优化升级的各种手机配置及其对应的目标应用程序的版本信息发送给云端服务器,通过云端服务器对各种手机配置对应的目标应用程序进行实时编译,以得到优化后的目标应用程序的最新版本信息对应的目标码文件。云端服务器可将原来在Android平台上本地编译生成的*.dex文件进一步编译为*.oat文件,通过在编译过程中添加优化算法以编译得到优化后的目标应用程序的目标码文件(具体为*.oat文件),最后根据*.oat文件打包成目标应用程序的*.apk文件。云端服务器完成了*.apk文件的打包之后,则可将其拷贝放置至应用市场服务器上各种手机配置对应的数据库中,以供手机下载使用。
S103,所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
在一些可行的实施方式中,手机获取得到应用市场服务器反馈的升级信息之后,则可根据上述升级信息对目标应用程序进行优化安装,更新手机上现有的目标应用程序的版本。具体实现中,本发明实施例中所描述的目标应用程序的升级信息具体可为:目标应用程序在Android平台上编译生成的*.dex文件通过云端服务器进行译得到的优化的*.oat文件,将上述优化的*.oat文件可打包生成目标应用程序的优化后的应用程序*.apk文件。手机可根据上述*.apk文件进行应用程序的优化安装,更新手机中现有的应用程序版本。
本发明实施例手机可将其硬件配置信息以及手机当前安装的目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器匹配得到手机的硬件配置信息对应的目标应用程序的最新版本信息。手机可接收应用市场服务器发送的目标应用程序的升级信息,进而可根据上述升级信息对目标应用程序进行优化安装,通过安装优化后的应用程序(即最新版本的应用程序)来更新手机上的目标应用程序,使得目标应用程序达到最新版本。本发明实施例将目标应用程序当前版本信息对应的中间码文件编译得到最新版本信息对应的目标码文件的过程放在云端市场服务器进行,终端设备无需在设备上进行应用程序的升级优化的编译,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化安装的效率,增强手机的用户体验。通过快速应用安装,吸引原本在其他网络安装的用户到本发明实施例中所描述的应用市场下载应用安装。
参见图4,是本发明实施例提供的云编译实现Java应用程序安装的方法的第二实施例流程示意图。本发明实施例中所描述的方法,包括步骤:
S201,终端设备将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息。
具体实现中,手机将其硬件配置信息和目标应用程序的版本信息发送给应用市场服务器的具体实现过程可参见上述第一实施例中的步骤S101所描述的实现方式,在此不再赘述。
S202,所述终端设备接收所述应用市场服务器发送的所述目标应用程序的增量升级包;其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
在一些可行的实施方式中,手机接收应用市场服务器反馈的目标应用程序的升级信息具体可为目标应用程序的最新版本信息对应的优化安装包(优化APK),手机可接收应用市场服务器发送的目标应用程序的最新版本信息对应的优化APK。其中,上述优化安装包由目标应用程序的最新版本信息对应的目标码文件打包生成,上述目标码文件由云端服务器根据手机中安装的目标应用程序的当前版本信息中包含的所有功能对应的中间码文件编译得到,上述优化安装包存储于所述应用市场服务器。手机获取得到上述优化安装包之后,则根据上述优化安装包重新安装上述目标应用程序,将上述目标应用程序的所有功能的版本更新为最新版本。具体实现中,上述手机获取上述优化APK并根据上述优化APK对目标应用程序进行优化安装的具体实现过程可参见上述第一实施例步骤S102和S103中所描述的实现方式,在此不再赘述。
进一步的,手机接收应用市场服务器发送的目标应用程序的升级信息还可为目标应用程序的增量升级包。其中,上述增量升级包由上述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成。上述目标码文件由上述云端服务器根据上述目标应用程序中待升级优化的指定功能对应的中间码文件编译得到,上述增量升级包存储于应用市场服务器。例如,当第三方开发者需要升级其发布在本发明实施例提供的应用市场上的应用程序时,可将其本地编译好的APK提交到本发明实施例提供的应用市场服务器上(即本发明实施例中所描述的应用市场的管理平台)。应用市场服务器可将第三方开发者发送的目标应用程序的最新版本信息与应用市场中现有的版本信息进行对比,确定待升级优化的指定功能。具体的,云端服务器可通过最新版本信息和现有版本信息的比对,确定最新版本中新增的指定功能的升级信息,进而可采用优化增量编译的方式通过云端服务器对目标应用程序的*.dex文件进行编译优化,编译得到最新版本的目标应用程序的*.oat文件之后打包形成新的APK和增量升级包。应用市场服务器可将云端服务器优化得到的新的APK和增量升级包发布至应用市场以供手机下载使用。手机与应用市场服务器建立通信连接,将其硬件配置信息和目标应用程序的版本信息发送给应用市场服务器之后,则可通过应用市场服务器获取应用市场上的目标应用程序的增量升级包。
S203,所述终端设备将所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包。
S204,根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
具体实现中,手机获取得到目标应用程序的增量升级包之后,则可将增量升级包和手机现有的目标应用程序的APK文件进行融合,生成包含上述指定功能的最新版本信息对应的目标应用程序的安装包,即新的优化后的APK文件。手机可根据上述优化后的APK文件进行目标应用程序的优化安装。手机无需在目标应用程序的安装过程中执行AoT的编译优化过程,节省了应用程序的安装时间。具体实现中,手机根据目标应用程序的升级信息对优化应用程序进行安装以更新目标应用程序的版本的具体实现过程可参见上述第一实施例中的步骤S103所描述的实现方式,在此不再赘述。
本发明实施例手机可将其硬件配置信息以及手机当前安装的目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器匹配得到手机的硬件配置信息对应的目标应用程序的最新版本信息。手机可接收应用市场服务器发送的目标应用程序的增量升级包,将上述优化应用程序的增量升级包和现有的目标应用程序的APK进行融合得到优化后的APK,根据优化后的APK对优化应用程序进行安装,通过安装优化应用程序来更新手机上的目标应用程序,使得目标应用程序达到最新版本。本发明实施例将目标应用程序升级的编译优化放在云端服务器进行,手机无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化的效率,增强手机的用户体验。
参见图5,是本发明实施例提供的云编译实现Java应用程序安装的方法的第三实施例流程示意图。本发明实施例所描述的方法,包括步骤:
S301,云端服务器获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件。
具体实现中,下面将以云端服务器的角度描述云端服务器如何直接或者间接与应用市场服务器和手机进行通信,通过云编译实现Java应用程序的安装。下面将以云端服务器为执行主体,对本发明实施例提供的云编译实现Java应用程序安装的方法进行具体描述。
在一些可行的实施方式中,云端服务器可首先通过应用市场服务器从应用市场中获取多种硬件配置类型对应的多个手机的硬件配置信息,例如,云端服务器可从应用市场中获取具备第一硬件配置信息的手机1的硬件配置信息,或者从应用市场中获取具备第二硬件配置信息的手机2的硬件配置信息。云端服务器获取得到各个手机的硬件配置信息之后,则可从应用市场服务器中获取各个手机的硬件配置信息对应的一个或者多个应用程序的最新版本信息,进而可建立各个手机的硬件配置信息和各个手机应用程序的最新版本信息的对应关系。云端服务器建立手机的硬件配置信息和手机应用程序的最新版本信息的对应关系之后,若手机获取到任意一个手机的硬件配置信息,则可根据手机的硬件配置信息确定手机对应的应用程序的最新版本信息,进而可根据手机内置的已有应用程序的版本信息确定是否对手机内置的应用程序的版本进行更新。
在一些可行的实施方式中,云端服务器可与应用市场服务器建立通信连接,以通过应用市场服务器获取手机发送的目标应用程序的版本信息和手机的硬件配置信息,也可通过应用市场服务器获取目标终端应用的最新版本信息和目标应用的安装文件的本地编译文件等信息。具体实现中,云端服务器可从应用市场服务器获取手机的硬件配置信息,还可从云端服务器获取手机内置的目标应用程序的待优化文件,其中,上述待优化文件具体可为*.dex文件,进而可对获取到的*.dex文件进行优化编译得到*.oat文件,以供手机进行优化安装。
S302,所述云端服务器根据所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本。
在一些可行的实施方式中,云端服务器通过应用市场服务器获取得到手机的硬件配置信息之后,则可根据云端服务器预先建立的手机的硬件配置信息和手机应用程序的版本信息的对应关系,将获取到的手机硬件配置信息与预存的各个手机硬件配置信息进行匹配,确定获取到的手机的硬件配置信息对应的目标用于程序的最新版本。云端服务器获取得到手机应用配置信息对应的目标应用程序的最新版本信息之后,则可将从应用市场服务器获取到的手机当前内置的应用程序的版本信息与上述最新版本信息进行比对,判断上述手机内置的应用程序的版本是否为最新版本,进而可确定是否需要对手机内置的应用程序的版本进行更新。
S303,若所述目标终端设备内置的目标应用程序的版本不是最新版本,则根据最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件。
S304,所述云端服务器向所述应用市场服务器发送所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,若云端服务器判断得手机内置的目标应用程序的版本不是最新版本,则可根据最新版本信息对手机本地编译得到的目标应用程序的中间码文件(具体可为*.dex文件)进行编译优化,以得到目标应用程序的最新版本信息对应的目标码文件(具体可为*.oat文件)。具体实现中,云端服务器可将从应用市场服务器获取到的手机内置的目标应用程序的版本信息,与云端服务器中存储的目标应用程序的最新版本信息进行匹配,确定目标应用程序的最新版本信息中新增的指定功能的升级信息。云端服务器确定了目标应用程序的最新版本信息中新增的指定功能的升级信息之后,则可根据上述升级信息对手机内置的目标应用程序的APK中包含的*.dex文件进行编译优化,以得到目标应用程序的所有功能的最新版本信息对应的目标码文件(如*.oat文件),进而可将上述*.oat文件打包生成目标应用程序的最新版本的APK。云端服务器对手机本地编译得到的目标应用程序的*.dex文件进行编译优化得到目标应用程序的*.oat文件之后,则可将上述*.oat文件打包生成APK文件发送给应用市场服务器,放在应用市场服务器上指定存储空间,以供手机下载安装。
在一些可行的实施方式中,云端服务器还可将手机内置的目标应用程序的版本信息与目标应用程序的最新版本信息进行匹配,确定最新版本中新增的指定功能的升级信息。进一步的,云端服务器可获取手机本地编译得到的目标应用程序的*.dex文件,进而可对指定功能对应的*.dex文件进行编译优化,以生成指定功能对应的*.oat文件,并将生成的*.oat文件打包生成目标应用程序的增量升级包。进一步的,云端服务器可将上述*.oat文件打包生目标应用程序的增量升级包发送给应用市场服务器,放在应用市场服务器上指定存储空间,以供手机下载安装。手机可从应用市场服务器下载上述增量升级包,将增量升级包与手机本地编译生成的APK进行融合形成最新版本的目标应用程序的APK,通过对上述APK进行安装来更新目标应用程序。
在本发明实施例中,云端服务器可通过应用市场服务器获取手机的硬件配置信息以及手机当前安装的目标应用程序的版本信息,进而可根据云端服务器中预存的目标应用程序的最新版本信息确定是否对手机安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对手机本地编译得到的*.dex文件进行优化编译,得到优化后的目标应用程序的APK或者增量升级包,进而可将上述优化的APK或者增量升级包发送给应用市场服务器,以供手机下载安装。本发明实施例将目标应用程序升级的编译优化放在云端服务器进行,手机无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化的效率,增强手机的用户体验。本发明实施例通过例如云编译充足的优化时间,吸引高性能要求的应用开发商到本发明实施例中所描述的应用市场挂载应用程序。
参见图6,是本发明实施例提供的云编译实现Java应用程序安装的方法的第四实施例流程示意图。本发明实施例所描述的方法,包括步骤:
S401,应用市场服务器获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息。
具体实现中,下面将以应用市场服务器的角度描述应用市场服务器如何直接或者间接与云端服务器和手机进行通信,实现Java应用程序的更新安装。下面将以应用市场服务器为执行主体,对本发明实施例提供的云编译实现Java应用程序安装的方法进行具体描述。
在一些可行的实施方式中,应用市场服务器可首先接收终端设备(如手机)发送的手机的硬件配置信息,以及手机当前安装的目标应用程序的版本信息,以根据手机的硬件配置信息确定手机当前安装的目标应用程序的版本是否为最新版本,以确定是否需要对手机中安装的目标应用程序进行更新。
S402,所述应用市场服务器根据所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息。
在一些可行的实施方式中,应用市场服务器获取得到手机的硬件配置信息之后,则可根据应用市场服务器中存储的手机的硬件配置信息和目标应用程序的最新版本信息的对应关系,确定上述手机发送的硬件配置信息对应的目标应用成的最新版本信息。即,应用市场服务器可将手机发送的硬件配置信息和其存储的手机的硬件配置信息进行比对,确定手机发送的硬件配置信息是否包含在应用市场服务器中预先存储的终端设备的硬件配置信息中。若应用市场服务器确定了上述手机发送的硬件配置信息包含在预存的硬件配置信息中,则可根据预存的硬件配置信息和目标应用程序的最新版本信息的对应关系,确定手机发送的硬件配置信息对应的目标应用程序的最新版本信息。
S403,所述应用市场服务器根据所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息。
S404,若所述版本信息不是最新版本信息,则将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,应用市场服务器确定了手机发送的硬件配置信息对应的目标应用程序的最新版本信息之后,则可将手机发送的手机当前安装的目标应用程序的版本信息,判断手机中安装的目标应用程序的版本是否为最新版本。应用市场服务器若判断得知手机当前安装的目标应用程序的版本信息不是最新版本信息,则可将云端服务器编译得到的目标应用程序的升级信息发送给手机。其中,上述目标应用程序的升级信息包括:目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的目标应用程序的最新版本信息对应的目标码文件。应用市场服务器可预先获得云端服务器编译得到的上述目标应用程序的最新版本信息对应的目标码文件,并存储在指定位置,进而可在判断得知手机当前安装的目标应用程序的版本不是最新版本时,将上述最新版本信息对应的目标码文件发送给手机,以供手机进行下载安装,更新手机上安装的目标应用程序。
在本发明实施例中,应用市场服务器可获取手机的硬件配置信息以及手机当前安装的目标应用程序的版本信息,进而可根据应用市场服务器中存储的手机的硬件配置信息对应的目标应用程序的最新版本信息,确定是否对手机安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对手机本地编译得到的*.dex文件发送给云端服务器,通过云端服务器进行优化编译,进而将云端服务器编译得到优化后的目标应用程序的目标码文件存储在应用市场服务器的指定位置。进一步的,将上述优化的目标应用程序的目标码文件发送给手机,以供手机对目标应用程序进行优化安装。本发明实施例可将终端设备的硬件配置信息或者终端设备本地编译得到目标应用程序的中间文件发送给云端服务器,通过云端服务器实现目标应用程序的中间码文件的优化编译,得到目标应用程序的最新版本信息对应的目标码文件。应用市场服务器还可将云端服务器编译得到的目标应用程序的目标码文件发送给手机,手机无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化的效率,增强手机的用户体验。
参见图7,是本发明实施例提供的终端设备的第一实施例结构示意图。本发明实施例所描述的终端设备,包括:
发送模块10,用于将终端设备的硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息。
接收模块20,用于接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
安装模块30,用于根据所述接收模块接收到的所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
在一些可行的实施方式中,上述接收模块20具体用于:
接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
在一些可行的实施方式中,上述安装模块30具体用于:
根据所述接收模块接收的所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
在一些可行的实施方式中,上述接收模块20具体用于:
接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
在一些可行的实施方式中,上述安装模块30具体用于:
将所述接收模块接收的所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
具体实现中,本发明实施例中所描述的终端设备可通过其发送模块10、接收模块20和安装模块30实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例和第二实施例中所描述的实现方式。上述终端设备包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例和第二实施例中各个步骤所执行的实现方式,在此不再赘述。
在本发明实施例中,终端设备可将其硬件配置信息以及终端设备当前安装的目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器匹配得到终端设备的硬件配置信息对应的目标应用程序的最新版本信息。终端设备可接收应用市场服务器发送的目标应用程序的升级信息,进而可根据上述升级信息对目标应用程序进行优化安装,通过安装优化后的应用程序(即最新版本的应用程序)来更新终端设备上的目标应用程序,使得目标应用程序达到最新版本。本发明实施例所描述的终端设备可将目标应用程序当前版本信息对应的中间码文件编译得到最新版本信息对应的目标码文件的过程放在云端市场服务器进行,终端设备无需在设备上进行应用程序的升级优化的编译,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化安装的效率,增强手机的用户体验。通过快速应用安装,吸引原本在其他网络安装的用户到本发明实施例中所描述的应用市场下载应用安装。
参见图8,是本发明实施例提供的云端服务器的第一实施例结构示意图。本发明实施例所描述的云端服务器,包括:
获取模块40,用于获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件。
判断模块50,用于根据所述获取模块获取的所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本。
编译模块60,用于在所述判断模块判断结果为否时,根据最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件。
发送模块70,用于向所述应用市场服务器发送所述编译模块编译得到的所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,上述判断模块50具体用于:
将所述获取模块获取的所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
在一些可行的实施方式中,上述编译模块60具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
在一些可行的实施方式中,上述编译模块60具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
在一些可行的实施方式中,上述获取模块40还用于:
通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息;
建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
具体实现中,本发明实施例中所描述的云端服务器可通过其获取模块40、判断模块50、编译模块60和发送模块70实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第三实施例中所描述的实现方式。上述云端服务器包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第三实施例中各个步骤所执行的实现方式,在此不再赘述。
在本发明实施例中,云端服务器可通过应用市场服务器获取终端设备的硬件配置信息以及终端设备当前安装的目标应用程序的版本信息,进而可根据云端服务器中预存的目标应用程序的最新版本信息确定是否对终端设备安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对终端设备本地编译得到的*.dex文件进行优化编译,得到优化后的目标应用程序的APK或者增量升级包,进而可将上述优化的APK或者增量升级包发送给应用市场服务器,以供终端设备下载安装。本发明实施例所描述的云端服务器可将目标应用程序升级的编译优化放在云端服务器进行,终端设备无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的终端设备的运行内存和存储空间,提高应用程序优化的效率,增强终端设备的用户体验。本发明实施例通过例如云编译充足的优化时间,吸引高性能要求的应用开发商到本发明实施例中所描述的应用市场挂载应用程序。
参见图9,是本发明实施例提供的应用市场服务器的第一实施例结构示意图。本发明实施例所描述的应用市场服务器,包括:
获取模块80,用于获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息。
确定模块81,用于根据所述获取模块获取的所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息。
判断模块82,用于根据所述获取模块获取的所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息。
发送模块83,用于在所述判断模块判断结果为否时,将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,上述发送模块83还用于:
将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
具体实现中,本发明实施例中所描述的应用市场服务器可通过其获取模块80、确定模块81、判断模块82和发送模块83实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第四实施例中所描述的实现方式。上述应用市场服务器包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第四实施例中各个步骤所执行的实现方式,在此不再赘述。
在本发明实施例中,应用市场服务器可获取终端设备的硬件配置信息以及终端设备当前安装的目标应用程序的版本信息,进而可根据应用市场服务器中存储的终端设备的硬件配置信息对应的目标应用程序的最新版本信息,确定是否对终端设备安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对终端设备本地编译得到的*.dex文件发送给云端服务器,通过云端服务器进行优化编译,进而将云端服务器编译得到优化后的目标应用程序的目标码文件存储在应用市场服务器的指定位置。进一步的,将上述优化的目标应用程序的目标码文件发送给终端设备,以供终端设备对目标应用程序进行优化安装。本发明实施例所描述的应用市场服务器可将终端设备的硬件配置信息或者终端设备本地编译得到目标应用程序的中间文件发送给云端服务器,通过云端服务器实现目标应用程序的中间码文件的优化编译,得到目标应用程序的最新版本信息对应的目标码文件。应用市场服务器还可将云端服务器编译得到的目标应用程序的目标码文件发送给手机,终端设备无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的手机的运行内存和存储空间,提高应用程序优化的效率,增强手机的用户体验。
参见图10,是本发明实施例提供的终端设备的第二实施例结构示意图。本发明实施例中所描述的终端设备,包括:存储器1001、发送器1002、接收器1003和处理器1004;上述存储器1001、发送器1002、接收器1003和处理器1004通过总线1005连接。
上述存储器1001中存储着一组程序代码;
上述发送器1002、接收器1003和处理器1004用于调用上述存储器1001中存储的程序代码,执行如下操作:
上述发送器1002,用于将终端设备的硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息。
上述接收器1003,用于接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件;
上述处理器1004,用于根据所述接收器接收到的所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
在一些可行的实施方式中,上述接收器1003具体用于:
接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
在一些可行的实施方式中,上述处理器1004具体用于:
根据所述接收器接收的所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
在一些可行的实施方式中,上述接收器1003具体用于:
接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
在一些可行的实施方式中,上述处理器1004具体用于:
将所述接收器接收的所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
具体实现中,本发明实施例中所描述的终端设备可通过其发送器1002、接收器1003和处理器1004实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例和第二实施例中所描述的实现方式。上述终端设备包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例和第二实施例中各个步骤所描述的实现方式,在此不再赘述。
本发明实施例终端设备可将其硬件配置信息以及终端设备当前安装的目标应用程序的版本信息发送给应用市场服务器,以通过应用市场服务器匹配得到终端设备的硬件配置信息对应的目标应用程序的最新版本信息。终端设备可接收应用市场服务器发送的目标应用程序的升级信息,进而可根据上述升级信息对目标应用程序进行优化安装,通过安装优化后的应用程序(即最新版本的应用程序)来更新终端设备上的目标应用程序,使得目标应用程序达到最新版本。本发明实施例将目标应用程序当前版本信息对应的中间码文件编译得到最新版本信息对应的目标码文件的过程放在云端市场服务器进行,终端设备无需在设备上进行应用程序的升级优化的编译,减少应用程序升级优化占用的终端设备的运行内存和存储空间,提高应用程序优化安装的效率,增强终端设备的用户体验。通过快速应用安装,吸引原本在其他网络安装的用户到本发明实施例中所描述的应用市场下载应用安装。
参见图11,是本发明实施例提供的云端服务器的第二实施例结构示意图。本发明实施例所描述的云端服务器,包括:存储器2001、发送器2002、接收器2003和处理器2004;上述存储器2001、发送器2002、接收器2003和处理器2004通过总线2005连接。
上述存储器2001中存储着一组程序代码;
上述发送器2002、接收器2003和处理器2004用于调用上述存储器2001中存储的程序代码,执行如下操作:
上述接收器2003,用于获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件。
上述处理器2004,用于根据所述接收器获取的所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本。
上述处理器2004,还用于在判断的所述目标终端设备内置的目标应用程序的版本不是最新版本时,根据最新版本信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件。
上述发送器2002,用于向所述应用市场服务器发送所述处理器处理得到的所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,上述处理器2004具体用于:
将所述接收器获取的所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
在一些可行的实施方式中,上述处理器2004具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
在一些可行的实施方式中,上述处理器2004具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
在一些可行的实施方式中,上述接收器2003还用于:
通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息。
上述处理器2004,还用于建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
具体实现中,本发明实施例中所描述的云端服务器可通过其发送器2002、接收器2003和处理器2004等模块实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第三实施例中所描述的实现方式。上述云端服务器包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第三实施例中各个步骤所描述的实现方式,在此不再赘述。
在本发明实施例中,云端服务器可通过应用市场服务器获取终端设备的硬件配置信息以及终端设备当前安装的目标应用程序的版本信息,进而可根据云端服务器中预存的目标应用程序的最新版本信息确定是否对终端设备安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对终端设备本地编译得到的*.dex文件进行优化编译,得到优化后的目标应用程序的APK或者增量升级包,进而可将上述优化的APK或者增量升级包发送给应用市场服务器,以供终端设备下载安装。本发明实施例将目标应用程序升级的编译优化放在云端服务器进行,终端设备无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的终端设备的运行内存和存储空间,提高应用程序优化的效率,增强终端设备的用户体验。本发明实施例通过例如云编译充足的优化时间,吸引高性能要求的应用开发商到本发明实施例中所描述的应用市场挂载应用程序。
参见图12,是本发明实施例提供的应用市场服务器的第二实施例结构示意图。本发明实施例所描述的应用市场服务器,包括:存储器3001、发送器3002、接收器3003和处理器3004;上述存储器3001、发送器3002、接收器3003和处理器3004通过总线3005连接。
上述存储器3001中存储着一组程序代码;
上述发送器3002、接收器3003和处理器3004用于调用上述存储器3001中存储的程序代码,执行如下操作:
上述发送器3002,用于获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息。
上述处理器3004,用于根据所述发送器获取的所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息。
上述处理器3004,还用于根据所述接收器获取的所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息。
上述发送器3002,用于在所述处理器判断结果为否时,将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上编译得到的所述目标应用程序的最新版本信息对应的目标码文件。
在一些可行的实施方式中,上述发送器3002还用于:
将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
具体实现中,本发明实施例中所描述的应用市场服务器可通过其发送器3002、接收器3003和处理器3004等模块实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第四实施例中所描述的实现方式。上述应用市场服务器包含的各个模块所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第四实施例中各个步骤所描述的实现方式,在此不再赘述。
在本发明实施例中,应用市场服务器可获取终端设备的硬件配置信息以及终端设备当前安装的目标应用程序的版本信息,进而可根据应用市场服务器中存储的终端设备的硬件配置信息对应的目标应用程序的最新版本信息,确定是否对终端设备安装的目标应用程序的版本进行更新。若需要对目标应用程序的版本进行更新,则可对终端设备本地编译得到的*.dex文件发送给云端服务器,通过云端服务器进行优化编译,进而将云端服务器编译得到优化后的目标应用程序的目标码文件存储在应用市场服务器的指定位置。进一步的,将上述优化的目标应用程序的目标码文件发送给终端设备,以供终端设备对目标应用程序进行优化安装。本发明实施例可将终端设备的硬件配置信息或者终端设备本地编译得到目标应用程序的中间文件发送给云端服务器,通过云端服务器实现目标应用程序的中间码文件的优化编译,得到目标应用程序的最新版本信息对应的目标码文件。应用市场服务器还可将云端服务器编译得到的目标应用程序的目标码文件发送给终端设备,终端设备无需在设备上进行应用程序的升级优化,减少应用程序升级优化占用的终端设备的运行内存和存储空间,提高应用程序优化的效率,增强手机的用户体验。
参见图13,是本发明实施例提供的云编译实现Java应用程序安装的系统的实施例结构示意图。本发明实施例所描述的系统,包括:本发明实施例中所描述的终端设备1000、云端服务器2000和应用市场服务器3000。本发明实施例中所描述的终端设备1000、云端服务器2000和应用市场服务器3000构成的系统架构图可参见图10。
具体实现中,本发明实施例中所描述的系统可通过其终端设备1000、云端服务器2000和应用市场服务器3000实现本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例至第四实施例中所描述的实现方式。上述终端设备1000、云端服务器2000和应用市场服务器3000所执行的实现方式可参见上述本发明实施例中所描述的云编译实现Java应用程序安装的方法的第一实施例至第四实施例中所描述的实现方式,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件(例如处理器)来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (25)

1.一种云编译实现Java应用程序安装的方法,其特征在于,包括:
终端设备将其硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息;
所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上针对所述终端设备的硬件配置信息编译得到的所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件;
所述终端设备根据所述云端服务器编译完成的所述目标码文件对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
2.如权利要求1所述的方法,其特征在于,所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,包括:
所述终端设备接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
3.如权利要求2所述的方法,其特征在于,所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本,包括:
所述终端设备根据所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
4.如权利要求1所述的方法,其特征在于,所述终端设备接收所述应用市场服务器反馈的所述目标应用程序的升级信息,包括:
所述终端设备接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
5.如权利要求4所述的方法,其特征在于,所述终端设备根据所述升级信息对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本,包括:
所述终端设备将所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
6.一种云编译实现Java应用程序安装的方法,其特征在于,包括:
云端服务器获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件;
所述云端服务器根据所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本;
若所述目标终端设备内置的目标应用程序的版本不是最新版本,则根据最新版本信息针对所述终端设备的硬件配置信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件;
所述云端服务器向所述应用市场服务器发送所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
7.如权利要求6所述的方法,其特征在于,所述云端服务器根据所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本,包括:
所述云端服务器将所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
8.如权利要求6所述的方法,其特征在于,所述根据所述最新版本信息针对所述终端设备的硬件配置信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,包括:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息针对所述终端设备的硬件配置信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
9.如权利要求6所述的方法,其特征在于,所述根据所述最新版本信息针对所述终端设备的硬件配置信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,包括:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息针对所述终端设备的硬件配置信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
10.如权利要求6-9任一项所述的方法,其特征在于,所述云端服务器获取应用市场服务器发送的目标终端设备的硬件配置信息之前,所述方法还包括:
所述云端服务器通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息;
建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
11.一种云编译实现Java应用程序安装的方法,其特征在于,包括:
应用市场服务器获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息;
所述应用市场服务器根据所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
所述应用市场服务器根据所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息;
若所述版本信息不是最新版本信息,则将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上针对所述终端设备的硬件配置信息编译得到的所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件。
12.如权利要求11所述的方法,其特征在于,所述应用市场服务器获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息之后,所述方法还包括:
所述应用市场服务器将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
13.一种终端设备,其特征在于,包括:
发送模块,用于将终端设备的硬件配置信息及目标应用程序的版本信息发送给应用市场服务器,以通过所述应用市场服务器获取与所述硬件配置信息及所述目标应用程序的版本信息对应的所述目标应用程序的升级信息;
接收模块,用于接收所述应用市场服务器反馈的所述目标应用程序的升级信息,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上针对所述终端设备的硬件配置信息编译得到的所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件;
安装模块,用于根据所述接收模块接收到的所述云端服务器编译完成的所述目标码文件对所述目标应用程序进行优化安装,以更新所述目标应用程序的版本。
14.如权利要求13所述的终端设备,其特征在于,所述接收模块具体用于:
接收所述应用市场服务器发送的所述目标应用程序的最新版本信息对应的优化安装包;
其中,所述优化安装包由所述目标应用程序的最新版本信息对应的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序的所述版本信息中包含的所有功能对应的中间码文件编译得到,所述优化安装包存储于所述应用市场服务器。
15.如权利要求14所述的终端设备,其特征在于,所述安装模块具体用于:
根据所述接收模块接收的所述优化安装包重新安装所述目标应用程序,以将所述目标应用程序的所有功能的版本更新为最新版本。
16.如权利要求13所述的终端设备,其特征在于,所述接收模块具体用于:
接收所述应用市场服务器发送的所述目标应用程序的增量升级包;
其中,所述增量升级包由所述目标应用程序中的指定功能的最新版本信息的目标码文件打包生成,所述目标码文件由所述云端服务器根据所述目标应用程序中待升级优化的所述指定功能对应的中间码文件编译得到,所述增量升级包存储于所述应用市场服务器。
17.如权利要求16所述的终端设备,其特征在于,所述安装模块具体用于:
将所述接收模块接收的所述目标应用程序的所述增量升级包与所述目标应用程序版本信息对应的安装包进行融合,以生成包含所述指定功能的最新版本信息的所述目标应用程序的安装包;
根据所述安装包重新安装所述目标应用程序,以将所述目标应用程序的所述指定功能的版本更新为最新版本。
18.一种云端服务器,其特征在于,包括:
获取模块,用于获取应用市场服务器发送的目标终端设备的硬件配置信息,以及所述目标终端设备内置的目标应用程序的中间码文件;
判断模块,用于根据所述获取模块获取的所述目标终端设备的硬件配置信息,以及所述云端服务器存储的终端设备的硬件配置信息与应用程序的版本信息的对应关系,判断所述目标终端设备内置的目标应用程序的版本是否为最新版本;
编译模块,用于在所述判断模块判断结果为否时,根据最新版本信息针对所述终端设备的硬件配置信息对所述的目标应用程序的中间码文件进行编译,以得到所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件;
发送模块,用于向所述应用市场服务器发送所述编译模块编译得到的所述目标应用程序的最新版本信息对应的目标码文件,以通过所述应用市场服务器向所述目标终端设备发送所述目标应用程序的最新版本信息对应的目标码文件。
19.如权利要求18所述的云端服务器,其特征在于,所述判断模块具体用于:
将所述获取模块获取的所述目标终端设备的硬件配置信息与所述云端服务器存储的各个终端设备的硬件配置信息进行匹配,确定所述目标终端设备的硬件配置信息是否为所述云端服务器存储的所述各个终端设备的硬件配置信息中的任一个;
若所述目标终端设备的硬件配置信息为所述云端服务器存储的所述硬件配置信息中的任一个,则根据所述各个终端设备的硬件配置信息与应用程序的版本信息的对应关系,确定所述目标终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,以判断所述目标终端设备内置的所述目标应用程序的版本是否为最新版本。
20.如权利要求18所述的云端服务器,其特征在于,所述编译模块具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息针对所述终端设备的硬件配置信息对所述目标终端内置的所述目标应用程序的安装包中包含的中间码文件进行编译,以得到包含所述指定功能的最新版本信息的所述目标应用程序的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的最新版本信息对应的优化安装包。
21.如权利要求18所述的云端服务器,其特征在于,所述编译模块具体用于:
将所述目标终端设备内置的所述目标应用程序的版本信息与所述目标应用程序的最新版本信息进行匹配,确定所述目标应用程序的最新版本信息中新增的指定功能的升级信息;
根据所述指定功能的升级信息针对所述终端设备的硬件配置信息对所述指定功能对应的中间码文件进行编译,以生成所述指定功能的最新版本信息对应的目标码文件,并将所述目标码文件打包生成所述目标应用程序的增量升级包。
22.如权利要求18-21任一项所述的云端服务器,其特征在于,所述获取模块还用于:
通过所述应用市场服务器从应用市场中获取至少一种硬件配置类型的至少一个终端设备的硬件配置信息;
通过所述应用市场服务器从所述应用市场中获取各个所述终端设备的硬件配置信息对应的至少一个应用程序的最新版本信息;
建立所述各个终端设备的硬件配置信息与各个所述应用程序的最新版本信息的对应关系。
23.一种应用市场服务器,其特征在于,包括:
获取模块,用于获取终端设备发送的所述终端设备的硬件配置信息及目标应用程序的版本信息;
确定模块,用于根据所述获取模块获取的所述终端设备的硬件配置信息,以及所述应用市场服务器中存储的终端设备的硬件配置信息与所述目标应用程序的最新版本信息的对应关系,确定所述终端设备的硬件配置信息对应的所述目标应用程序的最新版本信息;
判断模块,用于根据所述获取模块获取的所述终端设备发送的所述目标应用程序的版本信息,判断所述版本信息是否为最新版本信息;
发送模块,用于在所述判断模块判断结果为否时,将所述目标应用程序的升级信息发送给所述终端设备,所述升级信息包括:所述目标应用程序的版本信息对应的中间码文件在云端服务器上针对所述终端设备的硬件配置信息编译得到的所述目标应用程序的最新版本信息对应的目标码文件,所述目标码文件为用于所述终端设备直接运行而无需所述终端设备编译的机器码格式的文件。
24.如权利要求23所述的应用市场服务器,其特征在于,所述发送模块还用于:
将所述终端设备的配置信息,以及所述应用市场服务器中存储的所述目标应用程序的中间码文件发送给所述云端服务器,以通过所述云端服务器根据所述目标应用程序的最新版本信息对所述目标应用程序的中间码文件进行编译,得到所述目标应用程序的最新版本信息对应的目标码文件。
25.一种云编译实现Java应用程序安装的系统,其特征在于,包括:如权利要求13-17任一项所述的终端设备、如权利要求18-22任一项所述的云端服务器,以及如权利要求23或者24所述的应用市场服务器。
CN201510268738.0A 2015-05-22 2015-05-22 一种云编译实现Java应用安装的方法、装置及系统 Active CN105100191B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510268738.0A CN105100191B (zh) 2015-05-22 2015-05-22 一种云编译实现Java应用安装的方法、装置及系统
EP15882898.8A EP3128421B1 (en) 2015-05-22 2015-11-19 Method, device, and system for achieving java application installation by cloud compilation
PCT/CN2015/095025 WO2016188059A1 (zh) 2015-05-22 2015-11-19 一种云编译实现Java应用安装的方法、装置及系统
US15/261,424 US10904361B2 (en) 2015-05-22 2016-09-09 Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510268738.0A CN105100191B (zh) 2015-05-22 2015-05-22 一种云编译实现Java应用安装的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105100191A CN105100191A (zh) 2015-11-25
CN105100191B true CN105100191B (zh) 2018-09-21

Family

ID=54579709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510268738.0A Active CN105100191B (zh) 2015-05-22 2015-05-22 一种云编译实现Java应用安装的方法、装置及系统

Country Status (4)

Country Link
US (1) US10904361B2 (zh)
EP (1) EP3128421B1 (zh)
CN (1) CN105100191B (zh)
WO (1) WO2016188059A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488198A (zh) * 2015-11-27 2016-04-13 魅族科技(中国)有限公司 一种应用程序的推荐方法及终端
CN106997294A (zh) * 2016-01-26 2017-08-01 中兴通讯股份有限公司 odex文件生成方法及装置
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
CN105843635A (zh) * 2016-03-01 2016-08-10 乐视云计算有限公司 Android设备的应用程序本地化安装方法和装置
US9800994B1 (en) * 2016-04-08 2017-10-24 Quest Software Inc. Systems and methods for cloud-based device configuration management of heterogeneous devices
JP6444932B2 (ja) * 2016-04-15 2018-12-26 ファナック株式会社 サーバベースのアプリケーションソフトウエア実行システム
CN106293849B (zh) * 2016-08-18 2020-01-31 华为技术有限公司 一种应用更新方法和终端
CN107872497A (zh) * 2016-09-28 2018-04-03 清华大学 透明计算终端应用程序同步共享方法及装置
CN106550022B (zh) * 2016-10-24 2020-12-18 上海瀚银信息技术有限公司 一种应用程序分发控制处理方法及系统
CN106610861B (zh) * 2016-11-14 2019-09-03 广州视源电子科技股份有限公司 编译方法及装置
CN107168742B (zh) * 2017-05-19 2018-01-19 中南大学 基于定制安卓平台的应用快速部署方法
CN107357612A (zh) * 2017-06-27 2017-11-17 聚好看科技股份有限公司 应用程序升级检测方法及装置
US10719308B1 (en) * 2017-11-06 2020-07-21 Allscripts Software, Llc System and method for dynamically monitoring a configuration of a server computing device
US20190158367A1 (en) * 2017-11-21 2019-05-23 Hewlett Packard Enterprise Development Lp Selection of cloud service providers to host applications
CN110162311A (zh) * 2018-02-13 2019-08-23 中兴通讯股份有限公司 一种应用安装方法、应用安装包的生成方法
CN109327740B (zh) * 2018-09-12 2021-08-17 深圳市酷开网络科技股份有限公司 终端的推广应用运行方法、终端及计算机可读存储介质
CN109395395A (zh) * 2018-09-20 2019-03-01 Oppo广东移动通信有限公司 游戏运行方法及相关产品
DE102018124330A1 (de) 2018-10-02 2020-04-02 Endress+Hauser Conducta Gmbh+Co. Kg Verfahren zum Anpassen von Funktionalitäten eines Feldgeräts
WO2020077487A1 (zh) * 2018-10-15 2020-04-23 华为技术有限公司 优化和运行安卓应用程序的方法以及相关装置
CN109766127B (zh) * 2019-01-16 2022-06-28 上海掌门科技有限公司 用于更新应用程序版本信息的方法
CN110032307A (zh) * 2019-02-26 2019-07-19 华为技术有限公司 一种应用图标的移动方法及电子设备
CN111913688A (zh) * 2019-05-08 2020-11-10 北京火星人视野科技有限公司 一种程序开发方法及系统
CN110336695A (zh) * 2019-06-21 2019-10-15 威富通科技有限公司 一种部署和维护应用的方法和服务器
CN110531986B (zh) * 2019-08-16 2022-12-06 苏州浪潮智能科技有限公司 一种管理软件升级包的生成方法、装置、设备及介质
CN112445487A (zh) * 2019-09-02 2021-03-05 深圳Tcl新技术有限公司 一种dex优化方法、系统、智能终端及存储介质
CN110609793A (zh) * 2019-09-10 2019-12-24 深圳证券交易所 软件的送测方法、服务器及系统
CN110597542B (zh) * 2019-09-17 2023-01-31 Oppo(重庆)智能科技有限公司 软件自动ota升级方法及装置、电子设备
CN110780940A (zh) * 2019-09-24 2020-02-11 维沃移动通信有限公司 应用程序加载方法、电子设备和存储介质
WO2021118173A1 (en) * 2019-12-09 2021-06-17 Samsung Electronics Co., Ltd. Electronic device and controlling method of electronic device
CN111104158A (zh) * 2019-12-23 2020-05-05 锐捷网络股份有限公司 一种软件打包的方法、装置、计算机设备及存储介质
CN113032035B (zh) * 2019-12-24 2022-07-12 Oppo广东移动通信有限公司 配置文件处理方法、装置以及电子设备
CN111273963B (zh) * 2020-02-14 2023-02-24 广州极尚网络技术有限公司 应用程序配置信息生成方法、装置、计算机设备和介质
CN113741952A (zh) * 2020-05-29 2021-12-03 华为技术有限公司 一种软件包管理方法、装置、设备及介质
CN112131099B (zh) * 2020-08-12 2023-07-14 新华三大数据技术有限公司 一种版本升级测试方法及装置
CN112463863A (zh) * 2020-11-05 2021-03-09 深圳市和讯华谷信息技术有限公司 一种云平台数据采集方法及装置
CN112631622A (zh) * 2020-12-29 2021-04-09 Oppo广东移动通信有限公司 应用安装方法、装置、服务器及计算机可读介质
CN112965842B (zh) * 2021-04-06 2024-09-20 广东工业大学 一种云编译方法、装置、电子设备及存储介质
CN115794046A (zh) * 2021-09-10 2023-03-14 瑞昱半导体股份有限公司 安卓电视混合型应用程序开发方法
CN114661372B (zh) * 2022-03-03 2024-08-20 北京达佳互联信息技术有限公司 配置信息处理方法、装置及服务器
CN114661321A (zh) * 2022-03-08 2022-06-24 阿里巴巴(中国)有限公司 数据处理系统、数据处理方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546269A (zh) * 2008-03-28 2009-09-30 鸿富锦精密工业(深圳)有限公司 可执行文件版本更新系统及方法
CN103019785A (zh) * 2012-12-11 2013-04-03 北京奇虎科技有限公司 用于处理程序升级的方法和装置
CN103051723A (zh) * 2012-12-27 2013-04-17 广州市动景计算机科技有限公司 一种增量升级方法及服务器、终端
CN103051689A (zh) * 2012-12-11 2013-04-17 北京奇虎科技有限公司 一种程序升级下载方法和装置
CN103647816A (zh) * 2013-12-03 2014-03-19 北京奇虎科技有限公司 一种应用软件升级的方法及装置
CN104321746A (zh) * 2012-03-02 2015-01-28 谷歌公司 应用文件的分发

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100441115B1 (ko) 2001-06-27 2004-07-19 주식회사 인터와이즈 정보 단말기의 자바 프로그램 처리 속도 향상을 위한 자바컴파일 온 디멘드 서비스 시스템 및 그 방법
CN1858708A (zh) 2006-02-17 2006-11-08 华为技术有限公司 一种实现java应用软件编译处理的系统、设备及方法
EP2175366B1 (en) * 2008-10-08 2012-10-10 Research In Motion Limited Server for sending new application portions to mobile wireless communications devices and related methods
US8645936B2 (en) * 2009-09-30 2014-02-04 Zynga Inc. Apparatuses, methods and systems for an a API call abstractor
CN102035892A (zh) * 2010-12-23 2011-04-27 中科方德软件有限公司 操作系统版本自动发布和软件包自动更新的系统及方法
US8868019B2 (en) * 2011-07-21 2014-10-21 Siano Mobile Silicon Ltd. Forward filter training scheme
CN102724308A (zh) * 2012-06-13 2012-10-10 腾讯科技(深圳)有限公司 软件更新方法及软件更新系统
KR20140031451A (ko) * 2012-08-30 2014-03-13 삼성전자주식회사 클라우드 시스템의 컨텐츠 동기화장치 및 방법
US9569184B2 (en) * 2012-09-05 2017-02-14 Microsoft Technology Licensing, Llc Generating native code from intermediate language code for an application
US8887181B1 (en) * 2012-09-25 2014-11-11 Amazon Technologies, Inc. Application add-on platform
CN103902300B (zh) 2012-12-24 2017-08-04 珠海市君天电子科技有限公司 一种Android模拟器快速安装APK程序的方法及系统
CN104063239B (zh) * 2013-03-22 2019-01-15 腾讯科技(深圳)有限公司 移动终端的应用程序更新方法及服务器、客户端
US9529579B2 (en) * 2013-11-06 2016-12-27 CrowdCare Corporation System and method of dynamic configuration engine for electronic devices
CN103631632B (zh) * 2013-11-29 2017-08-04 华为技术有限公司 移植方法及源到源编译器
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统
CN103812946B (zh) * 2014-02-27 2017-12-26 广州梦能动漫科技有限公司 一种ar应用程序在线云更新的方法和系统
US9460288B2 (en) * 2014-12-08 2016-10-04 Shape Security, Inc. Secure app update server and secure application programming interface (“API”) server
US20180067777A1 (en) * 2015-03-20 2018-03-08 Huawei Technologies Co., Ltd. Application protection method, server, and terminal
CN105630543B (zh) 2015-12-21 2019-03-05 北京奇虎科技有限公司 一种应用冷启动加速的方法及装置
CN106681772A (zh) 2016-12-30 2017-05-17 深圳天珑无线科技有限公司 一种应用启动的加速方法、装置及终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546269A (zh) * 2008-03-28 2009-09-30 鸿富锦精密工业(深圳)有限公司 可执行文件版本更新系统及方法
CN104321746A (zh) * 2012-03-02 2015-01-28 谷歌公司 应用文件的分发
CN103019785A (zh) * 2012-12-11 2013-04-03 北京奇虎科技有限公司 用于处理程序升级的方法和装置
CN103051689A (zh) * 2012-12-11 2013-04-17 北京奇虎科技有限公司 一种程序升级下载方法和装置
CN103051723A (zh) * 2012-12-27 2013-04-17 广州市动景计算机科技有限公司 一种增量升级方法及服务器、终端
CN103647816A (zh) * 2013-12-03 2014-03-19 北京奇虎科技有限公司 一种应用软件升级的方法及装置

Also Published As

Publication number Publication date
WO2016188059A1 (zh) 2016-12-01
EP3128421B1 (en) 2022-04-06
EP3128421A4 (en) 2017-05-17
US20160378462A1 (en) 2016-12-29
EP3128421A1 (en) 2017-02-08
US10904361B2 (en) 2021-01-26
CN105100191A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105100191B (zh) 一种云编译实现Java应用安装的方法、装置及系统
US10831987B2 (en) Computer program product provisioned to non-transitory computer storage of a wireless mobile device
CN103530156B (zh) 动态加载和调用程序的方法及装置
CN105389222B (zh) 一种动态调用原生接口的方法、装置和系统
CN107967139B (zh) 游戏的热更新方法及装置
CN109976761A (zh) 软件开发工具包的生成方法、装置及终端设备
CN105159732B (zh) 在移动终端安装或更新应用程序的方法和移动终端
CN103443763B (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN110007926B (zh) 语言转换方法及装置
CN109240733A (zh) 一种基于安卓系统更新广告sdk的方法及终端
CN110716786B (zh) 一种页面展示方法、系统及存储介质
CN113031957A (zh) 应用程序的安装方法、客户端、终端、服务器及存储介质
CN108334360A (zh) 应用程序动态加载的方法、装置、存储介质和计算机设备
US20040157593A1 (en) Modularization for J2ME platform implementation
CN107092472B (zh) 一种动态发布方法及设备
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
CN108563475A (zh) 应用程序的运行方法、装置及存储介质
CN101533345A (zh) 基于可扩展标记语言配置信息的装置及方法
CN109960522A (zh) 一种软件升级方法及装置
Daubaris Towards Adaptive WebAssembly Applications: Leveraging Capabilities of the Execution Environment
CN117389567A (zh) 多端应用开发方法、装置、介质及设备
CN118626095A (zh) 一种代码处理方法、装置、设备及介质
CN115509634A (zh) 输入法配置方法、字符输入方法、设备及介质
CN118092962A (zh) 代码文件的加载方法、电子设备、存储介质及程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant