
1.本发明属于调试领域,具体涉及一种小程序插件调试方法、装置及计算机可读存储介质。
背景技术:2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.随着互联网的不断发展,小程序作为一种不需要下载安装即可使用的应用,为用户带来了新的使用体验,近两年,小程序已发展成为连接行业、服务用户的利器,在推动数字生活服务方面扮演了尤为重要的角色。
4.然而,现有的小程序插件调试方案仍然存在一些局限性,比如业务逻辑及插件调用等调试通常是运行在调试工具中进行模拟的,并不是运行在生产版的应用程序中进行调试,从而无法全面且真实地进行调试。
技术实现要素:5.针对上述现有技术中存在的问题,提出了一种小程序插件调试方法、系统及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问题。
6.本发明提供了以下方案。
7.第一方面,提出一种小程序插件调试方法,包括:当目标小程序调用待调试小程序插件时,应用程序发送第一插件调试协议包至调试工具主进程,其中,目标小程序运行在应用程序中开启调试功能的小程序容器中;当真机调试窗口切换到目标调试面板时,真机调试窗口从调试工具主进程获取第一插件调试协议包并解析出小程序插件调用信息,并展示在目标调试面板;当真机调试窗口发起针对目标调试面板的插件调试操作时,真机调试窗口通过预先建立的双向通信通道向应用程序推送第二插件调试协议包;应用程序响应于第二插件调试协议包进入插件调试模式。
8.在一些实施方式中,还包括建立双向通信通道的步骤,包括:调试工具主进程从一个或多个应用程序获取通过权限校验的一个或多个小程序的调试信息,调试信息包括:小程序标识、小程序容器调试服务端地址;调试工具渲染进程从调试工具主进程获取可调试小程序列表,可调试小程序列表包括一个或多个小程序的调试信息;
9.真机调试窗口从调试工具渲染进程获取可调试小程序列表中选中的目标小程序对应的小程序容器调试服务端地址;真机调试窗口作为小程序容器调试客户端连接至目标小程序对应的小程序容器调试服务端地址,以建立真机调试窗口与目标小程序所在应用程序之间的双向通信通道。
10.在一些实施方式中,还包括:应用程序和调试工具主进程之间通过封装的usb/adb服务通道通信连接。
11.在一些实施方式中,第一插件调试协议包基于自定义插件调试协议格式构建,自
定义插件调试协议格式包括:方法、请求和响应;其中,方法由主协议、插件名、插件动作组成;请求由请求id、请求参数及参数值组成;响应由回调id、响应参数及参数值组成。
12.在一些实施方式中,还包括:应用程序获取一个或多个小程序的小程序配置信息;并根据小程序配置信息进行权限校验;其中,权限校验包含以下中的一种或多种:校验小程序是否允许运行、校验小程序插件是否可使用、校验小程序调试权限是否开启。
13.在一些实施方式中,双向通信通道是websocket通道,小程序容器调试服务端为websocket服务端,小程序容器调试客户端为websocket客户端。
14.在一些实施方式中,调试工具渲染进程通过进程间通信从调试工具主进程获取可调试小程序列表。
15.在一些实施方式中,调试工具为基于electron实现。
16.在一些实施方式中,真机调试窗口基于chrome devtools实现。
17.在一些实施方式中,当切换真机调试窗口时,基于双向通信通道发送切换第二插件调试协议包;应用程序拦截切换第二插件调试协议包,执行调度将相对应的小程序容器切换至前台。
18.第二方面,提供一种小程序插件调试系统,包括:应用程序、调试工具主进程和真机调试窗口;其中,目标小程序运行在应用程序中开启调试功能的小程序容器中;应用程序,用于当目标小程序调用待调试小程序插件时,发送第一插件调试协议包至调试工具主进程;真机调试窗口,用于当切换到目标调试面板时从调试工具主进程获取第一插件调试协议包并解析出小程序插件调用信息,并展示在目标调试面板;还用于当发起针对目标调试面板的插件调试操作时,通过预先建立的双向通信通道向应用程序推送第二插件调试协议包;应用程序,用于响应于第二插件调试协议包进入插件调试模式。
19.第三方面,提供一种小程序插件调试装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:第一方面的方法。
20.第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行第一方面的方法。
21.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:小程序插件均运行在生产版应用程序中进行调试,提供了更加全面真实的插件调试。
22.应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
23.通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
24.图1为根据本发明一实施例的小程序插件调试方法的流程示意图;
25.图2为根据本发明一实施例的小程序插件调试系统的结构示意图;
26.图3为根据本发明一实施例的小程序插件调试方法的交互示意图;
27.图4为根据本发明另一实施例的小程序插件调试方法的流程示意图;
28.图5为根据本发明又一实施例的小程序插件调试装置的结构示意图。
29.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
30.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
31.在本技术实施例的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
32.除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
33.术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
34.本技术中的所有代码都是示例性的,本领域技术人员根据所使用的编程语言,具体的需求和个人习惯等因素会在不脱离本技术的思想的条件下想到各种变型。
35.另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
36.图1为根据本技术一实施例的一种小程序插件调试方法的流程示意图,用于实时对小程序插件进行调试,在该流程中,从设备角度而言,执行主体可以是一个或者多个电子设备;从程序角度而言,执行主体相应地可以是搭载于这些电子设备上的程序。
37.如图1所示,本实施例提供的方法可以包括以下步骤:
38.s101、目标小程序调用待调试小程序插件时,应用程序发送第一插件调试协议包至调试工具主进程;
39.其中,该目标小程序运行在应用程序中开启调试功能的小程序容器中。
40.具体地,可以通过应用程序和调试工具之间的服务通道实现第一插件调试协议包的传递。
41.在一些实施方式中,应用程序和调试工具主进程之间可以通过封装的usb/adb服务通道实现通信连接。可选地,应用程序和调试工具主进程之间也可以通过网络服务通实现道通信连接。
42.具体地,usb(universal serial bus通用串行总线)用于苹果或安卓等设备与电脑等桌面设备之间进行数据通信。adb(android debug bridge,安卓调试桥)是一个客户端-服务器端程序,其中客户端是用来操作的电脑,服务器端是安卓设备。
43.第一插件调试协议包是指基于自定义插件调试协议格式构建的包含小程序调用
信息的数据包。
44.在一些实施方式中,自定义插件调试协议格式包括:方法、请求和响应;其中,方法由主协议、插件名、插件动作组成;请求由请求id、请求参数及参数值组成;响应由回调id、响应参数及参数值组成。
45.例如,插件调试协议格式如下所示,包含method、request、response三部分。其中method由:[主协议.插件名.插件动作]组成。request由:reqid(请求id,递增生成)和具体的请求参数及参数值。response由callbackid(回调id,值同请求id)和具体的响应参数及参数值。
[0046]
s102、当真机调试窗口切换到目标调试面板时,真机调试窗口从调试工具主进程获取第一插件调试协议包并解析出小程序插件调用信息,并展示在目标调试面板;
[0047]
可以理解,调试工具主进程可以在获取该第一插件调试协议包之后进行存储,而只有当真机调试窗口切换到针对该插件调试的目标调试面板时,真机调试窗口才需要从存储服务中获取该第一插件调试协议包并解析获得小程序插件调用信息并展示在真机调试窗口中,从而开发者可以根据展示的小程序插件调用信息并在目标调试面板中触发生成插件调试操作,比如设置断点等。上述目标调试面板是针对插件调试而对应预设的面板。例如,如果第一插件调试协议包中的主协议是cordova则展示在cordova面板中,如果主协议是jsbridge则展示在jsbridge面板中。
[0048]
s103、当真机调试窗口发起针对目标调试面板的插件调试操作时,真机调试窗口通过预先建立的双向通信通道向应用程序推送第二插件调试协议包;
[0049]
可以理解,第二插件调试协议包是指基于自定义的插件调试协议格式并根据插件调试操作而生成的数据包。由于在真机调试窗口和应用程序中运行该目标小程序的小程序容器之间预先已经建立好双向通信通道作为调试通道,可以实现目标小程序的各类调试。
[0050]
在一些实施方式中,双向通信通道可以是websocket通道,小程序容器调试服务端为websocket服务端,小程序容器调试客户端为websocket客户端。
[0051]
s104、应用程序响应于第二插件调试协议包进入插件调试模式。
[0052]
其中,应用程序可以被配置为接收到具有插件调试协议格式的数据包之后就会进入插件调试模式,如此应用程序可以响应于第二插件调试协议包进入插件调试模式。
[0053]
图2示出了执行上述s101-104的示例性调试环境;其中,应用程序中目标小程序对应的小程序容器与真机调试窗口之间通过websocket通道实现双向通信连接,应用程序和调试工具主进程之间通过usb/adb服务通道实现双向通信连接,调试工具主进程和调试工具渲染进程之间通过进程间通信实现通信连接,调试工具主进程、调试工具渲染进程和真机调试窗口之间通过本地存储服务实现通信连接。
[0054]
如图3所示,示出了基于本技术实施例的示例性交互图,以下结合图2对图3进行详细描述。
[0055]
s101a、目标小程序调用待调试小程序插件;s101b、目标小程序所在应用程序通过usb/adb服务通道发送第一插件调试协议包至调试工具主进程;s102a、当真机调试窗口切换到目标调试面板时,真机调试窗口通过本地存储服务从调试工具主进程获取第一插件调试协议包;s102b、真机调试窗口解析出小程序插件调用信息;s102c、真机调试窗口在目标调试面板展示该小程序插件调用信息,以供开发者进行调试;s103a、真机调试窗口发起针
对目标调试面板的插件调试操作;s103b、真机调试窗口通过预先建立的websocket通道向应用程序推送第二插件调试协议包;s104、应用程序响应于第二插件调试协议包进入针对该目标小程序的插件调试模式。
[0056]
如图4所示,示出了如何建立上述双向通信通道的步骤,以下结合图4详细描述,
[0057]
建立上述双向通信通道包括:
[0058]
s201、调试工具主进程从一个或多个应用程序获取通过权限校验的一个或多个小程序的调试信息;
[0059]
其中,通过权限校验的小程序运行在应用程序中开启调试功能的小程序容器中。调试信息包括:小程序标识、小程序容器调试服务端地址。例如,小程序标识可以是小程序页面地址、小程序标题等。
[0060]
s202、调试工具渲染进程从调试工具主进程获取可调试小程序列表。
[0061]
其中,可调试小程序列表包括一个或多个小程序的调试信息。例如,列表中每项均包含小程序页面地址、标题、小程序容器调试服务端地址等调试信息
[0062]
s203、真机调试窗口从调试工具渲染进程获取可调试小程序列表中选中的目标小程序对应的小程序容器调试服务端地址;
[0063]
其中,调试工具渲染进程将上述可调试小程序列表展示,开发者可以通过触发动作选中希望进行调试的目标小程序,并通知真机调试窗口,真机调试窗口由此可以从调试工具渲染进程处获得该目标小程序对应的小程序容器调试服务端地址。
[0064]
s204、真机调试窗口作为小程序容器调试客户端连接至目标小程序对应的小程序容器调试服务端地址,以建立真机调试窗口与目标小程序所在应用程序之间的双向通信通道。
[0065]
例如,当执行上述s201-s204之后,即可获得图2所示出的示例性调试环境。
[0066]
可选地,除支持小程序插件调试外,基于上述步骤201-204创建的调试环境还可以支持小程序页面、网络请求、web存储等调试功能,支持同时调试多个小程序,提供了更加灵活高效的多实例插件调试。
[0067]
在一些实施方式中,在上述s201之前,为了进行小程序安全管控,还可以执行如下步骤:
[0068]
应用程序获取一个或多个小程序的小程序配置信息;并根据所程序配置信息进行权限校验;其中,权限校验包含以下中的一种或多种:校验小程序是否允许运行、校验小程序插件是否可使用、校验小程序调试权限是否开启。
[0069]
进一步地,如果小程序通过上述权限校验,即可在开启了调试功能的小程序容器中运行该小程序,以供后续进行调试。
[0070]
在一些实施方式中,调试工具为基于electron实现。调试工具包括调试工具主进程和调试工具渲染进程。
[0071]
在一些实施方式中,真机调试窗口基于chrome devtools实现。
[0072]
在一些实施方式中,当切换真机调试窗口时,基于双向通信通道发送切换第二插件调试协议包;应用程序拦截切换第二插件调试协议包,执行调度将相对应的小程序容器切换至前台。
[0073]
本技术上述实施例提出的一种小程序插件调试方法,提供了跨端的、实时的、安全
的、支持全面的、无侵入性的、网络依赖少的、支持多实例的小程序插件调试。小程序插件均运行在生产版应用程序中,提供了更加全面真实的插件调试。并且无需小程序源码部署在特定平台中,且源码也不需要做任何改造,提供了更安全可控的方案,适用于安全等级要求高的金融行业等领域。
[0074]
在本说明书的描述中,参考术语“一些可能的实施方式”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0075]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0076]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0077]
关于本技术实施例的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。
[0078]
基于相同的技术构思,本发明实施例还提供一种小程序插件调试系统,用于执行上述任一实施例所提供的小程序插件调试方法。图2为本发明实施例提供的一种小程序插件调试系统示意图。
[0079]
其包括:应用程序、调试工具主进程、调试工具渲染进程和真机调试窗口;其中,目标小程序运行在所述应用程序中开启调试功能的小程序容器中;所述应用程序,用于当所述目标小程序调用待调试小程序插件时,发送第一插件调试协议包至所述调试工具主进程;所述真机调试窗口,用于当切换到目标调试面板时从所述调试工具主进程获取所述第一插件调试协议包并解析出小程序插件调用信息,并展示在所述目标调试面板;还用于当发起针对所述目标调试面板的插件调试操作时,通过预先建立的双向通信通道向所述应用程序推送第二插件调试协议包;所述应用程序,用于响应于所述第二插件调试协议包进入插件调试模式。
[0080]
需要说明的是,本技术实施例中的系统可以实现前述方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。
[0081]
图5为根据本技术一实施例的小程序插件调试装置,用于执行图1所示出的小程序插件调试方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例所述的方法。
[0082]
根据本技术的一些实施例,提供了小程序插件调试方法的非易失性计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令设置为在由处理器运行时执行:上述实施例所述的方法。
[0083]
本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
[0084]
本技术实施例提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
[0085]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0086]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0087]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0088]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0089]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0090]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0091]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0092]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。