CN113515300B - 代码查看方法、装置、电子设备和存储介质 - Google Patents

代码查看方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113515300B
CN113515300B CN202110780720.4A CN202110780720A CN113515300B CN 113515300 B CN113515300 B CN 113515300B CN 202110780720 A CN202110780720 A CN 202110780720A CN 113515300 B CN113515300 B CN 113515300B
Authority
CN
China
Prior art keywords
code
virtual machine
package
software program
viewing
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.)
Active
Application number
CN202110780720.4A
Other languages
English (en)
Other versions
CN113515300A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Co Ltd
Douyin Vision Beijing Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110780720.4A priority Critical patent/CN113515300B/zh
Publication of CN113515300A publication Critical patent/CN113515300A/zh
Application granted granted Critical
Publication of CN113515300B publication Critical patent/CN113515300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例涉及通信领域,公开了一种代码查看方法、装置、电子设备和存储介质。应用在跨平台移动用户界面UI框架Flutter下,软件程序的代码运行的过程中,其中,软件程序的代码采用Dart语言编写,方法包括:通过虚拟机服务模块接收用户发送的代码查看指令,对代码查看指令进行解析,确定代码查看指令对应的待获取内容,将待获取内容发送给Dart虚拟机;通过Dart虚拟机根据所述待获取内容,获取软件程序正在运行的代码包以及代码包在软件程序中的代码位置,通过虚拟机服务模块将所述代码包以及代码包在所述程序中的代码位置发送给代码查看工具;通过代码查看工具向用户显示代码包中的代码以及代码包在软件程序中的代码位置。

Description

