一种用于发布软件的方法和系统与流程

文档序号:17938689发布日期:2019-06-18 22:51阅读:135来源:国知局
一种用于发布软件的方法和系统与流程
本发明涉及数据交换网络
技术领域
,具体涉及一种通过数据交换网络发布特定数据的方法,特别是在互联网上用于发布软件的方法和系统。
背景技术
:软件的发布是软件开发者在向使用者提供软件的一个重要环节,当前的用于发布软件的方法通常是集成发布,所谓集成发布是指将软件的编译、测试、正式发布等流程整合在一个软件发布系统中进行,集成发布技术能提高软件发布的规范化、可控性和发布的效率。目前已有一些自动化的集成发布方法和工具,例如使用cruisecontrol,hudson等集成发布软件。但是这些软件发布方法和系统均只能支持在一个固定的软件发布渠道上(例如开发者拥有的下载服务器)进行软件发布。然而,随着互联网尤其是移动互联网的发展,应用程序的种类和数量出现了爆炸性的增长,一款应用程序要想取得用户的喜欢,除了要有好的产品创意及实现,应用程序产品的推广也越来越重要。软件开发者有时需要将同一软件在不同的发布渠道上进行发布,例如通过其商业合作者将同一版本的软件同步发布。在这种情况下,可能需要对软件的不同发布渠道的发布效果进行区分和评估。然而,现有的集成发布软件并不能对于各个渠道的发布状况进行有效的区分和评估,也不能自动验证发布前后的正确性。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于发布软件的方法和系统。依据本发明的一个方面,提供了一种用于发布软件的方法,包括:根据软件的多个发布渠道设定多个渠道号,使每个渠道号表示一个软件发布渠道;根据所述各渠道号生成相应的编译配置文件;根据每个编译配置文件和该软件的源代码文件编译生成多个渠道包,该渠道包中包含有渠道号;将各个渠道包作为发布包在与之相对应的软件发布渠道进行发布;其中,在设定所述软件的多个发布渠道号之后,将各渠道号存储于一个渠道配置文件中。可选地,所述根据各渠道号生成相应的编译配置文件的步骤包括:从所述渠道配置文件中读取一个渠道号,将该渠道号存储在一个编译配置文件中。可选地,所述编译配置文件为xml文件。可选地,所述编译配置文件中还存储所要编译生成的渠道包的文件名称,并且在所述根据每个编译配置文件和该软件的源代码文件编译生成多个渠道包的步骤之后,且在所述将各个渠道包作为发布包在与之相对应的软件发布渠道进行发布的步骤之前,该方法还包括对所述渠道包进行测试的步骤,所述测试步骤为:从所述每个渠道包中读取渠道号,将所读取的渠道号与该渠道包的文件名称进行比对,验证该渠道包的文件名称中是否包含。该所读取的渠道号。可选地,所述各渠道包中包括用于存储渠道号的渠道号配置文件,该渠道号配置文件中存储的渠道号来源于与该渠道包相对应的编译配置文件。可选地,所述将各个渠道包作为发布包在与之相对应的软件发布渠道进行发布的步骤进一步包括:将所述渠道包拷贝到发布服务器上,并所述渠道包重新命名,去除原来渠道包文件名称中的渠道号,将重新命名后的渠道包作为发布包。可选地,所述将各个渠道包作为发布包在与之相对应的软件发布渠道进行发布的步骤进一步包括:在发布软件之前,为每个发布包计算md5值;在将所述各发布包在与之相对应的软件发布渠道进行发布之后,通过所述软件发布渠道下载各所述发布包,并计算所下载得到的各发布包的md5值;比较所述各发布包在发布前后的md5值来检验发布是否成功。依据本发明的一个方面,提供了一种用于发布软件的系统,包括软件编译设备、发布服务器、测试服务器以及渠道配置设备,所述渠道配置设备用于根据软件的发布渠道设定软件发布的渠道号,使每个渠道号表示一个软件发布渠道,并根据所述渠道号生成编译配置文件,使每个渠道号对应一个编译配置文件,每个编译配置文件中至少包括有与相应的软件发布渠道相对应的渠道号;所述软件编译设备用于根据每个编译配置文件和该软件的源代码文件编译生成渠道包,并将渠道包发送到所述发布服务器;所述发布服务器用于获得软件编译设备发送的渠道包,将该渠道包作为发布包在相应的软件发布渠道上进行发布;所述测试服务器,所述编译配置文件还存储有将要编译生成的渠道包的文件名称,且该渠道包的文件名称中包含有渠道号;所述软件编译设备还用于根据编译配置文件生成渠道号配置文件,使得编译配置文件中保存的渠道号转移到渠道号配置文件中得到保存,并将渠道包发送给测试服务器;所述测试服务器用于提供下载所述的渠道包以对渠道包进行验证:当所述渠道包的渠道号配置文件中保存的渠道号包含于该渠道包的文件名称中时,渠道包验证成功,将该渠道包发送到发布服务器;否则,提示渠道包验证失败。可选地,所述发布服务器还用于得到所述测试服务器发送的渠道包之后,对该渠道包重新命名,去除原来渠道包文件名称中的渠道号,并将重新命名后的渠道包作为发布包进行发布。本发明提出的用于发布软件的方法和系统将软件开发完成后进行多渠道发布的过程实现了自动化,提高了多渠道软件发布的效率。本发明集成了对软件的测试和验证的过程,既避免了由于手工操作引起的错误,同时降低了发布过程中其他各种不确定因素引起的出错风险。本发明为不同渠道发布的软件安装包指定了渠道号,有利于了解软件在不同渠道的推广,跟踪每个渠道的软件安装包的信息,从而为后续的更新和完善软件产品提供了信息支持。附图说明图1是本发明的用于发布软件的方法的基本流程框图;图2是本发明的用于发布软件的方法一个实施例的生成渠道包的流程示意图;图3是本发明的用于发布软件的方法一个实施例的生成渠道包之后的流程示意图;图4是本发明的用于发布软件的系统的一个实施例的架构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。通过下文中对优选实施方式的详细描述,本领域普通技术人员将会更加清楚地了解本发明的优点和益处。图1是本发明的用于发布软件的方法的基本流程框图。如图1所示,本发明的方法包括如下步骤:步骤s1、根据软件的发布渠道设定软件分发的渠道号,使每个渠道号表示一个软件发布渠道;步骤s2、根据所述渠道号生成编译配置文件,使每个渠道号对应一个编译配置文件;步骤s3、将每个编译配置文件和该软件的源代码文件进行编译生成软件的安装包,即渠道包,使每个渠道包对应一个软件发布渠道;步骤s4、将各个渠道包转换成软件发布包后以其所对应的软件发布渠道进行发布。本发明中的软件发布“渠道”是指能够为公众提供软件下载服务的网络平台。例如软件开发公司的网站、社交网络平台、网络搜索服务提供者的推广网站等等。为了解决上述现有的软件发布技术的问题,本发明提出用渠道号来区分不同软件发布渠道。渠道号是用于标识不同软件发布渠道的数据,例如是指定长度的字符串。渠道号也可以是格式化的数据。但是,根据本发明,一个软件发布渠道对应一个特定的渠道号,即每个渠道号表示一个特定的软件发布渠道。在进行软件发布的前期,需要对软件进行编译,根据本发明,对于一个特定的软件发布渠道,在编译软件之前,根据该特定的软件发布渠道的渠道号来生成编译配置文件,所述编译配置文件用于存储在编译软件时的配置信息。根据本发明,所述编译配置文件中除了包括一般编译配置信息之外,还包括渠道号和编译生成的软件的安装包文件名称,该软件的安装包文件名称与该渠道号相对应。本发明中,将与特定软件发布渠道相对应的软件安装包也称为“渠道包”。由此,在编译时,根据编译配置文件中的渠道号和渠道包文件名称,将软件的源代码文件和该编译配置文件一起编译生成渠道包,并将该编译配置文件中存储的渠道包的文件名称作为编译生成的渠道包的文件名称。此处所述的“编译”是广义的编译,包括将源代码文件和配置文件进行处理生成安装文件的所有过程,例如包括对源代码文件编译生成可执行程序、解释性文件等,还包括生成支持软件自动安装的压缩包、安装程序等。最后生成的渠道包是一个压缩包文件,编译配置文件被压缩于该压缩包文件中。在生成了渠道包之后,就可以将该渠道包在相应的发布渠道中进行后续的发布流程。根据本发明的一种具体实施方式,在生成了渠道包之后,还包括对渠道包进行测试的步骤,以确保每个渠道包是正确的。在测试时,从渠道包中解压缩编译配置文件,并读取该编译配置文件中存储的渠道号以及渠道包文件名称,将所读取的渠道包文件名称与所测试的渠道名的真实文件名称进行对比,以验证该渠道包是否正确。下面通过实施例来进一步说明本发明的方法和系统。图2是根据本发明的一个实施例的用于发布软件的方法中生成渠道包的流程示意图。如图2所示,该实施例的软件的源代码存储于多个源代码文件4中,源代码文件4通过一个源代码库3进行管理。例如,可通过subversion软件对源代码文件4进行管理。在该实施例中,假设软件的发布渠道有三个,分别为渠道a、渠道b和渠道c。渠道a、b、c例如分别代表软件开发者的官方网站、某社交网站的软件发布平台、某搜索服务网站的软件推广平台。在软件进行分布之前,首先为这三个渠道设定渠道号,使每个渠道都具有一个特定的渠道号,从而能够对不同的发布渠道相互区别。一种渠道号的设定实例如下表如示:渠道名渠道号渠道信息渠道a001|软件开发者的官方网站渠道b002某社交网站的软件发布平台渠道c003某搜索服务网站的软件推广平台该实例以简单的数字作为渠道号,但本发明并不限于此。在具体应用时,也可以采用加密字符作为渠道号,以提高软件发布渠道设置的保密性。如图2所示,在该实施例中,将软件发布渠道的渠道号及相关渠道信息存储于一个渠道配置文件1中。在软件发布之前,首先要对该软件编译生成软件安装包。为了实现多渠道发布,在进行编译时,首先从该渠道配置文件1中读取与多个渠道对应的多个渠道号,并且针对每个渠道号生成一个编译配置文件2。图2中针对渠道a、渠道b和渠道c分别生成编译配置文件2a、编译配置文件2b和编译配置文件2c。每个编译配置文件2中保存一个渠道号,并且指定了与该渠道号相对应的一个特定的渠道包文件名称。如前所述,这里所述的渠道包是指与特定软件发布渠道相对应的软件安装包,渠道包文件名称即该软件安装包的文件名称。本发明的优选实施方式为使该渠道包文件名称中包含有渠道号,以便于后续对于渠道包的测试。例如,编译配置文件2a中保存有渠道号“001”,也保存有渠道包文件名称如“testsoft001.1.0.1.apk”;编译配置文件2b中保存有渠道号“002”,也保存有渠道包文件名称如“testsoft002.1.0.1.apk”;编译配置文件2c中保存有渠道号“003”,也保存有渠道包文件名称如“testsoft003.1.0.1.apk”。该实施例中的编译配置文件2采用标准xml文件格式,但其他的文件格式也可采用,本发明对于编译配置文件2的文件格式不作限定。针对每个渠道生成特定的编译配置文件2之后,执行对软件的编译过程,以生成针对不同软件发布渠道的软件安装包,或称为渠道包,如图2中所示的渠道包5包括渠道包5a、渠道包5b和渠道包5c。对于java软件,例如调用ant编译工具先把java源代码文件编译成class文件,然后再把class文件打成jar包,然后在用压缩优化zipalign工具生成一个apk安装包,即渠道包5,每个渠道包5的文件名称与编译配置文件2中存储的相对应,例如“testsoft001.1.0.1.apk”、“testsoft002.1.0.1.apk”、“testsoft002.1.0.1.apk”,在编译过程中,还包括根据编译配置文件2生成渠道号配置文件6的步骤,并使得编译配置文件2中保存的渠道号转移到该渠道号配置文件6中得到保存。该实施例最后生成的每个apk渠道包5中包含一个特定的渠道号配置文件6,因而对应一个特定的渠道。在具体应用中,还可包括给apk渠道包签名的步骤等,其均为本领域技术人员能够在本发明的基础上所作的变化,在此不再做更详细的说明。图3是本发明的上述实施例的用于发布软件的方法中生成渠道包之后的流程示意图。如图3所示,在该实施例中,在生成渠道包5之后,为了保证渠道包编译完成的正确性,将所生成的各个渠道包5拷贝一个测试服务器10上进行测试。在测试时,可模拟从测试服务器中下载所述的apk渠道包5,然后例如用解压缩工具unzip解压缩每个下载的apk渠道包5,得到其中的渠道号配置文件6,并从该渠道号配置文件6中读取渠道号,以对所下载的渠道包的正确性进行验证。在验证时,可以将从解压缩的渠道号配置文件6中读取的渠道号和该渠道包5的文件名称进行比对。如前所述,由于该实施例中的编译配置文件2设定了渠道包文件名称中包含有渠道号,因此,如果比对结果显示该渠道包的文件名称中没有包含渠道号,或者包含的渠道号与从渠道号配置文件6中读取的不一致,则验证失败,此时需返回编译步骤重新编译和测试。相反,如果比对结果显示该渠道包的文件名称中包含的渠道号与从渠道号配置文件6中读取的一致,则验该渠道包正确,可进行下一步发布流程。如图3所示,在渠道包测试正确之后,将该渠道包5拷贝到发布服务器11上,同时,对该渠道包5重新命名,去除原来渠道包文件名称中的渠道号,并将重新命名后的渠道包作为发布包7,该发布包7即进行正式的软件发布的文件包,即图中显示的发布包7a、发布包7b和发布包7c,分别对应于渠道号001、002、003。在该实施例中,渠道包5为apk渠道包,将各apk渠道包拷贝到发布服务器上并重新命名,例如:渠道包“testsoft001.1.0.1.apk”重新命名为发布包“softa.1.0.1.apk”;渠道包“testsoft002.1.0.1.apk”重新命名为发布包“softb.1.0.1.apk”;渠道包“testsoft003.1.0.1.apk”重新命名为发布包“softc.1.0.1.apk”。所述的重命名的规则可由分类配置文件进行指定。也就是说,可在分类配置文件中保存各渠道号以及相应于各渠道号的用于正式发布的发布包的文件名称。应当注意的是,该发布包7的文件名称中不包含渠道号。此时,也可以选择性地把每个发布包7在模拟器中进行简单的测试,如安装,卸载,打开运行,关闭运行等,以验证发布包的正确性。最后,所述发布服务器11将各个发布包7通过与发布包7对应的渠道号表示的软件发布渠道进行发布。如图3所示,发布服务器将各个发布包发布到不同的网络下载服务器12,包括将发布包7a发布到网络下载服务器12a,将发布包7b发布到网络下载服务器12b,将发布包7c发布到网络下载服务器12c,以实现多渠道的软件发布。所述发布包7中包含的渠道号用于发布后跟踪每一个发布包的下载安装及使用情况,便于统计用户使用情况以及反馈,有利于及时更新完善软件产品的功能,给用户带来极致的使用体验。在完成软件的发布之后,还可以对各个渠道发布的软件进行检验。在该实施例中,采用计算软件的md5值的方法来进行检验。为了实现该检验,发布服务器在进行正式发布之前,为每个发布包计算一个md5值,在发布完成之后,通过各渠道下载各发布包7,例如通过渠道a从网络下载服务器12a下载发布包7a,并计算所下载的各发布包的md5值,比较发布前后的md5是否一致可以判断发布过程是否成功。在该实施例中,在发布服务器发布软件之前,为每个发布包“softa.1.0.1.apk”、“softb.1.0.1.apk”、“softc.1.0.1.apk”计算md5值,在完成发布后,可以通过渠道a(即软件开发者的官方网站)下载得到发布包“softa.1.0.1.apk”,计算该发布包的md5值,与发布前计算的“softa.1.0.1.apk”的md5值进行比较,以检验“softa.1.0.1.apk”是否发布成功。以上描述了本发明的用于发布软件的方法的一个具体实施例,下面描述实现本发明的用于发布软件的方法的一个系统的具体实施例。该实施例的用于发布软件的系统在图4中显示。下面参照图4进行说明。图4是本发明的用于发布软件的系统的一个实施例的架构示意图,该系统包括软件编译设备9、发布服务器11和渠道配置设备8。如图4所示,渠道配置设备8、软件编译设备9和发布服务器11依次相连,渠道配置设备8用于根据软件的多个发布渠道设定渠道号,使每个渠道号表示一个软件发布渠道,并根据所述多个渠道号生成多个编译配置文件2,每个编译配置文件2中至少包括有与相应的软件发布渠道相对应的渠道号。软件编译设备9根据每个编译配置文件2和该软件的源代码文件4编译生成渠道包5。编译完成后,软件编译设备9将渠道包5发送到发布服务器11上进行发布。具体的编译过程在上述对于用于发布软件的方法的实施例中已作详细说明,故在此不再赘述。发布服务器11用于获得软件编译设备发送的渠道包5,将该渠道包5作为发布包7在相应的软件发布渠道上进行发布,例如将发布包7a提供给软件开发者的官方网站的网络下载服务器12a上。由于该发布包7a中包含有渠道号配置文件6,渠道号配置文件6中保存有渠道号,因此该软件发布后可跟踪发布包7a的下载安装及使用情况,便于统计用户使用情况以及反馈,有利于及时更新完善软件产品的功能。如图4所示,该实施例的用于发布软件的系统还可以包括一个测试服务器10,在这种情况下,所述的编译配置文件2中除了保存有渠道号之外,还存储有将要编译生成的渠道包的文件名称。并且,该渠道包5的文件名称中包含有渠道号。在编译过程中,该软件编译设备9还根据编译配置文件2生成渠道号配置文件6,使得编译配置文件2中保存的渠道号转移到渠道号配置文件6中得到保存。在软件编译完成后,软件编译设备9不直接将渠道包发送给发布服务器11,而是先发送给测试服务器10。测试服务器10用于测试所编译生成的渠道包5的正确性,在测试时,测试服务器10提供下载所述的渠道包5,然后解压缩每个下载的渠道包5a、5b、5c,得到其中的渠道号配置文件6,将从解压缩的渠道号配置文件6中读取的渠道号和该渠道包的文件名称进行比对。如前所述,由于编译配置文件2设定了渠道包文件名称中包含有渠道号,因此,如果比对结果显示该渠道包的文件名称中没有包含渠道号,或者包含的渠道号与从渠道号配置文件6中读取的不一致,则测试服务器提示验证失败。相反,如果比对结果显示该渠道包的文件名称中包含的渠道号与从渠道号配置文件6中读取的一致,则验证该渠道包正确,此时,测试服务器10将渠道包发送到发布服务器11。在这种情况下,由于渠道包的文件名称中包含有渠道号,因此发布服务器在得到所述测试服务器10发送的渠道包之后,在进行发布之前对该渠道包5重新命名,去除原来渠道包文件名称中的渠道号,并将重新命名后的渠道包作为发布包7,该发布包7即进行正式的软件发布的文件包。如前所述,重新命名的规则可以存储于分类配置文件中,在此不再详细说明。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1