应用编译方法及装置与流程

文档序号:15931026发布日期:2018-11-14 01:38阅读:187来源:国知局

本公开涉及计算机技术领域,尤其涉及一种应用编译方法及装置。

背景技术

终端设备(例如智能手机)的操作系统(例如安卓系统)通常包括底层、系统框架以及上层系统应用程序三个部分,这三个部分各自有各自的源代码。在相关技术中编译系统时,通常把三个部分各个项目的代码放在一起,用统一的命令编译出各自的可执行文件,再统一压缩成分区镜像文件,以便写入到终端设备中。然而,在采用这种完整编译的方式时,如果有任何一个项目(尤其是系统应用中的任意一个)编译失败,则整个系统都会编译失败,导致该编译方式局限较大。



技术实现要素:

为克服相关技术中存在的问题,本公开提供一种应用编译方法及装置。

根据本公开实施例的第一方面,提供一种应用编译方法,包括:

确定系统应用的标识,所述标识用于唯一确定所述系统应用;

对所述系统应用的源代码进行编译,得到所述系统应用的应用文件,其中,所述应用文件的版本与所述源代码的版本相对应;

将所述应用文件加入到应用库中,其中,所述标识对应于一个或多个版本。

在一种可能的实现方式中,所述方法还包括:

在系统编译过程中,根据系统源代码中的系统应用清单文件,确定待编译的系统应用的标识和版本;

根据所述标识和所述版本,从所述应用库中获取与所述标识和所述版本相应的应用文件;

将所述应用文件压缩到系统镜像文件中。

在一种可能的实现方式中,所述方法还包括:

根据所述系统应用的标识和版本,生成系统应用清单文件;

将所述系统应用清单文件加入系统源代码中。

在一种可能的实现方式中,所述方法还包括:

根据所述系统应用的标识,从所述应用库中获取与所述标识相应的一个或多个版本。

在一种可能的实现方式中,所述方法还包括:

在系统应用的第一版本的应用文件不稳定时,将系统应用清单文件中与所述系统应用的标识相对应的第一版本修改为第二版本,其中,所述第二版本的应用文件为稳定的应用文件。

根据本公开实施例的第二方面,提供一种应用编译装置,包括:

第一标识确定模块,用于确定系统应用的标识,所述标识用于唯一确定所述系统应用;

文件得到模块,用于对所述系统应用的源代码进行编译,得到所述系统应用的应用文件,其中,所述应用文件的版本与所述源代码的版本相对应;

第一文件加入模块,用于将所述应用文件加入到应用库中,其中,所述标识对应于一个或多个版本。

在一种可能的实现方式中,所述装置还包括:

第二标识确定模块,用于在系统编译过程中,根据系统源代码中的系统应用清单文件,确定待编译的系统应用的标识和版本;

文件获取模块,用于根据所述标识和所述版本,从所述应用库中获取与所述标识和所述版本相应的应用文件;

文件压缩模块,用于将所述应用文件压缩到系统镜像文件中。

在一种可能的实现方式中,所述装置还包括:

清单文件生成模块,用于根据所述系统应用的标识和版本,生成系统应用清单文件;

第二文件加入模块,用于将所述系统应用清单文件加入系统源代码中。

在一种可能的实现方式中,所述装置还包括:

版本获取模块,用于根据所述系统应用的标识,从所述应用库中获取与所述标识相应的一个或多个版本。

在一种可能的实现方式中,所述装置还包括:

版本修改模块,用于在系统应用的第一版本的应用文件不稳定时,将系统应用清单文件中与所述系统应用的标识相对应的第一版本修改为第二版本,其中,所述第二版本的应用文件为稳定的应用文件。

根据本公开实施例的第三方面,提供一种应用编译装置,包括:

处理器;用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述方法。

根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行上述方法。

本公开的实施例提供的技术方案可以包括以下有益效果:通过确定系统应用的标识,对系统应用的源代码进行编译得到系统应用的应用文件,并将应用文件加入到应用库中,在应用库中存储同一应用的一个或多个版本的应用文件以供调用,实现了系统应用及其多个版本的区分及存储。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种应用编译方法的流程图。

图2是根据一示例性实施例示出的一种应用编译方法的流程图。

图3是根据一示例性实施例示出的一种应用编译方法的流程图。

图4是根据一示例性实施例示出的一种应用编译方法的流程图。

图5是根据一示例性实施例示出的一种应用编译方法的流程图。

图6是根据一示例性实施例示出的一种应用编译装置的框图。

图7是根据一示例性实施例示出的一种应用编译装置的框图。

图8是根据一示例性实施例示出的一种应用编译装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种应用编译方法的流程图,如图1所示,该应用编译方法可用于服务器中,包括以下步骤。

在步骤s101中,确定系统应用的标识,所述标识用于唯一确定所述系统应用;

在步骤s102中,对所述系统应用的源代码进行编译,得到所述系统应用的应用文件,其中,所述应用文件的版本与所述源代码的版本相对应;

在步骤s103中,将所述应用文件加入到应用库中,其中,所述标识对应于一个或多个版本。

根据本公开的实施例,通过确定系统应用的标识,对系统应用的源代码进行编译得到系统应用的应用文件,并将应用文件加入到应用库中,在应用库中存储同一应用的一个或多个版本的应用文件以供调用,实现了系统应用及其多个版本的区分及存储。

举例来说,可以构建应用库以容纳各个系统应用的应用文件,每个系统应用在应用库中可保存多个版本。可以采用唯一的识别字符串作为系统应用的标识(id),以便用于唯一确定该系统应用。系统应用的标识可对应于一个或多个版本(例如某一版本的版本号为v2.01),不同版本可以具有不同的版本号。

在一种可能的实现方式中,应用库可以提供上传、下载及查询等功能。上传功能可以包括:在提供系统应用的标识、版本以及编译好的应用文件的情况下,应用库可保存该版本的应用文件;下载功能可以包括:在提供系统应用的标识(唯一识别串)和版本(版本号)的情况下,应用库可返回该版本的应用文件;查询功能可以包括:在提供系统应用的标识的情况下,应用库可返回该应用的最新的版本号和/或该应用的所有版本号。应当理解,应用库的功能并不限制于此,应用库可以提供本领域公知的各种功能。

在一种可能的实现方式中,可以对系统应用进行预先编译。例如可以对系统应用当前版本的源代码进行编译,生成应用文件(例如apk文件)。该应用文件具有相应的标识和版本,应用文件的版本与源代码的版本相同。并且,可以将该应用文件加入到所述应用库中。

在一种可能的实现方式中,可以根据各个系统应用的开发节奏,采用系统应用的代码编译出不同版本的应用文件,并且推送到应用库中。如果系统应用的当前代码尚有缺陷,可以暂时不推送,保证应用库中的应用文件是稳定的版本。

图2是根据一示例性实施例示出的一种应用编译方法的流程图,如图2所示,该方法还可包括以下步骤。

在步骤s104中,根据所述系统应用的标识,从所述应用库中获取与所述标识相应的一个或多个版本。

举例来说,可以为应用库提供查询功能,当输入系统应用的标识时,服务器可以从应用库中获取与所述标识相应的一个或多个版本。在该情况下,应用库可返回该应用的最新的版本号和/或该应用的所有版本号。

图3是根据一示例性实施例示出的一种应用编译方法的流程图,如图3所示,该方法还可包括以下步骤。

在步骤s105中,在系统编译过程中,根据系统源代码中的系统应用清单文件,确定待编译的系统应用的标识和版本;

在步骤s106中,根据所述标识和所述版本,从所述应用库中获取与所述标识和所述版本相应的应用文件;

在步骤s107中,将所述应用文件压缩到系统镜像文件中。

举例来说,对于终端设备的操作系统(例如安卓系统),可以构建针对待编译的系统应用的系统应用清单文件,该系统应用清单文件中可包括操作系统所需要的所有系统应用的应用信息。每个系统应用的应用信息可包括该系统应用的标识(也即,该系统应用的唯一识别码)和版本(也即,需要使用的该系统应用的版本)。

在一种可能的实现方式中,可以将系统应用清单文件加入到系统源代码中。在系统编译过程中,可以检索该系统应用清单文件,从该系统应用清单文件中检索每个待编译的系统应用的标识和版本。根据该系统应用的标识和版本,可以从应用库中查找相应的应用文件。查找到应用文件后,可以将应用文件下载到本地,并将该应用文件压缩到系统镜像文件中。当系统应用清单文件中的所有系统应用的应用文件都被压缩到系统镜像文件中时,可以确定系统应用编译成功。

通过这种方式,可以在系统编译时直接从应用库拉取预编译的应用文件,而不需要对系统应用进行完整编译,提高了系统编译的效率和灵活性。

