CN115454870A - flutter应用程序智能调试的方法、装置、设备和存储介质 - Google Patents
flutter应用程序智能调试的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115454870A CN115454870A CN202211166776.1A CN202211166776A CN115454870A CN 115454870 A CN115454870 A CN 115454870A CN 202211166776 A CN202211166776 A CN 202211166776A CN 115454870 A CN115454870 A CN 115454870A
- Authority
- CN
- China
- Prior art keywords
- program
- debugging
- debugged
- virtual machine
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种flutter应用程序智能调试的方法、装置、计算机设备和存储介质,涉及通信技术领域。所述方法包括:创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;通过待调试程序对嵌入式系统和虚拟机进行数据同步;将目标调试程序以调试模式运行到虚拟机上;目标调试程序为虚拟机中与待调试程序相匹配的调试程序;对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况;在目标调试程序调试完成后,对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。采用本方法能够提高调试效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种flutter应用程序智能调试的方法、装置、设备和存储介质。
背景技术
随着科技的不断发展,各种应用程序也随之增多。在通常情况下,在正式发布应用程序之前,都需要对待调试程序进行调试,从而得到最终版本的应用程序。由于嵌入式资源有限,导致待调试程序无法直接在嵌入式系统中进行调试。
目前,主要是通过一些后端的编程应用对待调试程序进行调试,在调试完成后,需要去除待调试程序的调试信息,并将其打包成正式版本后再推送至嵌入式系统。但是,由于其在调试过程中的调试效果不可见,所以推送至嵌入式系统的待调试程序很有可能达不到预设的调试效果,这就导致需要重新修改待调试程序,并需要对待调试程序进行多次打包和推送,从而影响调试效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高调试效率的flutter应用程序智能调试的方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种flutter应用程序智能调试的方法,包括:
创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;
通过待调试程序对嵌入式系统和虚拟机进行数据同步;
将目标调试程序以调试模式运行到虚拟机上;目标调试程序为虚拟机中与待调试程序相匹配的调试程序;
对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况;
在目标调试程序调试完成后,对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。
在其中一个实施例中,创建用于对嵌入式系统中的待调试程序进行调试的虚拟机,的步骤包括:
根据嵌入式系统的尺寸信息,在指定的操作系统上创建与嵌入式系统的尺寸相同的虚拟机。
在其中一个实施例中,在通过待调试程序对嵌入式系统和虚拟机进行数据同步之前,方法还包括:
建立待调试程序和非调试程序之间的第一通信连接;非调试程序为嵌入式系统中除待调试程序之外的程序;
通过待调试程序基于第一通信连接获取非调试程序的系统数据。
在其中一个实施例中,在通过待调试程序对嵌入式系统和虚拟机进行数据同步之前,方法还包括:
对待调试的初始程序进行数据分发调试,得到数据分发调试后的待调试程序;数据分发调试后的待调试程序用于将嵌入式系统中的系统数据分发同步至虚拟机。
在其中一个实施例中,通过待调试程序对嵌入式系统和虚拟机进行数据同步,的步骤具体包括:
建立待调试程序和虚拟机之间的第二通信连接;
通过待调试程序基于第二通信连接将待调试程序接收到的系统数据同步到虚拟机。
在其中一个实施例中,通过待调试程序对嵌入式系统和虚拟机进行数据同步,还包括:
将针对虚拟机的显示界面进行的交互操作发送给待调试程序,以使待调试程序将交互操作同步到嵌入式系统。
在其中一个实施例中,目标调试程序为通过移动应用程序开发框架所开发得到的、且用于控制智能设备的应用程序;
对目标调式程序进行调试,的步骤具体包括:
基于显示界面中的目标调试程序触发对智能设备的设备控制操作;
根据智能设备执行设备控制操作后的设备状态对目标调式程序进行调试。
第二方面,本申请提供了一种flutter应用程序智能调试的装置,包括:
创建模块,用于创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;
同步模块,用于通过待调试程序对嵌入式系统和虚拟机进行数据同步;
运行模块,用于将目标调试程序以调试模式运行到虚拟机上;目标调试程序为虚拟机中与待调试程序相匹配的调试程序;
调试模块,用于对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况;
打包模块,用于在目标调试程序调试完成后,对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。
在一些实施例中,创建模块还用于根据嵌入式系统的尺寸信息,在指定的操作系统上创建与嵌入式系统的尺寸相同的虚拟机。
在一些实施例中,flutter应用程序智能调试的装置还包括获取模块,获取模块用于建立待调试程序和非调试程序之间的第一通信连接;非调试程序为嵌入式系统中除待调试程序之外的程序;通过待调试程序基于第一通信连接获取非调试程序的系统数据。
在一些实施例中,flutter应用程序智能调试的装置还包括调试模块,调试模块用于对待调试的初始程序进行数据分发调试,得到数据分发调试后的待调试程序;数据分发调试后的待调试程序用于将嵌入式系统中的系统数据分发同步至虚拟机。
在一些实施例中,同步模块还用于建立待调试程序和虚拟机之间的第二通信连接;通过待调试程序基于第二通信连接将待调试程序接收到的嵌入式系统中的系统数据同步到虚拟机。
在一些实施例中,同步模块还用于将针对虚拟机的显示界面进行的交互操作发送给待调试程序,以使待调试程序将交互操作同步到嵌入式系统。
在一些实施例中,目标调试程序为通过移动应用程序开发框架所开发得到的、且用于控制智能设备的应用程序,调试模块还用于基于显示界面中的目标调试程序触发对智能设备的设备控制操作;根据智能设备执行设备控制操作后的设备状态对目标调式程序进行调试。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法中的步骤。
上述flutter应用程序智能调试的方法、装置、计算机设备、存储介质和计算机程序产品,模拟创建了用于对嵌入式系统中的待调试程序进行调试的虚拟机,并赋予嵌入式系统中的待调试程序数据分发功能,以使得该待调试程序能对嵌入式系统和虚拟机进行数据同步分发,在数据同步后的虚拟机上运行与嵌入式系统中的待调试程序相匹配的目标调试程序,就能够保证数据同步后的虚拟机能够模拟嵌入式系统的环境来对目标调试程序进行调试,由于虚拟机的显示界面中可以呈现针对目标调试程序的调试情况,所以可以根据调试情况在虚拟机上直观、准确地对目标调试程序进行调试,直到保证目标调试程序最终调试完成后才对其进行打包,并推送至嵌入式系统,由于本申请在调试过程中减少了打包和推送的次数,因此可以提高调试效率。
附图说明
图1为本申请提供的一种flutter应用程序智能调试的方法的应用环境示意图;
图2为本申请提供的一种flutter应用程序智能调试的方法的流程示意图;
图3为本申请提供的一种嵌入式系统、flutter应用程序和虚拟机之间进行通信的交互示意图;
图4为本申请提供的另一种flutter应用程序智能调试的方法的流程示意图;
图5为本申请提供的一种flutter应用程序智能调试的装置的结构示意图;
图6为本申请提供的一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的flutter应用程序智能调试的方法,可以应用于如图1所示的应用环境中。
其中,待调试程序102可集成在终端的嵌入式系统上,待调试程序102通过网络与虚拟机进行通信,或是通过一些通信协议与虚拟机进行通信。
终端,可以是安装特定程序软件的个人计算机、笔记本电脑、智能手机、平板电脑、智能家居中控屏幕或可移动的控制面板等中的至少一种。
嵌入式系统,由硬件和软件组成.是能够独立进行运作的器件,其软件内容只包括软件运行环境及其操作系统,硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容,在本方案中嵌入式系统中的操作系统可为智能物联网操作系统。
虚拟机,指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,在实体计算机中能够完成的工作在虚拟机中都能够实现。
数据存储系统,可以存储待调试程序102需要处理的数据。其中,数据存储系统可以集成在待调试程序102上,也可以放在云上或其他网络服务器上。
在一些实施例中,当需要对待调试程序102进行调试时,开发者可以在任意平台的操作系统中输入用于创建虚拟机的操作指令,操作系统根据该操作指令来创建虚拟机,操作系统所创建的虚拟机用于对嵌入式系统中的待调试程序102进行调试。在操作系统对虚拟机创建完成之后,待调试程序102对嵌入式系统和虚拟机进行数据同步。接着,虚拟机响应于开发者在虚拟机上针对目标调试程序104进行开启调试模式的操作,将与待调试程序102相匹配的目标调试程序104以调试模式运行到虚拟机上,并在虚拟机上对目标调试程序104进行调试。响应于开发者在虚拟机上对目标调试程序104的调试操作,虚拟机在其显示界面上呈现开发者针对目标调试程序104的调试情况。此外,响应于开发者根据目标调试程序104的调试情况在虚拟机上对目标调试程序104的代码进行修改的操作,虚拟机对目标调试程序104进行修改调试,在虚拟机对目标调试程序104调试完成后,由虚拟机对目标调试程序104进行打包,并将打包后的目标调试程序104推送至嵌入式系统中。
在一些实施例中,如图2所示,提供了一种flutter应用程序智能调试的方法,该方法应用于终端与运行虚拟机的平台之间的交互为例进行说明,包括以下步骤:
步骤202,创建用于对嵌入式系统中的待调试程序进行调试的虚拟机。
待调试程序,指的是嵌入式系统中需要进行调试的应用程序。在本申请实施例中,待调试程序可以是flutter应用程序。其中,flutter是一款开源的构建用户界面工具包,可以帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、网页、桌面和嵌入式平台。flutter应用程序则是基于flutter进行开发所得到的应用程序。
具体地,当需要对待调试程序进行调试时,开发者可以在任意平台的操作系统中输入用于创建虚拟机的操作指令,操作系统根据该操作指令来创建虚拟机。其中,操作系统所创建的虚拟机用于对嵌入式系统中的待调试程序进行调试,开发者指的是需要对待调试程序进行调试的相关人员。
步骤204,通过待调试程序对嵌入式系统和虚拟机进行数据同步。
具体地,在虚拟机对待调试程序进行调试之前,首先需要通过终端的待调试程序对嵌入式系统和虚拟机进行数据同步,使嵌入式系统与虚拟机设备的数据保持一致,从而保证能够在虚拟机上模拟嵌入式系统的调试环境,以便进行后续的程序调试。
在一些实施例中,待调试程序可以将嵌入式系统上的数据同步至虚拟机,待调试程序还可以将虚拟机上的数据同步至嵌入式系统,以此实现数据的双向同步。在嵌入式系统和虚拟机上的数据都同步的情况下,开发者可以直接在虚拟机上对目标调试程序的代码进行修改的操作,虚拟机则响应于开发者对目标调试程序的代码进行修改的操作对目标调试程序进行程序调试。
步骤206,将目标调试程序以调试模式运行到虚拟机上。
其中,目标调试程序为虚拟机中与待调试程序相匹配的调试程序。调试模式是供开发者使用的程序调试工具,它可以使开发者能够实时查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
可以理解,待调试程序是运行在嵌入式系统上的应用程序,在待调试程序在对嵌入式系统和虚拟机进行数据同步的过程中,该待调试程序也被同步复制到虚拟机上,得到目标调试程序。在本申请中,对待调试程序进行调试实质上是指虚拟机对与待调试程序的数据内容一致的目标调试程序进行代码调试,在虚拟机对目标调试程序调试完成后,再由虚拟机将调试好的目标调试程序进行打包并推送至嵌入式系统,从而完成代码调试的过程。
具体地,在完成数据同步后,由开发者在虚拟机上针对目标调试程序进行开启调试模式的操作,虚拟机则响应于该操作运行目标调试程序、并控制目标调试程序以调试模式运行,且虚拟机还同步将目标调试程序显示在虚拟机的显示界面上,以便开发者能够在虚拟机的显示界面上实时查看虚拟机对目标调试程序进行调试的调试效果。
步骤208,对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况。
具体地,开发者可以通过虚拟机的显示界面上对目标调试程序进行一系列的交互调试操作。虚拟机响应于以上交互调试操作对目标调试程序进行调试,并将对目标调试程序进行调试的调试情况同步显示在虚拟机的显示界面上。
在一些实施例中,开发者可在虚拟机上对目标调试程序的界面设计(UserInterface Design,UI设计)或数据交互中的至少一种进行实时调试操作,虚拟机响应于开发者在虚拟机上的实时调试操作对目标调试程序进行调试。其中,界面设计指的是软件的人机交互、操作逻辑、界面美观的整体设计。
步骤210,在目标调试程序调试完成后,对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。
具体地,在虚拟机对目标调试程序调试完成后,虚拟机则可以对运行在虚拟机上的目标调试程序进行打包,并将打包后的目标调试程序推送至嵌入式系统,以供嵌入式系统进一步对目标调试程序进行功能测试。
可以理解,虚拟机对目标调试程序进行打包之后,可以将打包好的目标调试程序替换掉原本在嵌入式系统中运行的待调试程序,从而由嵌入式系统对替换后的待调试程序进行功能测试。
上述flutter应用程序智能调试的方法,模拟创建了用于对嵌入式系统中的待调试程序进行调试的虚拟机,并赋予嵌入式系统中的待调试程序数据分发功能,以使得该待调试程序能对嵌入式系统和虚拟机进行数据同步分发,在数据同步后的虚拟机上运行与嵌入式系统中的待调试程序相匹配的目标调试程序,就能够保证数据同步后的虚拟机能够模拟嵌入式系统的环境来对目标调试程序进行调试,由于虚拟机的显示界面中可以呈现针对目标调试程序的调试情况,所以可以根据调试情况在虚拟机上直观、准确地对目标调试程序进行调试,直到保证目标调试程序最终调试完成后才对其进行打包,并推送至嵌入式系统,由于本申请在调试过程中减少了打包和推送的次数,因此可以提高调试效率。
在一些实施例中,步骤202具体包括但不限于包括:根据嵌入式系统的尺寸信息,在指定的操作系统上创建与嵌入式系统的尺寸相同的虚拟机。
其中,尺寸信息指的是屏幕参数,包括分辨率、屏幕尺寸、对比度、亮度或色彩数中的至少一种。
指定的操作系统,指的是开发者在不同的操作系统中选定的用于创建虚拟机的操作系统。
在一些实施例中,指定的操作系统可以是Windows、macOS、Linux、iOS或Android等中的至少一种。其中,Windows是以图形用户界面为基础研发的操作系统,主要运用于计算机、智能手机等设备。macOS是一种图形化操作系统,可以运行在指定系列电脑上。iOS是一种移动操作系统,主要使用于移动设备,如智能手机和平板电脑。Android是一种基于Linux操作系统的内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。
具体地,开发者可以在预先指定的操作系统中输入用于创建虚拟机的操作指令,操作系统响应于该操作指令,并根据嵌入式系统的尺寸信息创建与嵌入式系统尺寸相同的虚拟机,能够使在虚拟机上所运行的目标调试程序与在嵌入式系统上所运行的待调试程序的界面效果保持一致,从而保证基于虚拟机对目标调试程序进行调试的准确性。
在一些实施例中,在步骤204之前,本申请的flutter应用程序智能调试的方法具体还包括但不限于包括:建立待调试程序和非调试程序之间的第一通信连接;通过待调试程序基于第一通信连接获取非调试程序的系统数据。
其中,非调试程序为嵌入式系统中除待调试程序之外的程序。
具体地,集成在终端的嵌入式系统上的待调试程序可以向嵌入式系统中的非调试程序发送用于建立通信连接的请求,当嵌入式系统中的非调试程序接收到该请求时,若非调试程序基于该请求生成回复消息给待调式程序,则说明待调试程序和非调试程序成功建立第一通信连接。在建立第一通信连接之后,待调试程序则可以基于第一通信连接获取非调试程序的系统数据,以便后续将获取到的系统数据同步给虚拟机进行程序调试,保证程序调试的准确性。
可以理解,当嵌入式系统中的非调试程序接收到待调试程序所发送的用于建立通信连接的请求时,若非调试程序基于该请求没有生成回复消息给待调试程序,或者非调试程序在传输回复消息的过程中超时或者丢失,则待调试程序可以尝试再次向待调试程序发送用于建立通信连接的请求,直到成功建立待调试程序和非调试程序之间的第一通信连接。
在一些实施例中,待调试程序通过第一通信连接所获取到嵌入式系统中的系统数据包括脚本数据、网关数据和嵌入式系统中除待调试程序之外的其他应用的应用数据中的至少一种。其中,脚本是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。网关,又称网间连接器、协议转换器,网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
在一些实施例中,在步骤204之前,本申请的flutter应用程序智能调试的方法具体还包括但不限于包括:对待调试的初始程序进行数据分发调试,得到数据分发调试后的待调试程序。
其中,待调试的初始程序指的是在进行数据分发调试之前,嵌入式系统中所运行的待调试程序。
数据分发调试后的待调试程序,具备数据分发调试功能,用于将嵌入式系统中的系统数据分发同步至虚拟机。
具体地,在进行程序调试之前,终端可以对待调试的初始程序进行数据分发调试,使数据分发调试后的待调试程序具备数据分发功能,以便对虚拟机进行数据同步,保证程序调试的准确性。
在一些实施例中,在建立待调试程序与嵌入式系统的非调试程序之间的第一通信连接之后,可以为待调试的初始程序添加一个用于进行数据分发调试的调试按钮,并将数据分发调试后的、具备数据分发功能的待调试程序替换原先在嵌入式操作系统中运行的待调试的初始程序。之后,开发者可以在指定操作系统上输入用于创建虚拟机的操作指令,操作系统根据该操作指令创建与嵌入式系统同尺寸的虚拟机。终端则可以响应于开发者对待调试程序的调试按钮的触发操作,来控制待调试程序对嵌入式系统和虚拟机进行数据同步。在完成数据同步之后,虚拟机则可以控制与待调试程序相匹配的目标调试程序以调试模式运行到虚拟机上,从而使开发者直接在虚拟机上对目标调试程序进行一系列的交互调试操作,虚拟机响应于以上交互调试操作对目标调试程序进行调试,并将对目标调试程序进行调试的调试情况同步显示在虚拟机的显示界面上。
在一些实施例中,步骤204具体包括但不限于包括:建立待调试程序和虚拟机之间的第二通信连接;通过待调试程序基于第二通信连接将待调试程序接收到的嵌入式系统中的系统数据同步到虚拟机。
具体地,在待调试程序与虚拟机进行数据同步之前,待调试程序除了要建立与非调试程序之间的第一通信连接,还需要建立与虚拟机之间的第二通信连接。在待调试程序和虚拟机成功建立第二通信连接之后,待调试程序则可以通过第二通信连接将待调试程序从嵌入式系统中接收到的系统数据同步给虚拟机。本申请通过建立待调试程序与嵌入式系统中非调试程序之间的第一通信连接,并建立待调试程序与虚拟机之间的第二通信连接,以使待调试程序起到数据中转的作用,即,待调试程序能够获取嵌入式系统中的系统数据,并将获取到的系统数据同步至虚拟机,实现虚拟机可实时对嵌入式系统的系统数据进行同步。
在一些实施例中,待调试程序可以通过传输控制协议(Transmission ControlProtocol,TCP)将从嵌入式系统中获取到的系统数据同步至虚拟机。其中,传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。需要说明的是,本申请还可以根据实际需求选择其他合适的协议进行数据传输,在此不做具体限制。
在一些实施例中,步骤204具体还包括但不限于包括:将针对虚拟机的显示界面进行的交互操作发送给待调试程序,以使待调试程序将交互操作同步到嵌入式系统。
具体地,虚拟机可以将开发者在虚拟机显示界面中对目标调试程序进行的交互操作发送给待调试程序,以使待调试程序基于第二通信连接将对应的交互操作同步到嵌入式系统,以此实现嵌入式系统可实时对虚拟机的数据进行同步,例如可以实时对交互操作所产生的交互数据进行同步。
在一些实施例中,如图3所示,待调试程序为flutter应用程序,flutter应用程序与嵌入式系统中的非调试程序建立第一通信连接,flutter应用程序与虚拟机之间建立第二通信连接。flutter应用程序可以通过第一通信连接获取嵌入式系统的数据,并通过第二通信连接,将接收到嵌入式系统的数据转发给虚拟机。同样地,flutter应用程序可以通过第二通信连接获取虚拟机的数据,并通过第一通信连接将获取的虚拟机的数据转发给嵌入式系统。从而实现嵌入式系统和虚拟机之间的数据同步,进而提高程序调试的准确性。
在一些实施例中,当虚拟机接收到待调试程序发送的系统数据时,虚拟机即可将当前的数据同步到虚拟机的显示界面上。此外,开发者在虚拟机的显示界面的目标调试程序上执行的交互操作可以是通过目标调试程序控制设备状态变化或控制音乐的播放等中的至少一种。其中,若设备是智能灯具,则控制设备状态变化可以是控制智能灯具开灯、关灯或调节亮度中的至少一种。
在一些实施例中,步骤208中的“对目标调式程序进行调试”具体包括但不限于包括:基于显示界面中的目标调试程序触发对智能设备的设备控制操作;根据智能设备执行设备控制操作后的设备状态对目标调式程序进行调试。
其中,目标调试程序为通过移动应用程序开发框架所开发得到的、且用于控制智能设备的应用程序。
智能设备,是指具有计算处理能力的设备、器械或者机器。
具体地,开发者可基于显示界面中的目标调试程序触发对智能设备的设备控制操作,虚拟机则将开发者所触发的对智能设备的设备控制操作发送给智能设备,智能设备则响应于该设备控制操作来控制自身的设备状态。在此过程中,开发者可通过智能设备在执行设备控制操作之后的设备状态来判断目标调试程序的功能是否正常,从而通过虚拟机对目标调试程序进行调试。
在一些实施例中,若目标调试程序中显示有用于控制智能灯具亮度增大的第一按钮,以及控制智能灯具亮度减小的第二按钮,则开发者可以点击第一按钮或第二按钮,虚拟机响应于开发者的点击操作来控制智能灯具的灯光亮度,若智能灯具的灯光亮度进行同步变化,则该第一按钮或第二按钮的功能正常,若智能灯具的灯光亮度没有进行同步变化,则可以修改相应的代码,并重新进行调试。本申请通过在虚拟机上的显示界面,就能够使开发者实时查看虚拟机在调试过程中对目标调试程序的修改效果。在虚拟机完成所有功能调试之后,再将调试好的目标调试程序打包推送到嵌入式系统中进行功能测试,从而提高开发调试的效率。
在一些实施例中,待调试程序为flutter应用程序,如图4所示,本申请实施例的flutter应用程序智能调试的方法具体还包括如下步骤:
步骤402,开发者在预先指定的操作系统中输入用于创建虚拟机的操作指令,操作系统响应于该操作指令,并根据嵌入式系统的尺寸信息创建与嵌入式系统的尺寸相同的虚拟机。
步骤404,flutter应用程序建立flutter应用程序和非调试程序之间的第一通信连接。
步骤406,flutter应用程序基于第一通信连接获取非调试程序的系统数据。
在一些实施例中,终端还可以对flutter应用程序进行数据分发调试,得到数据分发调试后的flutter应用程序,数据分发调试后的flutter应用程序用于将从嵌入式系统中获取到的非调试程序的系统数据分发同步至虚拟机。
步骤408,flutter应用程序建立flutter应用程序和虚拟机之间的第二通信连接。
步骤410,flutter应用程序基于第二通信连接将flutter应用程序接收到的嵌入式系统中的系统数据同步到虚拟机。
步骤412,虚拟机将针对虚拟机的显示界面进行的交互操作发送给flutter应用程序,以使flutter应用程序将交互操作同步到嵌入式系统。
步骤414,虚拟机将目标调试程序以调试模式运行到虚拟机上。
步骤416,虚拟机基于显示界面中的目标调试程序触发对智能设备的设备控制操作。
步骤418,虚拟机根据智能设备执行设备控制操作后的设备状态对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况。
步骤420,在目标调试程序调试完成后,虚拟机对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的flutter应用程序智能调试的方法的flutter应用程序智能调试的装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个flutter应用程序智能调试的装置实施例中的具体限定可以参见上文中对于flutter应用程序智能调试的方法的限定,在此不再赘述。
参考图5,为本申请实施例提供的一种flutter应用程序智能调试的装置的结构示意图。在一些实施例中,如图5所示,提供了一种flutter应用程序智能调试的装置,包括创建模块502、同步模块504、运行模块506、调试模块508和打包模块510,其中:
创建模块502,用于创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;
同步模块504,用于通过待调试程序对嵌入式系统和虚拟机进行数据同步;
运行模块506,用于将目标调试程序以调试模式运行到虚拟机上;目标调试程序为虚拟机中与待调试程序相匹配的调试程序;
调试模块508,用于对目标调式程序进行调试,并通过虚拟机的显示界面呈现针对目标调试程序的调试情况;
打包模块510,用于在目标调试程序调试完成后,对目标调试程序进行打包,以将打包后的目标调试程序推送至嵌入式系统。
上述flutter应用程序智能调试的装置,模拟创建了用于对嵌入式系统中的待调试程序进行调试的虚拟机,并赋予嵌入式系统中的待调试程序数据分发功能,以使得该待调试程序能对嵌入式系统和虚拟机进行数据同步分发,在数据同步后的虚拟机上运行与嵌入式系统中的待调试程序相匹配的目标调试程序,就能够保证数据同步后的虚拟机能够模拟嵌入式系统的环境来对目标调试程序进行调试,由于虚拟机的显示界面中可以呈现针对目标调试程序的调试情况,所以可以根据调试情况在虚拟机上直观、准确地对目标调试程序进行调试,直到保证目标调试程序最终调试完成后才对其进行打包,并推送至嵌入式系统,由于本申请在调试过程中减少了打包和推送的次数,因此可以提高调试效率。
在一些实施例中,创建模块502还用于根据嵌入式系统的尺寸信息,在指定的操作系统上创建与嵌入式系统的尺寸相同的虚拟机。
在一些实施例中,flutter应用程序智能调试的装置还包括获取模块,获取模块用于建立待调试程序和非调试程序之间的第一通信连接;非调试程序为嵌入式系统中除待调试程序之外的程序;通过待调试程序基于第一通信连接获取非调试程序的系统数据。
在一些实施例中,flutter应用程序智能调试的装置还包括调试模块508,调试模块508用于对待调试的初始程序进行数据分发调试,得到数据分发调试后的待调试程序;数据分发调试后的待调试程序用于将嵌入式系统中的系统数据分发同步至虚拟机。
在一些实施例中,同步模块504还用于建立待调试程序和虚拟机之间的第二通信连接;通过待调试程序基于第二通信连接将待调试程序接收到的嵌入式系统中的系统数据同步到虚拟机。
在一些实施例中,同步模块504还用于将针对虚拟机的显示界面进行的交互操作发送给待调试程序,以使待调试程序将交互操作同步到嵌入式系统。
在一些实施例中,目标调试程序为通过移动应用程序开发框架所开发得到的、且用于控制智能设备的应用程序,调试模块508还用于基于显示界面中的目标调试程序触发对智能设备的设备控制操作;根据智能设备执行设备控制操作后的设备状态对目标调式程序进行调试。
上述flutter应用程序智能调试的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种flutter应用程序智能调试的方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种flutter应用程序智能调试的方法,其特征在于,所述方法包括:
创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;
通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步;
将目标调试程序以调试模式运行到所述虚拟机上;所述目标调试程序为所述虚拟机中与所述待调试程序相匹配的调试程序;
对所述目标调式程序进行调试,并通过所述虚拟机的显示界面呈现针对所述目标调试程序的调试情况;
在所述目标调试程序调试完成后,对所述目标调试程序进行打包,以将打包后的目标调试程序推送至所述嵌入式系统。
2.根据权利要求1所述的方法,其特征在于,所述创建用于对嵌入式系统中的待调试程序进行调试的虚拟机,的步骤包括:
根据嵌入式系统的尺寸信息,在指定的操作系统上创建与所述嵌入式系统的尺寸相同的虚拟机。
3.根据权利要求1所述的方法,其特征在于,在所述通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步之前,所述方法还包括:
建立所述待调试程序和非调试程序之间的第一通信连接;所述非调试程序为所述嵌入式系统中除所述待调试程序之外的程序;
通过所述待调试程序基于所述第一通信连接获取所述非调试程序的系统数据。
4.根据权利要求1所述的方法,其特征在于,在所述通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步之前,所述方法还包括:
对待调试的初始程序进行数据分发调试,得到数据分发调试后的待调试程序;数据分发调试后的所述待调试程序用于将所述嵌入式系统中的系统数据分发同步至所述虚拟机。
5.根据权利要求4所述的方法,其特征在于,所述通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步,的步骤具体包括:
建立所述待调试程序和所述虚拟机之间的第二通信连接;
通过所述待调试程序基于所述第二通信连接将所述待调试程序接收到的所述嵌入式系统中的系统数据同步到所述虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步,还包括:
将针对所述虚拟机的显示界面进行的交互操作发送给所述待调试程序,以使所述待调试程序将所述交互操作同步到所述嵌入式系统。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述目标调试程序为通过移动应用程序开发框架所开发得到的、且用于控制智能设备的应用程序;
所述对所述目标调式程序进行调试,的步骤具体包括:
基于所述显示界面中的所述目标调试程序触发对所述智能设备的设备控制操作;
根据所述智能设备执行所述设备控制操作后的设备状态对所述目标调式程序进行调试。
8.一种flutter应用程序智能调试的装置,其特征在于,所述装置包括:
创建模块,用于创建用于对嵌入式系统中的待调试程序进行调试的虚拟机;
同步模块,用于通过所述待调试程序对所述嵌入式系统和所述虚拟机进行数据同步;
运行模块,用于将目标调试程序以调试模式运行到所述虚拟机上;所述目标调试程序为所述虚拟机中与所述待调试程序相匹配的调试程序;
调试模块,用于对所述目标调式程序进行调试,并通过所述虚拟机的显示界面呈现针对所述目标调试程序的调试情况;
打包模块,用于在所述目标调试程序调试完成后,对所述目标调试程序进行打包,以将打包后的目标调试程序推送至所述嵌入式系统。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211166776.1A CN115454870A (zh) | 2022-09-23 | 2022-09-23 | flutter应用程序智能调试的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211166776.1A CN115454870A (zh) | 2022-09-23 | 2022-09-23 | flutter应用程序智能调试的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454870A true CN115454870A (zh) | 2022-12-09 |
Family
ID=84306981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211166776.1A Pending CN115454870A (zh) | 2022-09-23 | 2022-09-23 | flutter应用程序智能调试的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454870A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667739A (zh) * | 2023-12-20 | 2024-03-08 | 广州翼辉信息技术有限公司 | 应用程序调试信息处理方法和装置、应用程序调试系统 |
-
2022
- 2022-09-23 CN CN202211166776.1A patent/CN115454870A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667739A (zh) * | 2023-12-20 | 2024-03-08 | 广州翼辉信息技术有限公司 | 应用程序调试信息处理方法和装置、应用程序调试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800173B (zh) | 程序调试方法、装置及存储介质 | |
CN102667730B (zh) | 设计时调试 | |
CN102455912A (zh) | 运行时扩展 | |
US20190065347A1 (en) | Debugging program code at instruction level through emulation | |
CN108614767A (zh) | 一种远程调试方法及装置 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN111026439B (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN107423049A (zh) | 实现在线编程的方法、浏览器和终端设备 | |
CN116302366B (zh) | 面向终端开发的xr应用开发系统与方法、设备及介质 | |
CN112579254B (zh) | 图形处理器的仿真方法、装置、电子设备和存储介质 | |
CN107608609A (zh) | 一种事件对象发送方法与装置 | |
CN107844410A (zh) | 一种分布式集群系统的调试方法和装置 | |
CN115454870A (zh) | flutter应用程序智能调试的方法、装置、设备和存储介质 | |
CN108153533B (zh) | 制作安装程序的方法和装置、程序的安装方法和装置 | |
CN115145545A (zh) | 小程序代码的生成方法、装置、计算机设备和存储介质 | |
CN116339737B (zh) | Xr应用编辑方法、设备及存储介质 | |
CN109739539A (zh) | 跨环境的应用发布方法、装置、设备及存储介质 | |
CN117009029A (zh) | Xr应用与内容运行方法、设备及存储介质 | |
WO2022179101A1 (zh) | 存储架构下的软件存储方法 | |
CN112717416B (zh) | 虚拟场景中的资源处理方法、装置及电子设备 | |
CN113973060A (zh) | 一种物联网模拟方法、装置、系统及存储介质 | |
CN108345461B (zh) | 应用更新方法和装置以及计算机可读存储介质 | |
CN219980888U (zh) | 一种可二次开发的嵌入式安防监控设备 | |
Lee et al. | WebCL prototype for high performance browser running on Android-powered mobile device | |
CN113760762B (zh) | 小程序的运行环境模拟方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |