CN112631644A - Flutter构造函数初始化式的修改方法及装置 - Google Patents
Flutter构造函数初始化式的修改方法及装置 Download PDFInfo
- Publication number
- CN112631644A CN112631644A CN202011360099.8A CN202011360099A CN112631644A CN 112631644 A CN112631644 A CN 112631644A CN 202011360099 A CN202011360099 A CN 202011360099A CN 112631644 A CN112631644 A CN 112631644A
- Authority
- CN
- China
- Prior art keywords
- flutter
- constructor
- formula
- modifying
- initialized
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012986 modification Methods 0.000 claims abstract description 14
- 230000004048 modification Effects 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000006854 communication Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种Flutter构造函数初始化式的修改方法及装置,当需要修改Flutter构造函数初始化式时,从共享数据库中获取与Flutter构造函数初始化式对应的注解信息,根据注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件,并根据Flutter中间代码文件修改Flutter构造函数初始化式。由于注解信息中包含有修改Flutter构造函数初始化式所需的信息,并且各Flutter应用端在运行Flutter时可从共享数据库中获取注解信息,然后更新对应的Flutter中间代码文件,以修改Flutter构造函数初始化式,从而避免修改遗漏,降低了修改维护成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Flutter构造函数初始化式的修改方法及装置。
背景技术
Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能,开发者可以通过Dart语言开发应用App。
开发者在使用Flutter时,有时需要通过修改构造函数初始化式代码来修改原有业务逻辑,但该方式只能修改本地的Flutter初始化式,无法同步到其它Flutter应用端,其它Flutter应用端同样需要手动修改对应的构造函数初始化式代码,这种修改方式成本较高,而且容易造成遗漏。同时,当Flutter版本升级后,通过该修改方式修改的代码数据可能会丢失,不易于维护。
发明内容
本发明提供一种Flutter构造函数初始化式的修改方法及装置,用以解决现有技术中Flutter构造函数初始化式的修改存在遗漏的缺陷。
本发明提供一种Flutter构造函数初始化式的修改方法,包括:
当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;
根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;
根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
根据本发明提供一种的Flutter构造函数初始化式的修改方法,根据所述Flutter中间代码文件,修改Flutter构造函数初始化式,包括:
将所述Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改所述Flutter构造函数初始化式的执行代码;
根据所述执行代码,修改Flutter构造函数初始化式。
根据本发明提供的一种Flutter构造函数初始化式的修改方法,在修改Flutter构造函数初始化式之后,还包括:
将所述执行代码写回所述Flutter中间代码文件。
根据本发明提供一种的Flutter构造函数初始化式的修改方法,在根据所述Flutter中间代码文件,修改Flutter构造函数初始化式之后,所述方法还包括:
根据修改后的Flutter构造函数初始化式,确定与修改后的Flutter构造函数初始化式对应的新的注解信息;
将所述新的注解信息与修改后的Flutter构造函数初始化式对应存储至所述共享数据库;
其中,所述共享数据库供各Flutter应用端读取所述新的注解信息。
根据本发明提供一种的Flutter构造函数初始化式的修改方法,所述注解信息包括Flutter构造函数初始化式的存储路径、Flutter构造函数初始化式的原始代码、Flutter构造函数初始化式的类名、Flutter构造函数初始化式的构造方法和Flutter构造函数初始化式的待修改变量信息。
本发明还提供一种Flutter构造函数初始化式的修改装置,包括:
获取单元,用于当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;
更新单元,用于根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;
修改单元,用于根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
根据本发明提供一种的Flutter构造函数初始化式的修改装置,所述修改单元,具体用于:
将所述Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改所述Flutter构造函数初始化式的执行代码;
根据所述执行代码,修改Flutter构造函数初始化式。
根据本发明提供一种的Flutter构造函数初始化式的修改装置,还包括:
写入单元,用于在修改Flutter构造函数初始化式之后,将所述执行代码写回所述Flutter中间代码文件。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述Flutter构造函数初始化式的修改方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述Flutter构造函数初始化式的修改方法的步骤。
本发明提供的Flutter构造函数初始化式的修改方法及装置,当需要修改Flutter构造函数初始化式时,从共享数据库中获取与Flutter构造函数初始化式对应的注解信息,根据注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件,并根据Flutter中间代码文件修改Flutter构造函数初始化式。由于注解信息中包含有修改Flutter构造函数初始化式所需的信息,并且各Flutter应用端在运行Flutter时可从共享数据库中获取注解信息,然后更新对应的Flutter中间代码文件,以修改Flutter构造函数初始化式,避免了传统方法中各Flutter应用端需要手动修改Flutter构造函数初始化式造成成本较高以及容易遗漏的问题,而且Flutter版本升级后也可以通过共享数据库中存储的注解信息对Flutter构造函数初始化式进行修改,很好地解决了传统方法中在Flutter版本升级后导致修改后的Flutter构造函数初始化式数据丢失的问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的Flutter构造函数初始化式的修改方法的流程示意图之一;
图2是本发明提供的更新中间代码文件的流程示意图;
图3是本发明提供的Flutter构造函数初始化式的修改方法的流程示意图之二;
图4是本发明提供的修改Flutter构造函数初始化式的示意图;
图5是本发明提供的Flutter构造函数初始化式的修改装置的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能,开发者可以通过Dart语言开发应用App。开发者在使用Flutter时,当需要修改对应的组件功能时,现有技术中通常采用修改构造函数初始化式代码来修改原有业务逻辑,从而实现修改对应组件的功能,但该方式只能修改Flutter应用端本地的Flutter初始化式,无法同步到其它Flutter应用端,其它Flutter应用端同样需要手动修改对应的构造函数初始化式代码,这种修改方式成本较高,而且容易造成遗漏。同时,当Flutter版本升级后,通过该修改方式修改的代码数据可能会丢失,不易于维护。
对此,本发明提供了一种Flutter构造函数初始化式的修改方法。图1是本发明提供的Flutter构造函数初始化式的修改方法的流程示意图之一,如图1所示,该方法包括:
步骤110、当需要修改Flutter构造函数初始化式时,从共享数据库中获取与Flutter构造函数初始化式对应的注解信息;其中,注解信息中包含有修改Flutter构造函数初始化式所需的信息。
在本步骤中,Flutter构造函数初始化式就是用于保证Flutter每个对象的数据成员具有合适的初始值,若要对某一对象进行修改,则需要修改对应的Flutter构造函数初始化式。在本实施例中,开发者可以预先将与Flutter构造函数初始化式对应的注解信息存储于共享数据库中,其中,修改Flutter构造函数初始化式所需的信息可以包括修改Flutter构造函数初始化式的存储路径、修改Flutter构造函数初始化式的待修改变量信息等,由于各Flutter应用端均可以从共享数据库中获取数据,从而在开发者在共享数据库中存储注解信息后,各Flutter应用端均可以获取到该注解信息,用于修改Flutter构造函数初始化式。
由此可见,本实施例通过将注解信息存储至共享数据库中,从而使得各Flutter应用端均可以获取包含有修改Flutter构造函数初始化式所需信息的注解信息,相较于传统方法中各Flutter应用端需要与开发者沟通,获取修改Flutter构造函数初始化式所需信息后,各Flutter应用端各自负责修改各自本地端的相应代码,本实施例降低了沟通成本,而且避免沟通过程中造成的失误,同时在Flutter版本升级后,各Flutter应用端仍可以从共享数据库中获取注解信息,即注解信息不会因Flutter版本升级而造成数据丢失,而传统方法中根据与开发者沟通后修改各自本地端的相应代码,在Flutter版本升级后所修改的代码数据会丢失,增加了数据维护成本。
此外,本实施例在Flutter启动编译后,就可自动触发从共享数据库中获取与Flutter构造函数初始化式对应的注解信息,以便于修改Flutter构造函数初始化式,相较于传统方法中在与开发者沟通后手动启动修改Flutter构造函数初始化式,传统方法效率较低而且由于人工失误会造成遗漏,本实施例提供的方法能够提高修改效率而且避免修改遗漏。
步骤120、根据注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件。
在本步骤中,需要说明的是,注解信息可以理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理,通过注解信息开发人员可以在不改变原有代码逻辑的情况下在源代码中嵌入补充信息。本实施例在Flutter启动编译后,会生成一个与Flutter构造函数初始化式对应的Flutter中间代码文件,将从共享数据库中获取的注解信息添加至Flutter中间代码文件,实现在不改变原有逻辑的情况下,使得Flutter中间代码文件中包含有修改Flutter构造函数初始化式所需的信息。
如图2所示,在Flutter启动编译后,在flutter_tools中修改打包编译流程,植入修改编译中间文件代码,Flutter编译主要包括三个过程,首先将Flutter代码进行前端编译,生成中间代码文件,然后对中间文件进行优化,最后后端用优化后的中间代码生成目标代码。本实施例中在中间代码文件中添加注解信息,实现对中间代码文件的更新,并对原中间代码文件进行了覆盖,以达到添加代码的目的。
步骤130、根据Flutter中间代码文件,修改Flutter构造函数初始化式。
在本步骤中,由于步骤120中更新后的Flutter中间代码文件中包含修改Flutter构造函数初始化式所需的信息,因此根据Flutter中间代码文件,可以实现修改Flutter构造函数初始化式。如图3所示,在Flutter启动编译后,会生成一个中间代码文件,并调用flutter_tools,flutter_tools会收集中间代码文件中的所有注解信息,并检测中间代码文件中是否存在注解信息,若存在,则读取中间代码文件并对其进行语法树遍历,修改Flutter构造函数初始化式。其中,修改Flutter构造函数初始化式包括修改、增加和删除Flutter构造函数初始化式中的相应变量。
本发明实施例提供的Flutter构造函数初始化式的修改方法,当需要修改Flutter构造函数初始化式时,从共享数据库中获取与Flutter构造函数初始化式对应的注解信息,根据注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件,并根据Flutter中间代码文件修改Flutter构造函数初始化式。由于注解信息中包含有修改Flutter构造函数初始化式所需的信息,并且各Flutter应用端在运行Flutter时可从共享数据库中获取注解信息,然后更新对应的Flutter中间代码文件,以修改Flutter构造函数初始化式,避免了传统方法中各Flutter应用端需要手动修改Flutter构造函数初始化式造成成本较高以及容易遗漏的问题,而且Flutter版本升级后也可以通过共享数据库中存储的注解信息对Flutter构造函数初始化式进行修改,很好地解决了传统方法中在Flutter版本升级后导致修改后的Flutter构造函数初始化式数据丢失的问题。
基于上述实施例,根据Flutter中间代码文件,修改Flutter构造函数初始化式,包括:
将Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改Flutter构造函数初始化式的执行代码;
根据执行代码,修改Flutter构造函数初始化式。
在本实施例中,需要说明的是,由于Flutter中间代码文件中的注解信息相当于一个标记注释,但还不是可以执行的代码,因此需要将包含有注解信息的Flutter中间代码文件转换为可以执行的代码,本实施例采用将Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改Flutter构造函数初始化式的执行代码,从而根据执行代码完成相应Flutter构造函数初始化式的修改。其中,本实施例中语法树遍历可以采用被动遍历机制(ParseTreeListener,Listener模式),也可以采用主动遍历机制(ParseTreeVisitor,Visitor模式),Listener模式适合全局查找,默认是深度优先遍历,而Visitor模式适合指定某个节点作遍历,这种遍历方式默认是先根,然后遍历左右子树。
本发明实施例提供的Flutter构造函数初始化式的修改方法,将Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改Flutter构造函数初始化式的执行代码,以修改Flutter构造函数初始化式,从而实现将注解信息转换为可以执行的代码,完成对Flutter构造函数初始化式的修改。
基于上述实施例,在修改Flutter构造函数初始化式之后,还包括:
将执行代码写回Flutter中间代码文件。
在本实施例中,需要说明的是,在根据更新后的Flutter中间代码文件修改Flutter构造函数初始化式之后,为了保证此次修改的有效性,需要将执行代码写回Flutter中间代码文件,即采用执行代码替换Flutter中间代码文件中的原始代码,实现对中间代码文件的覆盖。
本发明实施例提供的Flutter构造函数初始化式的修改方法,在修改Flutter构造函数初始化式之后,将执行代码写回Flutter中间代码文件,从而保证修改Flutter构造函数初始化式的有效性。
基于上述实施例,在根据Flutter中间代码文件,修改Flutter构造函数初始化式之后,还包括:
根据修改后的Flutter构造函数初始化式,确定与修改后的Flutter构造函数初始化式对应的新的注解信息;
将新的注解信息与修改后的Flutter构造函数初始化式对应存储至共享数据库;
其中,共享数据库供各Flutter应用端读取新的注解信息。
在本实施例中,若修改完成Flutter构造函数初始化式之后,后期需要再次对修改后的Flutter构造函数初始化式进行修改,则可以确定与修改后的Flutter构造函数初始化式对应的新的注解信息之后,将新的注解信息与修改后的Flutter构造函数初始化式对应存储至共享数据库,从而各Flutter应用端可以从共享数据库中读取新的注解信息,根据新的注解信息更新对应的中间代码文件,随后根据中间代码文件对修改后的Flutter构造函数初始化式进行修改。
由此可见,本实施例可以根据修改后的Flutter构造函数初始化式的修改需求,将对应新的注解信息添加至共享数据库,从而实现实时对Flutter构造函数初始化式的修改,提高了修改效率。
基于上述实施例,注解信息包括Flutter构造函数初始化式的存储路径、Flutter构造函数初始化式的原始代码、Flutter构造函数初始化式的类名、Flutter构造函数初始化式的构造方法和Flutter构造函数初始化式的待修改变量信息。
在本实施例中,注解信息包含有修改Flutter构造函数初始化式所需的信息,即包括Flutter构造函数初始化式的存储路径、Flutter构造函数初始化式的原始代码、Flutter构造函数初始化式的类名、Flutter构造函数初始化式的构造方法、Flutter构造函数初始化式的待修改变量信息。根据Flutter构造函数初始化式的类名和Flutter构造函数初始化式的构造方法可以确定Flutter构造函数初始化式的属性信息,从而可以根据属性信息确定Flutter构造函数初始化式的修改方式(例如采用的计算机语言等),然后根据Flutter构造函数初始化式的待修改变量信息以及Flutter构造函数初始化式的存储路径对Flutter构造函数初始化式的原始代码进行修改。图4是本发明提供的修改Flutter构造函数初始化式的示意图,如图4所示,Flutter构造函数初始化式的存储路径为package:flutter/src/widgets/image.dart,Flutter构造函数初始化式的类名为Image类,Flutter构造函数初始化式的构造方法为Image.file构造方法。
本发明实施例提供的Flutter构造函数初始化式的修改方法,根据注解信息中包含的修改Flutter构造函数初始化式所需的信息,从而能够准确且有效修改Flutter构造函数初始化式。
下面对本发明提供的Flutter构造函数初始化式的修改装置进行描述,下文描述的Flutter构造函数初始化式的修改装置与上文描述的Flutter构造函数初始化式的修改方法可相互对应参照。
基于上述实施例,如图5所示,本发明提供了一种Flutter构造函数初始化式的修改装置,该装置包括:
获取单元510,用于当需要修改Flutter构造函数初始化式时,从共享数据库中获取与Flutter构造函数初始化式对应的注解信息;其中,注解信息中包含有修改Flutter构造函数初始化式所需的信息;
更新单元520,用于根据注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;
修改单元530,用于根据Flutter中间代码文件,修改Flutter构造函数初始化式。
基于上述实施例,修改单元530,具体用于:
将Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改Flutter构造函数初始化式的执行代码;
根据执行代码,修改Flutter构造函数初始化式。
基于上述实施例,还包括:
写入单元,用于在修改Flutter构造函数初始化式之后,将执行代码写回Flutter中间代码文件。
基于上述实施例,还包括:
存储单元,用于在根据Flutter中间代码文件,修改Flutter构造函数初始化式之后,根据修改后的Flutter构造函数初始化式,确定与修改后的Flutter构造函数初始化式对应的新的注解信息;
将新的注解信息与修改后的Flutter构造函数初始化式对应存储至共享数据库;
其中,共享数据库供各Flutter应用端读取新的注解信息。
基于上述实施例,注解信息包括Flutter构造函数初始化式的存储路径、Flutter构造函数初始化式的原始代码、Flutter构造函数初始化式的类名、Flutter构造函数初始化式的构造方法和Flutter构造函数初始化式的待修改变量信息。
图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行Flutter构造函数初始化式的修改方法,该方法包括:当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的Flutter构造函数初始化式的修改方法,该方法包括:当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的Flutter构造函数初始化式的修改方法,该方法包括:当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Flutter构造函数初始化式的修改方法,其特征在于,包括:
当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;
根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;
根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
2.根据权利要求1所述的Flutter构造函数初始化式的修改方法,其特征在于,根据所述Flutter中间代码文件,修改Flutter构造函数初始化式,包括:
将所述Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改所述Flutter构造函数初始化式的执行代码;
根据所述执行代码,修改Flutter构造函数初始化式。
3.根据权利要求2所述的Flutter构造函数初始化式的修改方法,其特征在于,在修改Flutter构造函数初始化式之后,还包括:
将所述执行代码写回所述Flutter中间代码文件。
4.根据权利要求1所述的Flutter构造函数初始化式的修改方法,其特征在于,在根据所述Flutter中间代码文件,修改Flutter构造函数初始化式之后,所述方法还包括:
根据修改后的Flutter构造函数初始化式,确定与修改后的Flutter构造函数初始化式对应的新的注解信息;
将所述新的注解信息与修改后的Flutter构造函数初始化式对应存储至所述共享数据库;
其中,所述共享数据库供各Flutter应用端读取所述新的注解信息。
5.根据权利要求1~4任一项所述的Flutter构造函数初始化式的修改方法,其特征在于,所述注解信息包括Flutter构造函数初始化式的存储路径、Flutter构造函数初始化式的原始代码、Flutter构造函数初始化式的类名、Flutter构造函数初始化式的构造方法和Flutter构造函数初始化式的待修改变量信息。
6.一种Flutter构造函数初始化式的修改装置,其特征在于,包括:
获取单元,用于当需要修改Flutter构造函数初始化式时,从共享数据库中获取与所述Flutter构造函数初始化式对应的注解信息;其中,所述注解信息中包含有修改Flutter构造函数初始化式所需的信息;
更新单元,用于根据所述注解信息更新与Flutter构造函数初始化式对应的Flutter中间代码文件;
修改单元,用于根据所述Flutter中间代码文件,修改Flutter构造函数初始化式。
7.根据权利要求6所述的Flutter构造函数初始化式的修改装置,其特征在于,所述修改单元,具体用于:
将所述Flutter中间代码文件转换为语法树,通过遍历语法树获取用于修改所述Flutter构造函数初始化式的执行代码;
根据所述执行代码,修改Flutter构造函数初始化式。
8.根据权利要求7所述的Flutter构造函数初始化式的修改装置,其特征在于,还包括:
写入单元,用于在修改Flutter构造函数初始化式之后,将所述执行代码写回所述Flutter中间代码文件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述Flutter构造函数初始化式的修改方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述Flutter构造函数初始化式的修改方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360099.8A CN112631644A (zh) | 2020-11-27 | 2020-11-27 | Flutter构造函数初始化式的修改方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360099.8A CN112631644A (zh) | 2020-11-27 | 2020-11-27 | Flutter构造函数初始化式的修改方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631644A true CN112631644A (zh) | 2021-04-09 |
Family
ID=75306639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011360099.8A Pending CN112631644A (zh) | 2020-11-27 | 2020-11-27 | Flutter构造函数初始化式的修改方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631644A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342344A (zh) * | 2021-04-26 | 2021-09-03 | 北京房江湖科技有限公司 | Flutter编译流程介入方法及装置 |
CN113778394A (zh) * | 2021-08-18 | 2021-12-10 | 北京城市网邻信息技术有限公司 | Sdk适配方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258615A1 (en) * | 2010-04-17 | 2011-10-20 | Microsoft Corporation | Intermediate language support for change resilience |
US20150080063A1 (en) * | 2013-09-17 | 2015-03-19 | Parkervision, Inc. | Method, apparatus and system for rendering an information bearing function of time |
CN111090433A (zh) * | 2019-10-23 | 2020-05-01 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
CN111708539A (zh) * | 2020-06-17 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种应用程序代码转换方法、装置、电子设备和存储介质 |
-
2020
- 2020-11-27 CN CN202011360099.8A patent/CN112631644A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258615A1 (en) * | 2010-04-17 | 2011-10-20 | Microsoft Corporation | Intermediate language support for change resilience |
US20150080063A1 (en) * | 2013-09-17 | 2015-03-19 | Parkervision, Inc. | Method, apparatus and system for rendering an information bearing function of time |
CN111090433A (zh) * | 2019-10-23 | 2020-05-01 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
CN111708539A (zh) * | 2020-06-17 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种应用程序代码转换方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
AMERYZHU: "通过analyzer分析dart代码", Retrieved from the Internet <URL:https://blog.csdn.net/ameryzhu/article/details/106858705> * |
YANGDAHUAN: "Flutter系列:4.基于注解的代码生成应用", pages 1 - 13, Retrieved from the Internet <URL:https://www.ancii.com/arny6mzd8/> * |
暴打小女孩: "Flutter 注解处理及代码生成", Retrieved from the Internet <URL:https://juejin.cn/post/6844903878392053774> * |
闲鱼技术: "详解Dart中如何通过注解生成代码", pages 1 - 15, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/166527510> * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342344A (zh) * | 2021-04-26 | 2021-09-03 | 北京房江湖科技有限公司 | Flutter编译流程介入方法及装置 |
CN113342344B (zh) * | 2021-04-26 | 2024-02-27 | 贝壳找房(北京)科技有限公司 | Flutter编译流程介入方法及装置 |
CN113778394A (zh) * | 2021-08-18 | 2021-12-10 | 北京城市网邻信息技术有限公司 | Sdk适配方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106796522B (zh) | 用于更新源代码文件的***和方法 | |
CN108228188B (zh) | 一种视图组件处理方法、电子设备及可读存储介质 | |
US10067957B1 (en) | Process for serializing and deserializing data described by a schema | |
US8418134B2 (en) | Method for efficiently managing property types and constraints in a prototype based dynamic programming language | |
WO2015176492A1 (en) | A system and method thereof for creating dynamically attachable and detachable binary files | |
US9652209B2 (en) | Static analysis and reconstruction of deep link handling in compiled applications | |
TW202001548A (zh) | 應用程式的開發方法和裝置 | |
CN109634591B (zh) | 一种文件处理方法及装置 | |
CN107844313B (zh) | 一种Android中SDK版本升级方法及装置 | |
CN112631644A (zh) | Flutter构造函数初始化式的修改方法及装置 | |
US20230315416A1 (en) | Code translation method and apparatus, and device | |
KR20130017337A (ko) | 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. | |
CN114489647A (zh) | 一种小程序的组件化构建方法、装置、设备和介质 | |
CN112000334A (zh) | 页面开发方法、装置、服务器及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN110347416B (zh) | 脚本的更新方法和装置 | |
US10929121B2 (en) | Method, device and related system for dynamically repairing application | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN117008920A (zh) | 引擎***、请求处理方法、装置、计算机设备及存储介质 | |
CN111625225A (zh) | 一种程序指定数据输出方法和装置 | |
CN115904480A (zh) | 代码重构方法、装置、电子设备及存储介质 | |
CN115794858A (zh) | 查询语句处理方法、装置、设备及存储介质 | |
CN110727677B (zh) | 数据仓库内表格的血缘关系追溯的方法和装置 | |
CN112596734A (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 |