代码查看方法、装置、电子设备和存储介质
技术领域
本公开实施例涉及计算机技术领域,特别涉及一种代码查看方法、装置、电子设备和存储介质。
背景技术
Flutter是一种跨平台移动用户界面(UI)框架,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。在Flutter框架下,开发者可以采用Dart语言编写代码,进行软件开发。
通常情况下,软件开发完成后,软件的使用者无法获知该软件程序的代码。为了使开发者在软件开发完成之后能够查看软件代码,现有技术中,Flutter提供了一种软件代码的查看方法,包括:在开发者采用Dart语言编写软件程序的过程中,将每一行软件代码以字符串的形式写成文本格式的文件,在软件开发完成以后,开发者通过读取该本文格式的文件查看软件代码。
然而,通过读取文本格式的文件查看软件代码的方法,只能静态地查看软件代码,无法满足用户对正在运行的软件程序的代码进行查看的需求。
发明内容
本公开实施方式的目的在于提供一种代码查看方法、装置、电子设备和存储介质,能够查看基于Flutter开发的软件程序运行过程中的代码。
为解决上述技术问题,本公开的实施方式提供了一种代码查看方法,应用在跨平台移动用户界面UI框架Flutter下,软件程序的代码运行的过程中,其中,所述软件程序的代码采用Dart语言编写,所述方法包括:
通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机;
通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包以及所述代码包在所述软件程序中的代码位置,通过所述虚拟机服务模块将所述代码包以及所述代码包在所述程序中的代码位置发送给代码查看工具;
通过所述代码查看工具显示所述代码包中的代码以及所述代码包在所述软件程序中的代码位置。
可选的,所述通过所述代码查看工具显示所述代码包的代码内容以及所述代码包在所述程序中的代码位置之后,还包括:
通过所述代码查看工具接收所述用户对所述代码包中的代码进行修改获得的更新代码包;
通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机;
通过所述Dart虚拟机使用所述更新代码包对所述软件程序进行更新。
可选的,所述通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机包括:
通过所述代码查看工具将所述更新代码包发送给所述虚拟机服务模块;
通过所述虚拟机服务模块采用无状态并且轻量级的远程过程调用JSON-RPC通信协议将所述更新代码包发送给所述Dart虚拟机。
可选的,所述通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机之后,还包括:
通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包的相关信息,通过所述虚拟机服务模块将所述代码包的相关信息发送给所述代码查看工具,其中,所述代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数;
通过所述代码查看工具显示所述代码包的相关信息。
本公开的实施方式还提供了一种代码查看装置,应用在跨平台移动用户界面UI框架Flutter下,软件程序的代码运行的过程中,其中,所述软件程序的代码采用Dart语言编写,所述装置包括:
第一处理模块,用于通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机;
第二处理模块,用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包以及所述代码包在所述软件程序中的代码位置,通过所述虚拟机服务模块将所述代码包以及所述代码包在所述程序中的代码位置发送给代码查看工具;
显示模块,用于通过所述代码查看工具显示所述代码包中的代码以及所述代码包在所述软件程序中的代码位置。
可选的,所述代码查看装置,还包括:
接收模块,用于通过所述代码查看工具接收所述用户对所述代码包中的代码进行修改获得的更新代码包;
发送模块,用于通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机;
更新模块,用于通过所述Dart虚拟机使用所述更新代码包对所述软件程序进行更新。
可选的,所述发送模块包括:
第一发送子模块,用于通过所述代码查看工具将所述更新代码包发送给所述虚拟机服务模块;
第二发送子模块,用于通过所述虚拟机服务模块采用无状态并且轻量级的远程过程调用JSON-RPC通信协议将所述更新代码包发送给所述Dart虚拟机。
可选的,所述第二处理模块,还用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包的相关信息,通过所述虚拟机服务模块将所述代码包的相关信息发送给所述代码查看工具,其中,所述代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数;
所述显示模块,还用于通过所述代码查看工具向所述用户显示所述代码包的相关信息。
本公开的实施方式还提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的代码查看方法。
本公开的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以上所述的代码查看方法。
本公开实施方式相对于现有技术而言,在Flutter框架下,采用Dart语言编写的软件程序代码运行的过程中,可以通过虚拟机服务模块接收用户发送的代码查看指令确定待获取内容,通过Dart虚拟机根据待获取内容获取代码包以及代码包在软件程序中的代码位置,并通过代码查看工具向用户显示代码包中的代码以及代码包在软件程序中的代码位置,从而达到使用户能够查看基于Flutter开发的软件程序运行过程中的代码目的,解决了现有技术无法在软件程序运行的过程中查看代码的问题;本实施例提供的技术方案可以在程序运行的过程中,获取正在运行的代码包以及代码包在软件程序中的代码位置,使得本发明实施例提供的技术方案更适用于程序开发人员在开发测试中应用本发明实施例提供的技术方案进行软件代码的错误查看以及软件代码的调试,从而更方便软件开发人员进行软件开发,简化了软件开发难度,提高了软件开发的使用体验。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本公开的一个实施方式提供的代码查看方法的流程图之一;
图2是本公开的一个实施方式提供的代码查看方法的流程图之二;
图3是本公开的另一个实施方式提供的代码查看方法的流程图;
图4是图3所示的本公开的另一个实施方式提供的代码查看方法中步骤107的流程图;
图5是本公开的一个实施方式提供的代码查看装置的结构示意图之一;
图6是本公开的一个实施方式提供的代码查看装置的结构示意图之二;
图7是图6所示的本公开的一个实施方式提供的代码查看装置中发送模块505的结构示意图;
图8是是本公开的一个实施方式提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本公开各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本公开的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本公开的一个实施方式涉及一种代码查看方法,应用于跨平台移动用户界面UI框架Flutter下的软件程序中,其中,软件程序的代码采用Dart语言编写。具体的,代码查看方法可以通过插件的形式集成在基于Flutter框架开发的软件程序中。
如图1所示,在软件程序的代码运行的过程中,本实施方式提供的代码查看方法,可以包括:
步骤101,通过虚拟机服务模块接收用户发送的代码查看指令,对代码查看指令进行解析,确定代码查看指令对应的待获取内容,将待获取内容发送给Dart虚拟机。
具体的,步骤101可以先通过代码查看工具接收用户发送的代码查看指令,然后通过虚拟机服务模块从代码查看工具接收该代码查看指令。在本实施例中,代码查看工具具体可以为可视化的用户操作界面,通过人机交互形式接收用户输入的代码查看指令,此时代码查看工具接收到的代码查看指令为自然语言指令,虚拟机服务模块接收到该代码查看指令后,进行解析,生成程序可识别的待获取内容,并将该待获取内容发送给Dart虚拟机。
在本实施例中,虚拟机服务模块具体通过无状态并且轻量级的远程过程调用(JSON-RPC)通信协议将程序可识别的待获取内容发送给Dart虚拟机。
在本实施例中,待获取内容可以包括:软件程序正在运行的代码包以及该代码包在软件程序中的代码位置。此时,步骤101通过JSON-RPC通信协议将待获取内容发送给Dart虚拟机具体可以通过如下示例性的代码实现:
例如:当待获取内容为正在运行的代码包时,可以通过如下代码实现:
又如:当待获取内容为正在运行的代码包在程序中的代码位置时,可以通过如下代码实现:
综上所述,步骤101可以通过如下JSON-RPC通信协议范式将用户发送的代码查看指令解析生成待获取内容发送给Dart虚拟机:
步骤102,通过Dart虚拟机根据待获取内容,获取软件程序正在运行的代码包以及代码包在软件程序中的代码位置,通过虚拟机服务模块将代码包以及代码包在程序中的代码位置发送给代码查看工具。
在本实施例中,Dart虚拟机是提供给Flutter框架,用于软件程序运行的模块,Dart虚拟机可以进行任何跟软件程序运行相关的操作。由于Dart虚拟机可以进行任何跟软件程序运行相关的操作,使得步骤102接收到虚拟机服务模块发送的待获取内容后,可以通过Dart虚拟机获取待获取内容请求的软件程序正在运行的代码包以及代码包在软件程序中的代码位置。
在本实施例中,Dart虚拟机可以采用JSON-RPC通信协议将软件程序正在运行的代码包以及代码包在软件程序中的代码位置发送给虚拟机服务模块,也可以通过其他任意一种可实现的通信协议发送,此处不做赘述。虚拟机服务模块接收到Dart虚拟机发送的包含软件程序正在运行的代码包以及代码包在软件程序中的代码位置的消息后,进行解析,获取其中包含的软件程序正在运行的代码包以及代码包在软件程序中的代码位置,并将其发送给代码查看工具。
步骤103,通过代码查看工具显示代码包中的代码以及代码包在软件程序中的代码位置。
在本实施例中,代码查看工具具体可以通过人机交互界面向用户显示代码包中的代码以及代码包在软件程序中的代码位置,本实施例不对人机交互界面的具体表现形式进行限定,在实际的使用过程中,可以根据实际的使用需求,设计代码查看工具的人机交互界面,此处不做赘述。
可选的,在本实施例中,为了能够使用户查看到更多与代码相关的信息,如图2所示,步骤101之后,还可以包括:
步骤104,通过Dart虚拟机根据待获取内容,获取软件程序正在运行的代码包的相关信息,通过虚拟机服务模块将代码包的相关信息发送给代码查看工具,其中,代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数。
在本实施例中,当代码包的相关信息包括代码的行号时,步骤104可以进一步确定代码包中当前正在运行的代码的行号,并将该当前正在运行的代码的行号发送给代码查看工具。具体地,可以预先在软件程序的每一行代码中设置标记,在软件程序的代码运行的过程中,通过Dart虚拟机获取当前运行的代码的标记,根据该标记将当前正在运行的代码的行号发送给代码查看工具。
步骤105,通过代码查看工具显示代码包的相关信息。
需要说明的是,在本实施例中,当代码包的相关信息包括代码的行号时,步骤105的具体实现方法是:代码查看工具在显示代码包中的代码时,在每一行代码的旁边(如代码的左侧)显示该行代码的行号。进一步地,为了使用户能够更方便地查看软件程序正在运行的代码,在本实施例中,显示代码的行号的过程中,可以将当前正在运行的代码的行号突出显示,例如:以高亮的形式突出显示。
在本实施例中,步骤104和105可以作为两个独立的步骤执行在步骤101之后的任意位置,例如:如图2所示,步骤104和105在步骤103之后执行;步骤104和105也可以分别合并在步骤102和103中执行,即步骤104合并在步骤102中执行,步骤105合并在步骤103中执行。
通过以上步骤104和105公开的技术方案,可以使用户获取更多软件程序运行过程中与代码相关的信息,并对其进行查看,从而更进一步方便了软件开发人员在软件开发过程中对软件代码的查看以及使用。
本公开实施方式相对于现有技术而言,在Flutter框架下,采用Dart语言编写的软件程序代码运行的过程中,可以通过虚拟机服务模块接收用户发送的代码查看指令确定待获取内容,通过Dart虚拟机根据待获取内容获取代码包以及代码包在软件程序中的代码位置,并通过代码查看工具向用户显示代码包中的代码以及代码包在软件程序中的代码位置,从而达到使用户能够查看基于Flutter开发的软件程序运行过程中的代码目的,解决了现有技术无法在软件程序运行的过程中查看代码的问题;本实施例提供的技术方案可以在程序运行的过程中,获取正在运行的代码包以及代码包在软件程序中的代码位置,使得本发明实施例提供的技术方案更适用于程序开发人员在开发测试中应用本发明实施例提供的技术方案进行软件代码的错误查看以及软件代码的调试,从而更方便软件开发人员进行软件开发,简化了软件开发难度,提高了软件开发的使用体验。
本公开的另一个实施方式涉及一种代码查看方法,该方法的具体实现步骤与图1所示的基本相同,其区别在于,如图3所示,步骤103之后,还可以包括:
步骤106,通过代码查看工具接收用户对代码包中的代码进行修改获得的更新代码包。
在本实施例中,用户对代码包中的代码进行修改可以包括对代码包中的代码内容进行修改,也可以包括对代码包中的代码位置进行修改等,本实施例不对代码包中的代码具体的修改对象进行限定,在实际的使用过程中,用户可以根据软件程序的开发需要对代码包中的代码进行修改,此处对每种情况进行一一赘述。
步骤107,通过代码查看工具将更新代码包发送给Dart虚拟机。
具体的,如图4所示,步骤107可以包括:
步骤401,通过代码查看工具将更新代码包发送给虚拟机服务模块。
步骤402,通过虚拟机服务模块采用JSON-RPC通信协议将更新代码包发送给Dart虚拟机。
以上步骤401和402可以通过虚拟机服务模块对代码查看工具发送的更新代码包进行解析,生成Dart虚拟机可识别的更新代码包。
步骤108,通过Dart虚拟机使用更新代码包对软件程序进行更新。
具体的,如果更新代码包更新的内容为代码,则步骤108通过Dart虚拟机将步骤102获取的代码包替换为更新代码包,实现对软件程序的更新;如果更新代码包更新的内容为代码的位置或者其他信息,则步骤108通过Dart虚拟机根据该更新代码包对正在运行的软件程序代码进行修改,实现对软件程序的更新。
本实施例提供的技术方案,在达到如图1所示的技术方案带来的有益效果基础上,用户可以通过代码查看工具对查看的代码包的相关内容,例如:代码或者代码位置等,进行修改,从而实现了在软件程序运行过程中实时修改软件代码的目的,进而更加方便软件程序开发人员及时对软件程序进行调整,使得软件开发效率更好,开发过程更加方便,进而提高了软件开发人员开发软件的使用体验。
本公开的一个实施方式涉及一种代码查看装置,用于跨平台移动用户界面UI框架Flutter下的软件程序中,其中,软件程序的代码采用Dart语言编写。具体的,代码查看装置可以通过插件的形式集成在基于Flutter框架开发的软件程序中。
如图5所示,在软件程序的代码运行的过程中,本实施方式提供的代码查看装置,可以包括:
第一处理模块501,用于通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机;
第二处理模块502,用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包以及所述代码包在所述软件程序中的代码位置,通过所述虚拟机服务模块将所述代码包以及所述代码包在所述程序中的代码位置发送给代码查看工具;
显示模块503,用于通过所述代码查看工具显示所述代码包中的代码以及所述代码包在所述软件程序中的代码位置。
可选的,如图6所示,代码查看装置,还可以包括:
接收模块504,用于通过所述代码查看工具接收所述用户对所述代码包中的代码进行修改获得的更新代码包;
发送模块505,用于通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机;
更新模块506,用于通过所述Dart虚拟机使用所述更新代码包对所述软件程序进行更新。
其中,如图7所示,发送模块,505可以包括:
第一发送子模块5051,用于通过所述代码查看工具将所述更新代码包发送给所述虚拟机服务模块;
第二发送子模块5052,用于通过所述虚拟机服务模块采用无状态并且轻量级的远程过程调用JSON-RPC通信协议将所述更新代码包发送给所述Dart虚拟机。
可选的,所述第二处理模块502,还用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包的相关信息,通过所述虚拟机服务模块将所述代码包的相关信息发送给所述代码查看工具,其中,所述代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数;
所述显示模块503,还用于通过所述代码查看工具显示所述代码包的相关信息。
以上如图5-7所示的本发明实施例提供的代码查看装置的具体实现方法,可以参见本发明实施例提供的代码查看方法所述,此处不再赘述。
本公开实施方式相对于现有技术而言,在Flutter框架下,采用Dart语言编写的软件程序代码运行的过程中,可以通过虚拟机服务模块接收用户发送的代码查看指令确定待获取内容,通过Dart虚拟机根据待获取内容获取代码包以及代码包在软件程序中的代码位置,并通过代码查看工具向用户显示代码包中的代码以及代码包在软件程序中的代码位置,从而达到使用户能够查看基于Flutter开发的软件程序运行过程中的代码目的,解决了现有技术无法在软件程序运行的过程中查看代码的问题;本实施例提供的技术方案可以在程序运行的过程中,获取正在运行的代码包以及代码包在软件程序中的代码位置,使得本发明实施例提供的技术方案更适用于程序开发人员在开发测试中应用本发明实施例提供的技术方案进行软件代码的错误查看以及软件代码的调试,从而更方便软件开发人员进行软件开发,简化了软件开发难度,提高了软件开发的使用体验。
本公开一个实施方式涉及一种电子设备,如图8所示,包括:
至少一个处理器801;以及,
与所述至少一个处理器801通信连接的存储器802;其中,
所述存储器802存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器801执行,以使所述至少一个处理器801能够执行本公开实施方式提供的代码查看方法所述。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本公开一个实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本公开的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本公开的精神和范围。

Claims (10)

1.一种代码查看方法,其特征在于,应用在跨平台移动用户界面UI框架Flutter下,软件程序的代码运行的过程中,其中,所述软件程序的代码采用Dart语言编写,所述方法包括:
通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机;
通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包以及所述代码包在所述软件程序中的代码位置,通过所述虚拟机服务模块将所述代码包以及所述代码包在所述程序中的代码位置发送给代码查看工具;
通过所述代码查看工具显示所述代码包中的代码以及所述代码包在所述软件程序中的代码位置。
2.根据权利要求1所述的方法,其特征在于,所述通过所述代码查看工具显示所述代码包的代码内容以及所述代码包在所述程序中的代码位置之后,还包括:
通过所述代码查看工具接收所述用户对所述代码包中的代码进行修改获得的更新代码包;
通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机;
通过所述Dart虚拟机使用所述更新代码包对所述软件程序进行更新。
3.根据权利要求2所述的方法,其特征在于,所述通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机包括:
通过所述代码查看工具将所述更新代码包发送给所述虚拟机服务模块;
通过所述虚拟机服务模块采用无状态并且轻量级的远程过程调用JSON-RPC通信协议将所述更新代码包发送给所述Dart虚拟机。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机之后,还包括:
通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包的相关信息,通过所述虚拟机服务模块将所述代码包的相关信息发送给所述代码查看工具,其中,所述代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数;
通过所述代码查看工具显示所述代码包的相关信息。
5.一种代码查看装置,其特征在于,应用在跨平台移动用户界面UI框架Flutter下,软件程序的代码运行的过程中,其中,所述软件程序的代码采用Dart语言编写,所述装置包括:
第一处理模块,用于通过虚拟机服务模块接收用户发送的代码查看指令,对所述代码查看指令进行解析,确定所述代码查看指令对应的待获取内容,将所述待获取内容发送给Dart虚拟机;
第二处理模块,用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包以及所述代码包在所述软件程序中的代码位置,通过所述虚拟机服务模块将所述代码包以及所述代码包在所述程序中的代码位置发送给代码查看工具;
显示模块,用于通过所述代码查看工具显示所述代码包中的代码以及所述代码包在所述软件程序中的代码位置。
6.根据权利要求5所述的装置,其特征在于,还包括:
接收模块,用于通过所述代码查看工具接收所述用户对所述代码包中的代码进行修改获得的更新代码包;
发送模块,用于通过所述代码查看工具将所述更新代码包发送给所述Dart虚拟机;
更新模块,用于通过所述Dart虚拟机使用所述更新代码包对所述软件程序进行更新。
7.根据权利要求6所述的装置,其特征在于,所述发送模块包括:
第一发送子模块,用于通过所述代码查看工具将所述更新代码包发送给所述虚拟机服务模块;
第二发送子模块,用于通过所述虚拟机服务模块采用无状态并且轻量级的远程过程调用JSON-RPC通信协议将所述更新代码包发送给所述Dart虚拟机。
8.根据权利要求5-7中任意一项所述的装置,其特征在于,
所述第二处理模块,还用于通过所述Dart虚拟机根据所述待获取内容,获取所述软件程序正在运行的代码包的相关信息,通过所述虚拟机服务模块将所述代码包的相关信息发送给所述代码查看工具,其中,所述代码包的相关信息包括以下任意一种或组合:代码的脚本、代码的类、代码的行号以及代码使用的参数;
所述显示模块,还用于通过所述代码查看工具显示所述代码包的相关信息。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4中任一项所述的代码查看方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的代码查看方法。
CN202110780720.4A 2021-07-09 2021-07-09 代码查看方法、装置、电子设备和存储介质 Active CN113515300B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110780720.4A CN113515300B (zh) 2021-07-09 2021-07-09 代码查看方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110780720.4A CN113515300B (zh) 2021-07-09 2021-07-09 代码查看方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113515300A CN113515300A (zh) 2021-10-19
CN113515300B true CN113515300B (zh) 2023-08-22

Family

ID=78066814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110780720.4A Active CN113515300B (zh) 2021-07-09 2021-07-09 代码查看方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113515300B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908677A (zh) * 2019-11-29 2020-03-24 安徽智恒信科技股份有限公司 一种Flutter应用安装包体积优化的方法及存储介质
CN111158689A (zh) * 2019-12-30 2020-05-15 深圳Tcl数字技术有限公司 跨系统的ui应用生成方法、设备及计算机可读存储介质
CN111338666A (zh) * 2020-02-10 2020-06-26 北京字节跳动网络技术有限公司 一种实现应用程序升级的方法、装置、介质和电子设备
CN111966396A (zh) * 2019-05-20 2020-11-20 北京京东尚科信息技术有限公司 数据处理方法及装置、计算机系统和计算机可读存储介质
CN112799677A (zh) * 2021-02-05 2021-05-14 北京字节跳动网络技术有限公司 一种编译期的hook方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959255B2 (en) * 2014-01-31 2018-05-01 Yahoo Holdings, Inc. Dynamic streaming content provided by server and client-side tracking application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966396A (zh) * 2019-05-20 2020-11-20 北京京东尚科信息技术有限公司 数据处理方法及装置、计算机系统和计算机可读存储介质
CN110908677A (zh) * 2019-11-29 2020-03-24 安徽智恒信科技股份有限公司 一种Flutter应用安装包体积优化的方法及存储介质
CN111158689A (zh) * 2019-12-30 2020-05-15 深圳Tcl数字技术有限公司 跨系统的ui应用生成方法、设备及计算机可读存储介质
CN111338666A (zh) * 2020-02-10 2020-06-26 北京字节跳动网络技术有限公司 一种实现应用程序升级的方法、装置、介质和电子设备
CN112799677A (zh) * 2021-02-05 2021-05-14 北京字节跳动网络技术有限公司 一种编译期的hook方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113515300A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
CN111176626B (zh) 跨编程语言的代码调用方法及装置、介质、设备
CN109725901A (zh) 前端代码的开发方法、装置、设备和计算机存储介质
US20140298318A1 (en) Computer-executable application packaging method, computer-executable device and storage media performing the same
CN105872083A (zh) 一种支持不同类型客户端访问服务器的方法、服务器及系统
US20200272558A1 (en) Automated layout testing for mobile device applications
CN107861713A (zh) 数据调用方法、装置及计算机可读存储介质
CN107404418B (zh) 互联网产品测试方法、装置、设备及存储介质
CN111026439B (zh) 应用程序的兼容方法、装置、设备及计算机存储介质
CN110933095A (zh) 一种报文解析方法及装置
CN110795910B (zh) 一种文本信息处理方法、装置、服务器及存储介质
CN111740948A (zh) 数据包发布方法、动态更新方法、装置、设备及介质
CN111913889A (zh) 一种测试系统搭建方法及测试系统
CN111857658A (zh) 一种渲染动态组件的方法、装置、介质和电子设备
CN113805973A (zh) 应用程序控制方法及装置、应用程序开发方法及装置
CN112988588B (zh) 客户端软件调试方法、装置、存储介质及电子设备
CN113515300B (zh) 代码查看方法、装置、电子设备和存储介质
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
CN110489326B (zh) 基于ids的httpapi调试方法装置、介质和设备
CN109240696A (zh) 一种软件更新方法及装置
CN108009084B (zh) 一种混合移动应用的测试方法、装置及系统
CN112015384A (zh) 一种接口映射方法和装置
CN110262841A (zh) 一种对字节码进行增强的方法和装置
CN111522553B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
CN108170557B (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder