专利名称:应用软件评分方法及系统的制作方法
技术领域:
本发明涉及移动互联网领域,尤其涉及一种应用软件评分方法及系统。
背景技术:
随着宽带无线移动通信技术的进一步发展和Web应用技术的不断创新,移动互联网业务的发展将成为继宽带技术后互联网发展的又一个推动力,为互联网的发展提供一个新的平台,使得互联网更加普及,并以移动应用固有的随身性、可鉴权、可身份识别等独特优势,为传统的互联网类业务提供了新的发展空间和可持续发展的新商业模式。移动应用市场作为移动互联网的重要平台,是一套包括服务器端和客户端两部分的系统。其中客户端安装在智能移动终端(例如智能手机)中;服务器端提供多种多样的移动应用;客户端可以通过网络连接到服务器端,并且从服务器端检索、下载移动应用,并且安装到客户端所在的智能移动终端中。此外,移动应用市场还提供对应用的评分评价功能。该功能使用户可以通过WEB、智能移动终端中的应用等手段为市场中的某个应用评分;市场存储这些评分和评价,并支持对评分和评价的统计及检索。目前已有的为移动应用市场中的评分引导方法如下:(I)利用“待评分应用”的评分引导方法:该方法将被用户下载、安装但未被用户评分的应用记为“待评分应用”。待评分应用一旦被用户启动并运行,可能在启动、运行或者退出过程中,以文本、图像、音频、视频等方式提示用户到移动应用市场中进行评分。该方法依赖于“待评分应用”的开发者,在开发该应用时,即在应用中实现前述评分引导。(2)利用移动应用市场客户端的评分引导方法:当移动应用市场的客户端在智能移动终端上启动、运行和结束时,会以文本、图像、音频、视频等方式引导用户为某些应用评分。该方法依赖于移动应用市场的客户端主动地激活评分引导流程。但是在何时激活评分引导流程,尽量降低对用户的干扰,则是一个难以解决的问题。
发明内容
本发明所要解决的技术问题之一是需要提供一种能够在应用软件运行的设定时机通过其内部增设的评分代码来引导用户对该应用软件进行评分的应用软件评分方法。为了解决上述技术问题,本发明提供了一种应用软件评分方法,包括:获取步骤,获取要评分的应用软件;解包分析步骤,对所述应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果;评分引导步骤,根据所述分解结果,生成与该结果相关的评分代码;封包步骤,将所述分解结果和所述评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件,其中,在用户运行所述重封包应用软件时,通过执行所述评分代码,以引导用户对该要评分的应用软件进行评分。在一个实施例中,在所述解包分析步骤中,根据所述应用软件的文件结构,对所述应用软件进行分解。在一个实施例中,所述分解结果还包括签名数据,在所述封包步骤中进一步包括:利用所述签名数据对所述重封包应用软件进行签名。在一个实施例中,所述评分代码包括评分引导代码、评分引导配置数据和应用加载代码,其中,所述评分引导代码用于根据设定的概率以不同模式来引导用户给所述应用软件评分;所述评分引导配置数据包括用于区分不同的应用软件的识别信息;所述应用加载代码按照设定顺序依次对所述评分引导代码和所述应用软件的可执行文件进行加载,控制在所述可执行文件运行之前或之后来运行所述评分引导代码。在一个实施例中,在评分引导步骤中,根据分解结果中的所述应用软件的版本信息来生成评分引导配置数据;所述评分引导代码和所述应用加载代码适用于所述应用软件所使用的操作系统版本。在一个实施例中,所述模式包括以下模式之一,模式一,在客户端显不评分界面;模式二,在客户端应用中显示评分界面;模式三,在浏览器中显示评分界面。在一个实施例中,所述评分引导步骤还包括,采用与所述应用软件相关的编译工具将所生成的评分代码编译成目标执行环境的可执行代码文件。在一个实施例中,还包括,发行步骤,发行所述重封包应用软件,并更新应用软件的信息。在一个实施例中,还包括,判断步骤,判断所述要评分的应用软件中是否包含评分代码,若不包含则执行所述解包分析步骤。根据本发明的另一方面,还提供了一种应用软件评分系统,包括:解包分析模块,其基于应用软件的文件结构对所获取的要评分的应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果;评分引导模块,其根据所述分解结果,生成与该结果相关的评分代码;封包模块,其将所述分解结果和所述评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件,其中,在用户运行所述重封包应用软件时,通过执行所述评分代码,以引导用户对该要评分的应用软件进行评分。与现有技术相比,本发明的一个或多个实施例可以具有如下优点:本发明通过将一个增设的评分引导程序与应用软件结合在一起,当用户在其智能终端上运行该应用时,前述评分引导程序会在特定时机运行,从而引导用户到移动应用市场中为该应用评分。本发明所达到的技术效果包括:(1)能够为原本不具备评分引导功能的应用自动添加评分功能,而无需手动获取和/或更改原应用的源代码;(2)本发明的评分引导方法,是与应用的启动、运行或者退出衔接在一起的,从用户体验角度看,与应用本身所提供的评分引导功能非常相似,与其他方法相比,可以降低对用户体验的伤害;(3)利用本发明方法重封包后的应用,在未安装移动应用市场客户端的智能终端上,也能够引导用户以web方式访问移动应用市场并为应用评分。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:图1是根据本发明一实施例的应用软件评分系统的结构示意图;图2是根据本发明一实施例的应用软件评分方法的流程示意图;图3是根据本发明一示例的应用软件评分方法的流程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。图1是根据本发明一实施例的应用软件评分系统的结构示意图,下面参考图1来详细说明本系统的各个组成部分及功能。如图1所示,该装置主要包括应用开发编译工具集10、解包分析模块20、评分引导模块30、封包模块40。需要说明的是,在本实施例中,应用开发编译工具集10、解包分析模块20、评分引导模块30、封包模块40均被部署在同一服务器上。应用开发编译工具集10优选为与用于编译、链接和/或打包开发应用软件的编译工具相同的应用开发编译工具。解包分析模块20,其对所获取的要评分的应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果。在该模块20进行分解之前需要获取要评分的应用软件,该应用软件可以通过网络等方式获取未经本发明实施例处理的第三方编译好的应用软件。解包分析模块20优选地通过分析获取的应用软件的文件结构,根据结构对应用软件进行分解。具体地,先读取以文件形式存在的应用软件,分析该应用的结构,按照开发者开发该应用时所遵循的结构规则,将该应用分解为包括至少一个可执行程序文件部分(也可称“可执行部分”)以及其它数据文件部分(也可称“数据部分”)的分解结果。需要说明的是,模块20在执行上述操作时,还需要保存应用软件的签名数据,也就是对应用软件进行分解后,最终得到可执行文件、签名数据和其他数据文件三个部分。例如,在对Android玩机宝典1.2版应用在进行分解后,可得到包括两个可执行程序文件“classes, dex”和“liblbs.so”、签名文件“cert, rsa”,以及多个例如图像文件“*.png/*.jpg”、配置文件“*.xml/*, config”、资源文件“*.html”等数据文件的分解结果。而且,解包分析模块20可以优选使用用于编译该所获取的应用软件的应用开发编译工具集中与应用相关的工具来实现上述操作。最后,解包分析模块20将得到的三个部分发送至封包模块40中。评分引导模块30,其用于根据解包分析模块11的分解结果,产生与该结果相关的评分代码,该评分代码包括评分引导代码、评分引导配置数据和应用加载代码。具体地,分解结果中的数据主要是在生成评分引导配置数据的过程中使用,即根据分解结果中的应用软件的版本信息来生成评分引导配置数据。而评分引导代码和应用加载代码只需要考虑应用软件所适用的操作系统的版本即可,即与该版本保持一致。
然后,该模块30利用用于编译该所获取的应用软件的应用开发编译工具集10中与应用软件相关的工具的编译连接器,将产生的评分代码编译成目标执行环境的可执行代码文件,并发送至封包模块40中。评分引导代码与应用加载代码经过应用开发编译工具处理之后,均可以运行在应用软件执行环境中。需要说明的是,评分引导代码用于在当其运行在应用执行环境中时,该代码会按照设定的机率以不同的模式来引导用户到移动应用市场中为应用软件评分。具体包括以下三种模式:(I)在移动终端的屏幕上显示一个评分界面,用户与该界面交互,为该应用软件评分。例如,对于Android玩机宝典1.2版的评分引导,可以使用Java语言,编写一个Android对话框,在该对话框中显示一个水平滚动条以及两个按钮(分别是“确认”和“取消”),用户通过滑动水平滚动条,确定所评分数,通过单击“确认”按钮,将该分数提交到移动应用市场的服务器端。(2)若该移动终端上安装了移动应用市场的客户端应用(简称市场应用),则打开该市场应用,在市场应用中显示为应用软件评分的界面,例如,对于Android玩机宝典1.2版的评分引导,可以使用Java语言,利用自定义的“Action”或者Android的包类名,启动例如“飞流下载”这个移动应用市场客户端,并且通过向其传递参数使“飞流下载”显示应用软件的评分界面。(3)若该移动终端上安装了网页浏览器,则打开网页浏览器,显示为应用软件评分的界面。例如,对于Android玩机宝典1.2版的评分引导,可以使用 Java 语言,创建 “WebView” 对象,通过使用 “webView.1oadUrl (〃http://www.feiliu.com"); ”等语句打开网页浏览器并显示应用软件的WEB评分界面。针对每个不同的应用软件,评分引导模块30都包含一份不同的评分引导配置数据。评分引导配置数据主要用于:(1)区分不同应用软件;(2)区分同一应用软件的不同版本;(3)区分该重封包的应用通过何种渠道部署到用户终端;(4)确定该应用的默认评分值;(5)若用户不曾为该应用评过分,当在用户运行该应用时,执行评分引导程序,在移动终端上显示评分界面的概率。引导评分代码在引导用户到移动应用市场中为应用软件评分时,将该配置数据直接或者间接发送到移动应用市场的服务器端。该配置数据中至少包含了该应用软件的识别信息,用以区分不同的应用软件。应用加载代码的功能是,在应用执行环境中,对评分引导代码和应用软件进行编译,即将评分引导代码与应用软件粘合在一起,使得他们能够按照某种次序先后运行。具体包括两种情况:(1)由应用加载代码控制,首先在应用执行环境中运行评分引导代码,以一定的机率引导用户到移动应用市场中为应用软件评分。随后,在某种触发情况下(例如超时、用户按某些指定的按键、甚至无条件跳过等),运行应用软件的“可执行部分”。(2)由应用加载代码控制,首先在应用执行环境中运行应用软件的“可执行部分”,在应用软件的“可执行部分”结束后,根据评分引导数据的设置以一定的概率运行评分引导代码,引导用户到移动应用市场中为应用软件评分封包模块40,其将分解得到的结果和与该结果相关的评分代码进行重新封包以得到具有评分功能的应用软件(简称重封包软件)。具体地,该模块40利用应用开发编译工具集10中与应用软件相关的工具,将应用软件的“可执行部分”、“数据部分”,以及与该应用软件对应的“评分引导代码”、“评分引导配置数据”、“应用加载代码”部分或者全部地重新编译、链接后,再重新打包,形成一个新的应用,称为“重封包应用”。在打包过程中,可能需要对该应用包进行签名,签名过程中可能使用应用软件的签名数据。需要说明的是,该装置还可包括判断模块11,其用于判断所获取的要评分的应用软件是否包括评分代码,若包括则直接运行该应用软件,否则利用解包分析模块20对该应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果。另外,该实施例的装置还可以包括发行模块50和应用执行模块60(如图1的虚线框所示)。其中,发行模块50被部署在封包模块40所在的服务器中,其通过文件系统、数据库系统或者应用程序开发接口与应用市场的服务器端连接。发行模块50,其自动将“重封包应用”放置到移动应用市场的服务器端,并且更新移动应用市场服务器端存储的应用软件的信息(包括但不限于应用功能描述、应用原始开发者说明、应用的原始发行日期等)。应用执行模块60,其设置在智能终端上。当用户从移动应用市场获取了 “重封包应用”并且安装于智能终端之后,一旦启动该“重封包应用”,则前述“应用加载代码”即按照某种预定次序执行应用软件的“可执行部分”与“评分引导代码”。一般情况下,“应用执行模块”就是可以运行应用的智能终端及其操作系统。图2是根据本发明一实施例的构建具有引导评分功能的应用软件的方法的流程示意图,参阅图1和图2,解包分析模块20对所获取的要评分的应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果(步骤S210)。优选地,解包分析模块20根据应用软件的文件结构,对该应用软件进行分解。评分引导模块30根据分解结果,产生与该结果相关的评分代码(步骤S220)。评分代码优选地包括评分引导代码、评分引导配置数据和应用加载代码,其中,评分引导代码用于根据设定的概率以不同模式来引导用户给应用软件评分;评分引导配置数据至少包括用于区分不同的应用软件的识别信息;应用加载代码按照设定顺序依次对评分引导代码和应用软件的可执行文件进行加载,控制在可执行文件运行之前或之后来运行评分引导代码。评分引导代码和应用加载代码适用于应用软件所使用的操作系统版本。评分引导模块30根据分解结果中的应用软件的版本信息来生成评分引导配置数据。模式包括以下模式之一,模式一,在客户端显示评分界面;模式二,在客户端应用中显示评分界面;模式三,在浏览器中显示评分界面。进一步,评分引导模块30采用与应用软件相关的编译工具将所生成的评分代码编译成目标执行环境的可执行代码文件。封包模块40将分解结果和与该结果相关的评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件(步骤S230),其中,在用户运行重封包应用软件时,通过执行评分代码,以引导用户对该要评分的应用软件进行评分。需要说明的是,分解结果还包括签名数据,封包模块40进一步利用该签名数据对重封包软件进行签名。另外,如图2虚线框所示,还包括判断模块11判断所获得的要评分的应用软件中是否包含评分代码,若不包含则执行步骤S210 (步骤S200)、发行模块50发行重封包应用软件并更新应用软件的信息(步骤S240)以及执行模块60执行重封包应用软件,运行所述应用加载代码以引导用户对该应用软件进行评分(步骤S250 )。为了更好地说明本发明的特征和优点,下面详细描述一个如何对应用软件为“X”的引导评分的示例。在图3中,虚线表示数据流动的方向,实线表示控制流程。一个Android应用“x”,以文件“x.apk”的形式存在。“x”应用是一个封包后的文件。
首先,该文件由解包分析模块20处理,解包分析模块20使用应用开发编译工具集10中与应用软件相关的工具,即Android开发工具中的解包工具,将X.apk分解为三个部分,分别是“X.dex”(该文件是二进制字节码组成的,是应用中的可执行部分,可以在Android终端设备中运行)、用于给apk文件签名的签名数据和其它数据文件(包括xml文件、各种图片文件等)。解包分析模块20将该三个部分发送至封包模块40中。随后,评分引导模块30根据解包分析模块20的分解结果,产生评分引导代码、评分引导配置数据、应用加载代码,并且利用Android开发工具中的编译链接器,将前述代码和数据编译为字节码文件,生成xl.dex。评分引导模块30将xl.dex发送到封包模块40中。封包模块40利用Android开发工具中的封包工具,将前述xl.dex文件和x.dex文件、用于给apk文件签名的签名数据和其它数据文件封包,形成一个新的“x.apk”文件,即“重封包应用”。发行模块50将重封包应用“X.apk”放置到移动应用市场(例如,飞流应用市场)中,并且在应用市场的应用数据库中填入该应用的信息(包括应用功能描述、名称、进入市场时间等)。用户开启其Android手机中的移动应用市场客户端(例如“飞流移动应用市场”的客户端“飞流下载”),应用执行模块15,将移动应用市场中的“X.apk”下载到手机中且安装完毕。当用户在安卓手机桌面点击“X”应用的图标,启动该应用时,将首先执行“X.apk”中的“xl.dex”可执行文件,弹出一个对话框,要求用户给“X”应用评价。用户可以选择取消,或者评价。评价结果是1,2,3,4,5这五个值之一。随后用户的评价结果被发送到应用市场的服务器中并且存储在数据库中。用户评价之后,或者用户取消评价之后,用户的安卓手机继续执行“X.dex”文件,启动应用软件。至此,完成了整个应用评价引导的过程。综上所述,本发明通过对要评分的应用软件进行重封包,即将一个增设的评分引导程序与应用结合在一起,当用户在其智能终端上运行该应用时,前述评分引导程序会在特定时机运行,从而引导用户到移动应用市场中为该应用评分,无需获取并更改原应用软件的源代码为原本不具备评分引导功能的应用添加了该功能。本发明是与应用的启动、运行或者退出衔接在一起的,从用户体验角度看,与应用本身所提供的评分引导功能非常相似,与其他方法相比,可以降低对用户体验的伤害,并且对于重封包后的应用,在未安装移动应用市场客户端的智能终端上,也能够引导用户以web方式访问移动应用市场并为应用评分。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种应用软件评分方法,包括: 获取步骤,获取要评分的应用软件; 解包分析步骤,对所述应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果; 评分引导步骤,根据所述分解结果,生成与该结果相关的评分代码; 封包步骤,将所述分解结果和所述评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件,其中, 在用户运行所述重封包应用软件时,通过执行所述评分代码,以引导用户对该要评分的应用软件进行评分。
2.根据权利要求1所述的方法,其特征在于,在所述解包分析步骤中, 根据所述应用软件的文件结构,对所述应用软件进行分解。
3.根据权利要求1所述的方法,其特征在于,所述分解结果还包括签名数据,在所述封包步骤中进一步包括: 利用所述签名数据对所述重封包应用软件进行签名。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述评分代码包括评分引导代码、评分引导配置数据和应用加载代码,其中, 所述评分引导代码用于根据设定的概率以不同模式来引导用户给所述应用软件评 分; 所述评分引导配置数据至少包括用于区分不同的应用软件的识别信息; 所述应用加载代码按照设定顺序依次对所述评分引导代码和所述应用软件的可执行文件进行加载,控制在所述可执行文件运行之前或之后来运行所述评分引导代码。
5.根据权利要求4所述的方法,其特征在于,在评分引导步骤中, 根据分解结果中的所述应用软件的版本信息来生成评分引导配置数据; 所述评分引导代码和所述应用加载代码适用于所述应用软件所使用的操作系统版本。
6.根据权利要求4所述的方法,其特征在于,所述模式包括以下模式之一, 模式一,在客户端显示评分界面; 模式二,在客户端应用中显示评分界面; 模式三,在浏览器中显示评分界面。
7.根据权利要求1所述的方法,其特征在于,所述评分引导步骤还包括, 采用与所述应用软件相关的编译工具将所生成的评分代码编译成目标执行环境的可执行代码文件。
8.根据权利要求1所述的方法,其特征在于,还包括, 发行步骤,发行所述重封包应用软件,并更新应用软件的信息。
9.根据权利要求1所述的方法,其特征在于,还包括, 判断步骤,判断所述要评分的应用软件中是否包含评分代码,若不包含则执行所述解包分析步骤。
10.一种应用软件评分系统,包括: 解包分析模块,其基于应用软件的文件结构对所获取的要评分的应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果;评分引导模块,其根据所述分解结果,生成与该结果相关的评分代码; 封包模块,其将所述分解结果和所述评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件,其中, 在用户运行所述重封包应用软件时,通过执行所述评分代码,以引导用户对该要评分的应用软件进行评分 。
全文摘要
本发明公开了一种应用软件评分方法,包括获取步骤,获取要评分的应用软件;解包分析步骤,对所述应用软件进行分解,得到包括可执行文件部分和数据文件部分的分解结果;评分引导步骤,根据所述分解结果,生成与该结果相关的评分代码;封包步骤,将所述分解得到的结果和所述评分代码进行重新封包以得到具有评分功能的应用软件,记为重封包应用软件,其中,在用户运行所述重封包应用软件时,通过执行所述评分代码,以引导用户对该要评分的应用软件进行评分。本发明通过将一个增设的评分引导程序与应用软件结合在一起,当用户在其智能终端上运行该应用时,前述评分引导程序会在特定时机运行,从而引导用户到移动应用市场中为该应用评分。
文档编号G06F11/00GK103218269SQ20131009345
公开日2013年7月24日 申请日期2013年3月22日 优先权日2013年3月22日
发明者王如章, 袁卫岗, 王园园, 倪县乐, 杜木刚 申请人:北京飞流九天科技有限公司