Android应用程序构建方法及系统与流程

文档序号:11154534阅读:389来源:国知局
Android应用程序构建方法及系统与制造工艺

本发明涉及计算机软件领域,尤其涉及一种Android应用程序构建方法及系统。



背景技术:

在软件项目的开发过程中,开发人员需要在本地开发并编译打包,然后远程登入服务器,并且将编译打包后的软件包上传至服务器,同时根据不同的现场环境规则,在服务器上修改与现场环境相对应的配置文件,接着根据目的地址而执行分发操作,以完成发布任务。对于Android应用程序而言,一般使用Make脚本来批量完成编译工作,存在平台相关性较强的缺点。



技术实现要素:

本发明的主要目的在于提出一种Android应用程序构建方法及系统,旨在实现跨平台编译。

为实现上述目的,本发明提供的一种Android应用程序构建方法包括:

获取Android源码;

通过内置的Ant编译工具对所述源码进行编译;

根据内置的Ant编译环境规则,将编译后的源码进行打包,以获得与所述Ant编译环境规则对应的安装程序文件;

将所述安装程序文件发布到服务器。

优选地,所述获取Android源码的步骤还包括:

在持续集成平台上预先部署构建计划,所述构建计划包括构建时间;

当到达所述构建时间时,获取Android源码。

优选地,所述通过内置的Ant编译器对所述源码进行编译的步骤之后还包括:

获取当前对所述源码进行编译的版本信息,并将所述版本信息保存成文本文件;

将所述文本文件打包至所述安装程序文件。

优选地,所述将所述安装程序文件发布到服务器的步骤之后还包括:

接收服务器返回的所述安装程序文件发布的进度信息和状态信息。

优选地,所述接收服务器返回的所述安装程序文件发布的进度信息和状态信息的步骤之后还包括:

当所述状态信息为发布失败时,根据所述版本信息查找所述Android源码。

此外,为实现上述目的,本发明还提出一种Android应用程序构建系统,所述Android应用程序构建系统包括:

源码获取模块,用于获取Android源码;

编译模块,用于通过内置的Ant编译工具对所述源码进行编译;

打包模块,用于根据内置的Ant编译环境规则,将编译后的源码进行打包,以获得与所述Ant编译环境规则对应的安装程序文件;

发布模块,用于将所述安装程序文件发布到服务器。

优选地,所述源码获取模块还包括:

构建计划部署单元,用于在持续集成平台上预先部署构建计划,所述构建计划包括构建时间;

源码获取单元,用于当到达所述构建时间时,获取Android源码。

优选地,所述Android应用程序构建系统还包括:

版本信息获取模块,用于获取当前对所述源码进行编译的版本信息,并将所述版本信息保存成文本文件;

文本文件打包模块,用于将所述文本文件打包至所述安装程序文件。

优选地,所述Android应用程序构建系统还包括:

发布信息接收模块,用于接收服务器返回的所述安装程序文件发布的进度信息和状态信息。

优选地,所述Android应用程序构建系统还包括:

安装程序文件查找模块,用于当所述状态信息为发布失败时,根据所述版本信息查找所述Android源码。

本发明提出的技术方案中,在源码编译服务器部署Ant编译环境,使用Ant编译工具对Android源码进行编译,在Ant编译环境下可以实现跨平台编译,即不依赖于操作系统,也不信赖硬件环境即可实现自动编译、打包、自动发布操作。

附图说明

图1为本发明Android应用程序构建方法第一实施例的流程示意图;

图2为本发明Android应用程序构建方法第二实施例中获取Android源码步骤的细化流程示意图;

图3为本发明Android应用程序构建方法第三实施例的流程示意图;

图4为本发明Android应用程序构建方法第四实施例的流程示意图;

图5为本发明Android应用程序构建系统第一实施例的功能模块示意图;

图6为本发明Android应用程序构建系统第二实施例中的源码获取模块的细化功能模块示意图;

图7为本发明Android应用程序构建系统第三实施例的功能模块示意图;

图8为本发明Android应用程序构建系统第四实施例的功能模块示意图;

图9为本发明Android应用程序构建系统第五实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明第一实施例提出的Android应用程序构建方法包括:

步骤S100,获取Android源码;

步骤S200,通过内置的Ant编译工具对所述源码进行编译。

具体地,在Linux系统下部署Ant编译环境。主要安装和配置以下4个工具:Android SDK(安装路径:/opt/adt-bundle-linux-x86-20131030/sdk);JDK(版本JDK1.7,安装路径:/opt/jdk/java-7-openjdk-amd64);NDK(如应用程序中有NDK编译则需要安装,安装路径:/opt/android-ndk-r9d);Ant(安装路径:/user/share/ant)。

其中,SDK(Software Development Kit,软件开发工具)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。它可以简单地为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

JDK(Java Development Kit,Java开发工具)是Sun Microsystems针对Java开发人员的产品。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。JDK包含的基本组件包括:javac:编译器,将源程序转成字节码;jar:打包工具,将相关的类文件打包成一个文件;javadoc:文档生成器,从源码注释中提取文档;jdb:debugger,查错工具;java:运行编译后的java程序;appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器;Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;Jconsole:Java进行系统调试和监控的工具。

当接收到程序发布指令时,将最新的Android源码下载到本地,并使用Ant编译工具对源码自动编译,节省了开发人员对代码进行手动编译的时间。由于Ant编译工具不受平台限制,使得Android应用程序编译只需一个服务器即可,降低了成本,提高应用编译效率。

步骤S300,根据内置的Ant编译环境规则,将编译后的源码进行打包,以获得与所述Ant编译环境规则对应的安装程序文件。

具体地,编译脚本接收所传的参数选择debug或release版本等编译方案,通过自定义Ant编译环境规则,比如引用不同的custom_rules.xml,实现Ant编译时引用不同的jar包或者做其他特殊化处理。

Debug通常称为调试版本,包含调试信息,并且不作所有优化,便于程式员调试程式。Release称为发布版本,往往进行了各种优化,使得程式在代码大小和运行速度上都是最优的,以便用户非常好地使用。实际上,Debug和Release并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。

步骤S400,将所述安装程序文件发布到服务器。

具体地,通过Ant编译工具实现了自动化编译、打包和发布操作,提高了工作效率,减少了人力成本。

本发明提出的技术方案中,在源码编译服务器部署Ant编译环境,使用Ant编译工具对Android源码进行编译,在Ant编译环境下可以实现跨平台编译,即不依赖于操作系统,也不信赖硬件环境即可实现自动编译、打包、自动发布操作。

进一步地,参照图2,为本发明Android应用程序构建方法的第二实施例,在上述第一实施例的基础上,所述获取Android源码的步骤还包括:

步骤S101,在持续集成平台上预先部署构建计划,所述构建计划包括构建时间;

步骤S102,当到达所述构建时间时,获取Android源码。

具体地,随着软件技术的发展,软件规模的扩大,软件需求也越来越复杂,一个产品或者项目涉及到的人员和模块也越来越多,以往都是采取等各部分的开发完成后再集成产品的模式,如今这种弊端也越来越明显。很多bug在集成的时候才能发现,导致很难定位到问题的根源,解决问题的代价大,很有可能导致项目失败。

引入持续集成可以减少风险、减少重复过程、增强项目的可见性。一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。通过自动化的工具,可以将集成工作自动化,无需太多人工的干预。还可以对每次代码的变化或者集成的结果进行分析,有效的缩小了问题定位的范围。这样,开发团队清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样,增强了开发团队对开发产品的信心。目前企业级应用主流的持续集成平台是Jenkins(前身是Hudson)。它提供统一的界面配置,将代码服务器、构建、代码检测、测试、报表、打包、部署等一系列软件开发过程自动化、配置化。

在Jenkins上部署自动构建环境,通过设置Jenkins构建计划对Android应用程序定时构建并将结果通知给开发和集成人员,把编译成功的安装程序文件发布出来。一般构建时间设置为凌晨0点-2点之间,此时服务器资源处于闲置状态,不会对开发人员造成影响。当到达该构建时间时,将最新的Android源码下载到本地,其中,最新的Android源码可以来自第三方开发商源码服务器或者自己公司服务器。

本实施例中,通过Jenkins进行自动化构建,简化了应用集成人员对应用编译集成的操作,同时开发人员也可以一键构建,快速检测自己代码编译方面的问题。

进一步地,在上述Android应用程序构建方法的第一或第二实施例的基础上,所述通过内置的Ant编译器对所述源码进行编译的步骤之后还包括:

步骤S500,获取当前对所述源码进行编译的版本信息,并将所述版本信息保存成文本文件;

步骤S600,将所述文本文件打包至所述安装程序文件。

具体地,通过脚本获取当前编译时的版本信息,并将该版本信息以文本文件的形式(比如svninfo.txt)放在Android应用程序的assets目录,然后直接打包进安装程序文件,即APK文件,只要拿到APK文件解压后就可获取到Android应用程序的版本信息。

本实施例中,将Android应用程序的版本信息打包进APK,方便开发人员快速准确查找应用相关的信息,避免了开发人员因APK版本不清楚所造成的困惑,减少了沟通成本,提高了工作效率。

进一步地,参照图3,为本发明Android应用程序构建方法的第三实施例,在上述第一或第二实施例的基础上,所述将所述安装程序文件发布到服务器的步骤之后还包括:

步骤S700,接收服务器返回的所述安装程序文件发布的进度信息和状态信息。

可以理解的是,向服务器发布安装程序文件后,会接收一个安装程序文件发布的进度信息和状态信息,以使开发人员等相关人员知晓项目发布的进度和状态。状态信息可以是字符串标记,比如Success、Failure等。若安装程序文件发布成功,接收字符串标记Success;若安装程序文件发布失败,接收字符串标记Failure。当发布失败时,开发人员可以及时重新发布或修改代码,以保证发布成功。

进一步地,参照图4,为本发明Android应用程序构建方法的第四实施例,在上述第三实施例的基础上,所述接收服务器返回的所述安装程序文件发布的进度信息和状态信息的步骤之后还包括:

步骤S800,当所述状态信息为发布失败时,根据所述版本信息查找所述Android源码。

具体地,当接收到服务器返回发布失败的状态信息时,解析安装程序文件即可获知当前发布的Android应用程序的版本信息,从而根据该版本信息查找相关Android源码以便修改重新发布。

参照图5,为本发明Android应用程序构建系统的第一实施例,该Android应用程序构建系统包括:

源码获取模块100,用于获取Android源码;

编译模块200,用于通过内置的Ant编译工具对所述源码进行编译。

具体地,在Linux系统下部署Ant编译环境。主要安装和配置以下4个工具:Android SDK(安装路径:/opt/adt-bundle-linux-x86-20131030/sdk);JDK(版本JDK1.7,安装路径:/opt/jdk/java-7-openjdk-amd64);NDK(如应用程序中有NDK编译则需要安装,安装路径:/opt/android-ndk-r9d);Ant(安装路径:/user/share/ant)。

其中,SDK(Software Development Kit,软件开发工具)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。它可以简单地为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

JDK(Java Development Kit,Java开发工具)是Sun Microsystems针对Java开发人员的产品。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。JDK包含的基本组件包括:javac:编译器,将源程序转成字节码;jar:打包工具,将相关的类文件打包成一个文件;javadoc:文档生成器,从源码注释中提取文档;jdb:debugger,查错工具;java:运行编译后的java程序;appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器;Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;Jconsole:Java进行系统调试和监控的工具。

当接收到程序发布指令时,将最新的Android源码下载到本地,并使用Ant编译工具对源码自动编译,节省了开发人员对代码进行手动编译的时间。由于Ant编译工具不受平台限制,使得Android应用程序编译只需一个服务器即可,降低了成本,提高应用编译效率。

打包模块300,用于根据内置的Ant编译环境规则,将编译后的源码进行打包,以获得与所述Ant编译环境规则对应的安装程序文件。

具体地,编译脚本接收所传的参数选择debug或release版本等编译方案,通过自定义Ant编译环境规则,比如引用不同的custom_rules.xml,实现Ant编译时引用不同的jar包或者做其他特殊化处理。

Debug通常称为调试版本,包含调试信息,并且不作所有优化,便于程式员调试程式。Release称为发布版本,往往进行了各种优化,使得程式在代码大小和运行速度上都是最优的,以便用户非常好地使用。实际上,Debug和Release并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。

发布模块400,用于将所述安装程序文件发布到服务器。

具体地,通过Ant编译工具实现了自动化编译、打包和发布操作,提高了工作效率,减少了人力成本。

本发明提出的技术方案中,在源码编译服务器部署Ant编译环境,使用Ant编译工具对Android源码进行编译,在Ant编译环境下可以实现跨平台编译,即不依赖于操作系统,也不信赖硬件环境即可实现自动编译、打包、自动发布操作。

进一步地,参照图6,为本发明Android应用程序构建系统的第二实施例,在上述Android应用程序构建系统第一实施例的基础上,所述源码获取模块100还包括:

构建计划部署单元101,用于在持续集成平台上预先部署构建计划,所述构建计划包括构建时间;

源码获取单元102,用于当到达所述构建时间时,获取Android源码。

具体地,随着软件技术的发展,软件规模的扩大,软件需求也越来越复杂,一个产品或者项目涉及到的人员和模块也越来越多,以往都是采取等各部分的开发完成后再集成产品的模式,如今这种弊端也越来越明显。很多bug在集成的时候才能发现,导致很难定位到问题的根源,解决问题的代价大,很有可能导致项目失败。

引入持续集成可以减少风险、减少重复过程、增强项目的可见性。一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。通过自动化的工具,可以将集成工作自动化,无需太多人工的干预。还可以对每次代码的变化或者集成的结果进行分析,有效的缩小了问题定位的范围。这样,开发团队清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样,增强了开发团队对开发产品的信心。目前企业级应用主流的持续集成平台是Jenkins(前身是Hudson)。它提供统一的界面配置,将代码服务器、构建、代码检测、测试、报表、打包、部署等一系列软件开发过程自动化、配置化。

在Jenkins上部署自动构建环境,通过设置Jenkins构建计划对Android应用程序定时构建并将结果通知给开发和集成人员,把编译成功的安装程序文件发布出来。一般构建时间设置为凌晨0点-2点之间,此时服务器资源处于闲置状态,不会对开发人员造成影响。当到达该构建时间时,将最新的Android源码下载到本地,其中,最新的Android源码可以来自第三方开发商源码服务器或者自己公司服务器。

本实施例中,通过Jenkins进行自动化构建,简化了应用集成人员对应用编译集成的操作,同时开发人员也可以一键构建,快速检测自己代码编译方面的问题。

进一步地,参照图7,为本发明Android应用程序构建系统的第三实施例,在上述Android应用程序构建系统第一或第二实施例的基础上,所述Android应用程序构建系统还包括:

版本信息获取模块500,用于获取当前对所述源码进行编译的版本信息,并将所述版本信息保存成文本文件;

文本文件打包模块600,用于将所述文本文件打包至所述安装程序文件。

具体地,通过脚本获取当前编译时的版本信息,并将该版本信息以文本文件的形式(比如svninfo.txt)放在Android应用程序的assets目录,然后直接打包进安装程序文件,即APK文件,只要拿到APK文件解压后就可获取到Android应用程序的版本信息。

本实施例中,将Android应用程序的版本信息打包进APK,方便开发人员快速准确查找应用相关的信息,避免了开发人员因APK版本不清楚所造成的困惑,减少了沟通成本,提高了工作效率。

进一步地,参照图8,为本发明Android应用程序构建系统的第四实施例,基于本发明Android应用程序构建系统的第三实施例,所述Android应用程序构建系统还包括:

发布信息接收模块700,用于接收服务器返回的所述安装程序文件发布的进度信息和状态信息。

可以理解的是,向服务器发布安装程序文件后,会接收一个安装程序文件发布的进度信息和状态信息,以使开发人员等相关人员知晓项目发布的进度和状态。状态信息可以是字符串标记,比如Success、Failure等。若安装程序文件发布成功,接收字符串标记Success;若安装程序文件发布失败,接收字符串标记Failure。当发布失败时,开发人员可以及时重新发布或修改代码,以保证发布成功。

进一步地,参照图9,为本发明Android应用程序构建系统的第五实施例,基于本发明Android应用程序构建系统的第四实施例,所述Android应用程序构建系统还包括:

安装程序文件查找模块800,用于当所述状态信息为发布失败时,根据所述版本信息查找所述Android源码。

具体地,当接收到服务器返回发布失败的状态信息时,解析安装程序文件即可获知当前发布的Android应用程序的版本信息,从而根据该版本信息查找相关Android源码以便修改重新发布。

以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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