一种调试运行在客户端应用内离线包的方法及装置
技术领域
本申请涉及计算机领域,尤其涉及一种调试运行在客户端应用内离线包的方法及装置。
背景技术
目前,如果用户想要调试运行在客户端的应用内的离线包时,首先要获得调试该应用的权限,再进入相关页面进行web调试。这里离线包是指将混合模式移动应用(Hybrid应用)所用的资源打包成一个zip格式的压缩包,在访问离线包时不需要任何请求,可以快速打开或者离线使用。例如,用户在使用支付宝的新版本的过程中,在一个页面的右端会出现如图1所述的8个模块,其中,每一个模块便对应一个离线包。
一般用户在进行web调试对,首先要求用户当前使用的本地机器具有相应调试的开发环境,在相应的开发环境下才能启动相应的模拟器,再在该模拟器中检验对应客户端应用的效果,并根据该效果进行相关调试。
但是,当用户使用的本地机器中不具备相应调试客户端应用内的离线包的开发环境时,便无法启动相应的模拟器进行相关调试。例如用户当前使用的本地机器上只有windows系统而不具有mac的开发环境,用户无法启动mac环境下的ios模拟器进行相关应用内的离线包的调试。
发明内容
鉴于上述问题,本申请实施例提出了一种调试运行在客户端应用内离线包的方法及装置,解决当用户使用的本地机器上不具备相应调试的开发环境时用户无法在本地机器上对运行在客户端应用内的离线包进行调试的问题。
本申请实施例采用下述技术方案:一种调试运行在客户端应用的方法,该方法包括:
在本地机器上构建将运行在客户端应用内的第一离线包;判断客户端本地是否具有调试所述第一离线包的模拟器,如果否,则根据与所述第一离线包对应的配置文件在远程宿主机器内创建用于调试所述第一离线包的模拟器;在所述模拟器内安装所述应用,并将所述应用中第二离线包的目录与所述第一离线包建立映射关系,所述第二离线包为与第一离线包对应的离线包;在所述本地机器上对所述远程宿主机器进行操控,根据所述映射关系实现对所述第一离线包的调试。
优选地,所述在将所述应用中第二离线包的目录与所述第一离线包建立映射关系之前,所述方法还包括:
将所述应用中的第二离线包进行备份并存储;
在存储所述备份的第二离线包之后,将所述应用中的第二离线包删除。
优选地,所述构建将运行在客户端应用内的第一离线包具体包括:
将所述客户端应用内的前端资源文件的格式进行转换,生成正确格式的资源文件,所述正确格式是指在相关网页中进行显示的资源格式;
将所述正确格式的资源文件按照业务规则进行打包,构建出所述运行在客户端应用内的第一离线包,所述业务规则的数量是一个或多个。
优选地,所述根据所述映射关系实现对所述第一离线包的调试包括:
在调试所述第一离线包的过程中,在所述本地机器上显示调试页面。
优选地,所述在本地机器上显示调试页面具体包括:
用户在所述本地机器上调试离线包过程中,在所述本地机器上实时的显示调试过程和结果。
优选地,所述在所述模拟器内安装所述应用之前,所述方法还包括:
判断所述远程宿主机器上是否安装所述应用,如果是,则在所述远程宿主机上不再安装所述应用;如果否,则在所述远程宿主机上安装所述应用。
一种调试运行在客户端应用内离线包的装置,所述装置存在于本地服务器中,该装置包括:
构建单元、判断单元、安装单元和调试单元;其中,
所述构建单元,用于在本地机器上构建将运行在客户端应用内的第一离线包;
所述判断单元,用于判断客户端本地是否具有调试所述第一离线包的模拟器,如果否,则根据与所述第一离线包对应的配置文件在远程宿主机器内创建用于调试所述第一离线包的模拟器;
所述安装单元,用于在所述模拟器内安装所述应用,并将所述应用中第二离线包的目录与所述第一离线包建立映射关系,所述第二离线包为与第一离线包对应的离线包;
所述调试单元,用于在所述本地机器上对所述远程宿主机器进行操控,根据所述映射关系实现对所述第一离线包的调试。
优选地,所述安装单元包括:
判断子单元、备份子单元、删除子单元和建立子单元;其中,
所述判断子单元,用于在所述模拟器内安装所述应用之前,判断所述远程宿主机器上是否安装所述应用,如果是,则在所述远程宿主机上不再安装所述应用;如果否,则在所述远程宿主机上安装所述应用;
所述备份子单元,用于在将所述应用中第二离线包的目录与所述第一离线包建立映射关系之前,将所述第二离线包备份并存储;
所述删除子单元,用于在存储所述备份的第二离线包之后,将所述应用中的第二离线包删除;
所述建立子单元,用于将所述应用中第二离线包的目录与所述第一离线包建立映射关系
优选地,所述构建单元包括:
转换子单元和构建子单元;其中,
所述转换子单元,用于将所述客户端应用内的前端资源文件的格式进行转换,生成正确格式的资源文件,所述正确格式是指在相关网页中进行显示的资源格式;
所述构建子单元,用于将所述正确格式的资源文件按照业务规则进行打包,从而构建出所述运行在客户端应用内的第一离线包,所述业务规则的数量是一个或多个。
优选地,所述调试单元用于:
在调试所述第一离线包的过程中,在所述本地机器上显示调试页面。
在本申请实施例中当用户使用的本地机器不具备相应调试的开发环境时,用户根据配置文件在远程宿主机器中创建模拟器,使得用户可以在本地机器上完成对客户端应用内的离线包的调试,另外,在用户调试离线包的过程中在本地机器上实时的显示调试过程和结果,使得用户在调试过程中可以根据调试结果及时的做出调整。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为支付宝新版本中的离线包截图;
图2为本申请实施例1提供的一种调试运行在客户端应用内离线包的方法的流程示意图;
图3为本申请实施例1中在模拟器内安装应用内离线包的模拟图;
图4为本申请实施例1具体流程示意图;
图5为本申请实施例2提供的一种调试运行在客户端应用内离线包的装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
针对当用户使用的本地机器不具备相应的调试开发环境的情形,本申请实施例提供了一种调试运行在客户端应用内离线包的方法,该方法具体用于用户在本地机器上完成对运行在客户端应用内离线包的调试。图2提供了该方法的流程示意图,图4是为了更清楚的说明图2中的各个步骤提供的具体流程示意图。该方法具体包括下述步骤:
步骤11:在本地机器上构建将运行在客户端应用内的第一离线包。
在本步骤中,本地机器根据配置文件中的源码对前端资源文件进行构建生成相应的离线包,构建的方法可以使用webpack(如图4中的步骤41),这里的所述的webpack构建离线包方法只是示例性的说明,并没有对构建离线包的方法进行限定。该前端文件包括和web页面相关的文件,该文件可以是CSS文件、JavaScript文件、HTML文件、图片或者视频等;webpack可以把各种资源文件的格式进行转换,最终将前端资源文件转换成正确的格式的资源文件,这里所述的正确格式的资源文件是指可以在相关网页进行显示的文件,该资源文件的格式可以是JavaScript、HTML或者CSS等;最后将资源文件根据配置文件中业务规则打包成一个离线包(如图4中的步骤42),这里所说的业务规则可以是一个或多个,因为在不同开发环境下对同一离线包进行构建所采用的业务规则是不相同的,例如支付宝应用中的同一离线包在windows和mac开发环境下是采用不相同的业务规则进行构建的,本地机器可以根据配置文件中的不同业务规则对同一离线包进行统一构建。
步骤12:判断客户端本地是否具有调试所述第一离线包的模拟器,如果否,则根据与所述第一离线包对应的配置文件在远程宿主机器内创建用于调试所述第一离线包的模拟器。
将离线包创建完成后,系统会读取用户配置文件,然后根据配置文件创建模拟器(如图4中的步骤43),这里创建模拟器的方法可以包括但不限于以下两种方式:
一种方式是如果用户当前使用的本地机器中具有相应调试的开发环境,系统根据配置文件查找在本地机器中是否已经安装与该配置文件对应的模拟器,如果没有安装,用户可以根据配置文件在该本地机器上创建模拟器。创建模拟器的一般步骤是:每个开发环境一般会提供该环境下对应模拟器的制作模板,用户根据配置文件在该模板中添加相应的代码来实现用户所需模拟器的创建。
另一种方式是如果用户当前使用的本地机器不具有相应的开发环境,这时用户可以通过本地机器登录远程宿主机进行调试,该远程宿主机具有调试需要的开发环境,具体操作方法如下:用户通过在本地机器登录到该远程宿主机后,系统查找在该远程宿主机上是否已经安装与该配置文件对应的模拟器,如果没有安装,用户将配置文件发送到宿主机上,然后用户在本地机器上通过远程控制远程宿主机根据配置文件在远程宿主机器上创建模拟器,例如用户当前使用的机器只有windows系统,不具有mac的开发环境就无法启动ios模拟器,也就不能进行相关调试工作,这时用户可以将本地机器连接另外一台具有mac开发环境的机器进行远程调试。这里在远程宿主机上创建模拟器的方法与在本地机器上创建模拟器的方法相同或类似,这里不做赘述,但是在远程宿主机上创建模拟器后会存在被别人非法利用的危险,因此在创建模拟器时可以以用户为维度进行创建,例如用户可以采用电子签名的形式对访问模拟器的用户进行校验,或者可以采用其它授权方法对访问模拟器的用户进行授权访问等。
上述配置文件描述的内容可以包括但不限于以下几个方面:
一方面当用户使用的本地机器上不具备调试需要的开发环境需要进行跨平台调试时,这时配置文件描述的内容可以是具体的调试平台,这里的调试平台可以是windows、mac等,例如在调试的过程中是否需要由windows系统连接mac开发环境;另一方面配置文件可以描述在调试过程中需要启动什么系统,例如需要使用ios9系统或者ios9.0.1系统;再一方面配置文件可以描述启动什么应用,以及该应用对应的版本,例如需要对支付宝应用的某项功能进行调试,就先要启动支付宝应用再进行相关调试;又一方面配置文件描述的内容可以是针对用户需要对某项应用的功能做改进的具体调试内容,例如ios9.0.1系统在ios9系统中对闹钟和计时器有时不会提示的问题做了修复,配置文件将针对闹钟和计时器做的修复进行具体的代码描述,然后系统就会根据配置文件中的描述对ios9系统中的闹钟和计时器的功能进行调试。
步骤13:在所述模拟器内安装所述应用,并将所述应用中第二离线包的目录与所述第一离线包建立映射关系,所述第二离线包为与第一离线包对应的离线包。
待模拟器创建成功后,系统根据配置文件下载对应版本的应用,并将该应用安装到该模拟器内(如图4中的步骤44),例如用户使用的苹果手机当前的系统是ios9,用户想要将系统升级到ios9.0.1,就要对原来ios9系统中的应用进行调试才能应用在ios9.0.1系统中,或者是要对ios9系统下的某个应用进行调试来改进该应用的某项功能,在调试之前首先要下载系统ios9对应版本的应用,下载完成后将该应用安装到创建的模拟器内,例如用户想要调试在ios9系统下的支付宝应用中的某一个离线包使该离线包具有新的功能,系统先会下载ios9系统下的支付宝应用,并将该支付宝的应用安装到根据配置文件创建的ios模拟器后再进行相关调试。
将该应用安装到创建的模拟器后,系统要分析模拟器中的内部目录(如图4中的步骤45),并从中找到将要调试的离线包(如图4中的步骤46),对该离线包进行备份,将备份的离线包存放在本地机器或者远程宿主机器的某个硬盘内,备份完成后再将该内部目录上将要调试的离线包删掉,删掉离线包后,将该删掉离线包所在的目录与用户在本地机器上构建的离线包在本地机器或者远程宿主机器上建立映射关系,这里的建立映射关系可以是创建快捷方式,该快捷方式连接到用户之前在本地机器上构建的离线包(如图4中的步骤47),这里快捷方式是示例性的说明,并没有对上述建立映射关系的方式构成限定。
上述在本地机器或者远程宿主机器中建立映射关系的方式具体包括:如果是在本地机器中创建模拟器,在删掉离线包后在本地机器上将该删掉离线包所在的目录与用户之前构建的离线包之间建立映射关系;如果是在远程宿主机器上创建的模拟器,在删掉离线包后在远程机器上将该删掉离线包所在的目录与用户之前构建的离线包之间建立映射关系。例如图3中的大矩形表示在模拟器中安装的应用,大矩形中的小矩形表示在该应用下的离线包,假如用户想要对其中的A1离线包进行调试,首先要对A1离线包进行备份,备份后可以将A1离线包删除并在该目录下创建快捷方式,该快捷方式与用户在本地机器上构建的离线包连接。
上述删除模拟器内部目录中的离线包的原因是:想要通过启动建立的映射关系实现在本地机器上对用户之前构建的离线包进行调试,如果不删除内部目录中的离线包,启动快捷方式后可能只是启动在模拟器内的离线包,而不是启动用户之前构建的离线包。另外,上述在删除内部目录中离线包之前要对该离线包进行备份的目的是:防止用户在调试的过程中需要再次使用到调试前的离线包,例如用户在原来离线包的基础上进行调试,假如调试失败,用户想要进行重新调试,就可以找到备份的离线包进行重新调试,可以避免重新下载原有离线包的麻烦。
步骤14:在所述本地机器上对所述远程宿主机器进行操控,根据所述映射关系实现对所述第一离线包的调试。
在本地创建模拟器或者是在远程宿主机器上创建模拟器后,用户通过启动在本地机器或远程宿主机上创建的映射关系从而打开用户在本地机器上构建的离线包,并对该离线包进行相关调试(如图4中的步骤48)。另外,在本地调试的过程中,在本地机器的界面上将针对用户的调试过程和结果进行实时的展示,用户可以根据调试结果及时的做出修改,提高调试的效率。
采用上述实施例提供的方法达到的有益效果是:当用户使用的本地机器不具备相应调试的开发环境时,用户根据配置文件在远程宿主机器中创建模拟器,使得用户可以在本地机器上完成对客户端应用内的离线包的调试,另外,在用户调试离线包的过程中在本地机器上实时的显示调试过程和结果,使得用户在调试过程中可以根据调试结果及时的做出调整。
上述实施例提出了一种调试运行在客户端应用内离线包的方法,与之相应地,本申请还提供了一种相应的调试运行在客户端应用内离线包的装置,该装置用于用户在本地机器调试运行在客户端的应用内的离线包。该装置的结构示意图如图5所示,具体包括:
构建单元51、判断单元52、安装单元53和调试单元54;其中,
构建单元51,可以用于在本地机器上构建将运行在客户端应用内的第一离线包;
判断单元52,可以用于判断客户端本地是否具有调试所述第一离线包的模拟器,如果否,则根据与所述第一离线包对应的配置文件在远程宿主机器内创建用于调试所述第一离线包的模拟器;
安装单元53,可以用于在所述模拟器内安装所述应用,并将所述应用中第二离线包的目录与所述第一离线包建立映射关系,所述第二离线包为与第一离线包对应的离线包
调试单元54,在所述本地机器上对所述远程宿主机器进行操控,根据所述映射关系实现对所述第一离线包的调试。
上述装置实施例的工作过程是:首先由构建单元51根据配置文件在本地机器将前端资源文件构建成相应的离线包,然后由判断单元52判断本地机器是否具备调试该构建离线包的开发环境,如果不具备时,在远程宿主机器上创建用于调试该离线包的模拟器,再由安装单元53在创建模拟器中安装对应版本的应用,并将该应用中与用户将要调试的离线包对应的离线包所在的目录与用户之前构建的离线包之间建立映射关系,最后调试单元54在本地机器上通过对该远程宿主机的操控,启动建立的映射关系从而打开用户在本地机器上构建的离线包,并完成对该构建离线包的调试。
在上述装置实施例中利用在远程宿主机器中创建模拟器实现用户在本地机器上对运行在客户端应用内的离线包的调试的实施方式也很多种,例如:在一种实施方式中,所述安装53单元可以用于:
在所述模拟器内安装所述应用之前,判断所述远程宿主机器上是否安装所述应用,如果是,则在所述远程宿主机上不再安装所述应用;如果否,则在所述远程宿主机上安装所述应用;
另一种实施方式中,所述安装单元53还可以用于:
删除所述模拟器中内部目录中安装完成的第二离线包,并在删除所述第二离线包之前对所述第二离线包进行备份。
这里备份的目的是防止用户需要再次使用到调试前的离线包;删除所述第二离线包的原因是:如果不删除所述第二离线包,启动建立的映射关系后可能只是启动所述模拟器内的第二离线包,而不是用户在本地机器上构建的第一离线包。
又一种实施方式中,所述构建单元51可以用于:
将所述客户端应用内的前端资源文件的格式进行转换,生成正确格式的资源文件,所述正确格式是指在相关网页中进行显示的资源格式;
将所述正确格式的资源文件按照业务规则进行打包,从而构建出所述运行在客户端应用内的第一离线包,所述业务规则的数量是一个或多个。
这里的构建单元可以根据多个业务规则同时对同一离线包进行统一构建,使得该离线包可以应用于多种开发环境中。
再一种实施方式中,调试单元54可以用于:
在调试所述第一离线包的过程中,在本地机器上显示调试页面。
这里在本地机器上显示调试页面具体是指在用户调试离线包的过程中在本地机器上实时的显示调试的过程和结果,使得用户根据调试结果及时的做出调整,提高调试效率。
上述装置实施例获得的有益效果与前述的方法实施例获得的有益效果相同或者类似,为避免重复,这里不做赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。