图4是根据一示例性实施例示出的一种应用编译方法的流程图。如图4所示,在一种可能的实现方式中,该方法还可包括:

在步骤s108中,根据所述系统应用的标识和版本,生成系统应用清单文件;

在步骤s109中,将所述系统应用清单文件加入系统源代码中。

举例来说,根据待编译的系统应用的标识和版本,可以生成系统应用清单文件。每个系统应用需要使用的版本可以指定该系统应用的某个具体的版本(例如应用库中经过反复测试的稳定版本),也可以指定该系统应用的最新版本,本公开对此不作限制。

在一种可能的实现方式中,系统应用清单文件可以包括所有系统应用的标识和版本,还可以包括其他信息。确定系统应用清单文件后,可以将系统应用清单文件加入到系统源代码中。这样,在系统编译过程中,可以检索该系统应用清单文件,从该系统应用清单文件中检索每个待编译的系统应用的应用信息,进而从应用库中查找并下载相应的应用文件,将应用文件压缩到系统镜像文件中。

图5是根据一示例性实施例示出的一种应用编译方法的流程图。如图5所示,在一种可能的实现方式中,该方法还可包括:

在步骤s110中,在系统应用的第一版本的应用文件不稳定时,将系统应用清单文件中与所述系统应用的标识相对应的第一版本修改为第二版本,其中,所述第二版本的应用文件为稳定的应用文件。

举例来说,如果某个系统应用在系统应用清单文件中指定的第一版本有问题(第一版本的应用文件为不稳定的应用文件)时,则可以直接修改系统应用清单文件,将系统应用清单文件中与系统应用的标识相对应的第一版本修改为第二版本,该第二版本是之前确定的没问题的版本(第二版本的应用文件为稳定的应用文件),以便从应用库中获取稳定版本的应用文件,实现版本回滚。

根据本公开的实施例,通过在系统编译过程中根据系统应用清单文件确定待编译的系统应用的应用信息,根据应用信息从应用库中获取相应的应用文件,并将该应用文件压缩到系统镜像文件中,从而实现相互独立的系统编译过程,提高了系统编译的效率。

根据本公开的实施例,各个应用开发节奏可以完全独立,每个应用自己把稳定版本的应用程序上传到应用库,并修改清单文件,从而能够保证不会由于系统应用编译失败导致整个系统编译失败。此外,根据本公开的实施例,还可以方便的进行版本回滚,比如推送到仓库中的某个应用的最新版本有问题(不稳定),可以直接修改清单文件,修改版本到之前确定没问题的版本号。

图6是根据一示例性实施例示出的一种应用编译装置的框图。参照图6,该装置包括第一标识确定模块601、文件得到模块602和第一文件加入模块603。

第一标识确定模块601,用于确定系统应用的标识,所述标识用于唯一确定所述系统应用;

文件得到模块602,用于对所述系统应用的源代码进行编译,得到所述系统应用的应用文件,其中,所述应用文件的版本与所述源代码的版本相对应;

第一文件加入模块603,用于将所述应用文件加入到应用库中,其中,所述标识对应于一个或多个版本。

图7是根据一示例性实施例示出的一种应用编译装置的框图。参照图7,在一种可能的实现方式中,所述装置还可包括:

第二标识确定模块605,用于在系统编译过程中,根据系统源代码中的系统应用清单文件,确定待编译的系统应用的标识和版本;

文件获取模块606,用于根据所述标识和所述版本,从所述应用库中获取与所述标识和所述版本相应的应用文件;

文件压缩模块607,用于将所述应用文件压缩到系统镜像文件中。

参照图7,在一种可能的实现方式中,所述装置还可包括:

清单文件生成模块608,用于根据所述系统应用的标识和版本,生成系统应用清单文件;

第二文件加入模块609,用于将所述系统应用清单文件加入系统源代码中。

参照图7,在一种可能的实现方式中,所述装置还可包括:

版本获取模块604,用于根据所述系统应用的标识,从所述应用库中获取与所述标识相应的一个或多个版本。

参照图7,在一种可能的实现方式中,所述装置还可包括:

版本修改模块610,用于在系统应用的第一版本的应用文件不稳定时,将系统应用清单文件中与所述系统应用的标识相对应的第一版本修改为第二版本,其中,所述第二版本的应用文件为稳定的应用文件。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图8是根据一示例性实施例示出的一种应用编译装置1900的框图。例如,装置1900可以被提供为一服务器。参照图8,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由装置1900的处理组件1922执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1