CN113672229A - 一种目录注册方法、装置、设备及存储介质 - Google Patents
一种目录注册方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113672229A CN113672229A CN202010407818.0A CN202010407818A CN113672229A CN 113672229 A CN113672229 A CN 113672229A CN 202010407818 A CN202010407818 A CN 202010407818A CN 113672229 A CN113672229 A CN 113672229A
- Authority
- CN
- China
- Prior art keywords
- directory
- file
- hierarchical
- target
- code block
- 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 46
- 230000006870 function Effects 0.000 claims description 85
- 230000001419 dependent effect Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种目录注册方法、装置、设备及存储介质。该方法包括:获取项目工程的层级目录;获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件;在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中。本发明实施例的技术方案,提高了存储于文件内的代码块的查找效率。
Description
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种目录注册方法、装置、设备及存储介质。
背景技术
在Android项目工程中,现有方案主要是基于功能模块的方式管理项目工程,具体的,其将项目工程中各功能模块对应的代码块存储在同一目录下,并将该目录注册到编译器中以使编译器对该目录下的各代码块进行编译。
但是,在对项目工程进行管理时,因各代码块全部耦合在一起,这一方案难以快速定位到某一代码块,代码块的查找效率较为低下。
发明内容
本发明实施例提供了一种目录注册方法、装置、设备及存储介质,解决了Android项目工程中代码块的查找效率较为低下的问题。
第一方面,本发明实施例提供了一种目录注册方法,可以包括:
获取Android项目工程的层级目录,其中,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的;
获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件;
在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;
在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;
在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中;
其中,下一级目录包括资源目录和/或依赖库目录,目标文件包括源码文件、资源文件和二进制文件中的至少一个。
可选的,业务部门目录是列表结构,功能模块目录是列表结构中的列表对象。
可选的,在第二代码块中设置目标文件的目标目录信息,可以包括:
确定列表结构中与目标文件对应的目标列表对象;
将目标列表对象作为预设注册函数的入参参数,通过调用预设注册函数,在第二代码块中设置目标文件的目标目录信息。
可选的,预设注册函数包括列表结构中的each函数。
可选的,上述目录注册方法,还可以包括:
在监测到添加功能模块的触发事件时,将与触发事件对应的待添加的功能模块添加至列表结构中。
可选的,在获取Android项目工程的层级目录之前,该方法还可以包括:
基于业务部门对主工程目录进行划分,生成业务部门目录,并基于功能模块对与功能模块对应的业务部门目录进行划分,生成功能模块目录。
可选的,层级目录中各目录的层级关系由高到低是源码目录、主工程目录、业务部门目录和功能模块目录,层级目录还包括资源目录和依赖库目录,资源目录、依赖库目录和源码目录位于同一层级。
第二方面,本发明实施例还提供了一种目录注册装置,该装置可以包括:
层级目录获取模块,用于获取Android项目工程的层级目录,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的;
文件获取模块,用于获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件;
代码块添加模块,用于在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;
第一目录注册模块,用于在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;
第二目录注册模块,用于在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中;
其中,所述下一级目录包括资源目录和/或依赖库目录,所述目标文件包括源码文件、资源文件和二进制文件中的至少一个。
第三方面,本发明实施例还提供了一种设备,该设备可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的目录注册方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的目录注册方法。
本发明实施例的技术方案,通过获取Android项目工程的层级目录,该层级目录是根据负责开发该Android项目工程的业务部门和由该业务部门开发出的功能模块预先生成的,获取存储于层级目录中主工程目录下的预设编译文件,获取存储于层级目录中根目录的下一级目录下的原始文件,以及获取存储于层级目录中业务部门目录下的功能模块目录下的目标文件;在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块,由此,可以在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中,并且可以在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中,以使编译器对存储于该层级目录下的原始文件和目标文件中的代码块进行编译。上述技术方案,在管理Android项目工程时,通过预先生成的具有多个层级关系的层级目录,可以快速定位出待管理的原始文件和目标文件的所在位置,提高了原始文件和目标文件内存储的代码块的查找效率,有效解决了功能模块混乱且代码块不易管理的问题,提高了代码块管理的便利性。
附图说明
图1是本发明实施例一中的一种目录注册方法的流程图;
图2是本发明实施例一中的一种目录注册方法中层级目录的示意图;
图3是本发明实施例二中的一种目录注册方法的流程图;
图4是本发明实施例三中的一种目录注册装置的结构框图;
图5是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:一个Android项目工程的开发工作可能涉及到多个开发人员,该多个开发工作人员可能隶属于一个、两个或是多个业务部门,各业务部门负责的开发内容是存在差异性的,如某Android项目工程由业务部门A、业务部门B和业务部门C共同开发,业务部门A主要负责算法开发内容,业务部门B主要负责界面开发内容,且业务部门C主要负责架构开发内容。进一步,每个业务部门负责开发的功能模块的数量可能是一个、两个或是多个,以业务部门A为例,其可能负责开发权限管理模块和用户登录模块。
由此,若将各业务部门开发出的各功能模块对应的代码块均存储于工程目录/源码目录/主工程目录(即,工程目录/src/main/)下,该工程目录是Android项目工程的根目录,因各代码块均存储于同一目录下,当后续想要管理某代码块时,难以快速定位到该代码块。
为解决这一问题,本发明各实施例提出了根据负责开发Android项目工程的各业务部门以及由各业务部门开发出的各功能模块预先生成Android项目工程的层级目录,该层级目录是先按照业务部门进行划分,生成业务部门目录;再根据某业务部门开出的各功能模块对该业务部门对应的业务部门目录进行划分的,生成功能模块目录。示例性的,该层级目录中各目录的层级关系由高到低是源码目录、主工程目录、业务部门目录和功能模块目录,层级目录还包括资源目录和依赖库目录,资源目录、依赖库目录和源码目录位于同一层级。由此,可将各代码块存储在相应目录下,以实现代码块的快速定位查找。本领域技术人员应当理解的是,在生成层级目录后,还需要将该层级目录注册到编译器中,以使编译器对该层级目录下的各代码块进行编译。
实施例一
图1是本发明实施例一中提供的一种目录注册方法的流程图。本实施例可适用于对Android项目工程中的层级目录进行注册的情况。该方法可以由本发明实施例提供的目录注册装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在各种用户终端或服务器上。
参见图1,本发明实施例的方法具体包括如下步骤:
S110、获取Android项目工程的层级目录,其中,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的。
其中,根据负责开发Android项目工程的各业务部门和由各业务部门负责开发出的各功能模块预先生成一个层级目录,以便将与各功能模块相关的目标文件存储在相应的业务部门所开发出的功能模块对应的目录下,该目标文件可以是与功能模块对应的代码块所在的文件,其可以是源码文件、资源文件、依赖库文件、二进制文件等等,在此未做具体限定。具有这样的层级目录的Android项目工程可称为P工程,P是项目Project的简称。
具体的,在src/main/下设置多个业务部门目录,其中,src是源码目录,main是主工程目录,每个业务部门目录是相应的业务部门特有的目录结构。由此,在基于业务部门对主工程目录进行划分后,该业务部门开发出的各目标文件都可以存储在相应的业务部门目录下。在此基础上,可选的,还可对层级目录设置用户权限,以使隶属于某业务部门的开发人员只能对存储于相应的业务部门目录下的目标文件进行管理。
进一步,类似的,若某业务部门开发出的功能模块较为复杂,还可基于功能模块对相应的业务部门目录继续进行划分,当然,若某功能模块较为复杂,还可对该功能模块对应的功能模块目录继续进行划分,以此类推,在此未做具体限定。由此,在管理Android项目工程时,根据层级目录可快速定位出待管理的目标文件的所在位置,由此可对其内存储的代码块进行修改,也就是说,通过提高代码块的查找效率,解决了现有方案中功能模块混乱且代码块不易管理的问题,提高了代码块管理的便利性。
本领域技术人员应当理解的是,在实际应用中,层级目录中的每一级目录均可对应一个文件夹,而存储于某一级目录下的目标文件即为存储于相应的文件夹中的目标文件。比如,若层级目录是目录10/目录101/目录1011,这意味文件夹10中设置有文件夹101,且在文件夹101中设置有文件夹1011。另外,可选的,文件夹10除包括文件夹101之外,其还可能包括资源文件、源码文件等等文件,文件夹101情况类似,在此未做具体限定。
S120、获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件,其中,下一级目录包括资源目录和/或依赖库目录,目标文件包括源码文件、资源文件和二进制文件中的至少一个。
其中,编译器是将主工程目录作为入口开始编译,因此,预设编译文件可以存储于主工程目录下,该预设编译文件可以是build.gradle。原始文件存储于层级目录中根目录的下一级目录下,该根目录可以是工程目录,该下一级目录可以是资源目录、依赖库目录等等,由此,原始文件是存储于资源目录或是依赖库目录下的文件。目标文件存储于相应的业务部门目录下的功能模块目录下,该业务部门目录对应的业务部门是该目标文件的开发人员隶属于的业务部门,该功能模块目录对应的功能模块是该目标文件可以实现的功能模块。
S130、在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块。
其中,在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;在第二代码块中设置目标文件的目标目录信息。其中,第一代码块可以是sourceSets{}代码块,其用于表示开始描述层级目录,第二代码块可以是main{}代码块,其用于表示开始描述主工程目录,进而可在main{}代码块中设置目标文件的目标目录信息。
S140、在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中。
其中,在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中,示例性的,可以通过如下方式将原始目录信息注册到编译器中:
assets.srcDirs=['assets']
jniLibs.srcDirs=['libs']
其中,assets.srcDirs=['assets']描述的是资源目录为工程目录下面的'assets'目录,'assets'目录是在创建Android项目工程时默认的资源目录。类似的,jniLibs.srcDirs=['libs']描述的是依赖库目录在工程目录下面的'libs'目录。除此之外,还可基于java.srcDirs=['src/main/java']描述源代码目录存放在工程目录下面的src/main/java目录,当然,本发明实施例已按照业务部门和功能模块对src/main/java目录进行划分。需要说明的是,上述3个目录均是在创建Android项目工程时自动生成的默认目录,由此,在对Android项目工程进行编译时,能够保证默认目录依旧能够参与到编译工程中。
S150、在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中。
其中,目标目录信息可以认为是目标文件的目录路径信息,比如,以层级目录是目录10/目录101/目录1011为例,存储于目录1011下的目标文件的目标目录信息即为目录10/目录101/目录1011。由此,基于已设置目标目录信息的预设编译文件,可以将目标目录信息注册到编译器中,以使编译器对存储于该目标目录信息下的目标文件中的代码块进行编译。
本发明实施例的技术方案,通过获取Android项目工程的层级目录,该层级目录是根据负责开发该Android项目工程的业务部门和由该业务部门开发出的功能模块预先生成的,获取存储于层级目录中主工程目录下的预设编译文件,获取存储于层级目录中根目录的下一级目录下的原始文件,以及获取存储于层级目录中业务部门目录下的功能模块目录下的目标文件;在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块,由此,可以在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中,并且可以在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中,以使编译器对存储于该层级目录下的原始文件和目标文件中的代码块进行编译。上述技术方案,在管理Android项目工程时,通过预先生成的具有多个层级关系的层级目录,可以快速定位出待管理的原始文件和目标文件的所在位置,提高了原始文件和目标文件内存储的代码块的查找效率,有效解决了功能模块混乱且代码块不易管理的问题,提高了代码块管理的便利性。
为了更好的理解上述层级目录的概念,示例性的,如图2所示,Android项目工程的根目录是工程目录,工程目录的下一级目录是资源目录res、依赖库目录libs和源码目录src,这3个目录是在创建Android项目工程时自动生成的默认目录。进一步,源码目录的下一级目录是主工程目录main,主工程目录的下一级目录是业务部门A目录、业务部门B目录和业务部门C目录,其中,业务部门C负责开发的功能模块较为简单,在业务部门C目录下未再继续划分;业务部门A负责开发权限管理模块和用户登录模块,在业务部门A目录下继续划分出权限管理目录和用户登录模块;类似的,在业务部门B目录下继续划分出功能模块1目录和功能模块2目录,特别地,功能模块1较为复杂,其需要基于功能模块1a和功能模块1b共同实现,由此在功能模块1目录下继续划分出功能子模块1a目录和功能子模块1b目录。在此基础上,可将与权项管理模块相关的各目标文件存储于工程目录/src/main/业务部门A目录/权限管理目录下;再比如,可将与功能子模块1a相关的各目标文件存储于工程目录/src/main/业务部门B目录/功能模块1目录/功能子模块1a目录下,等等。
实施例二
图3是本发明实施例二中提供的一种目录注册方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,业务部门目录是列表结构,功能模块目录是列表结构中的列表对象。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例的方法具体可以包括如下步骤:
S210、获取Android项目工程的层级目录,其中,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的。
S220、获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件,其中,业务部门目录是列表结构,功能模块目录是列表结构中的列表对象,下一级目录包括资源目录和/或依赖库目录,目标文件包括源码文件、资源文件和二进制文件中的至少一个。
其中,业务部门目录是src/main/的下一级目录,其隶属于某一业务部门,与某一业务线相关联,该业务线下面可能存在多个功能模块,该功能模块也可称为工程信息,因此,无法直接将业务部门目录直接添加到编译工程中。为解决这一问题,本发明实施例将业务部门目录设置为列表结构,功能模块是列表结构中的列表对象。示例性的,若业务部门目录是p_mm目录,p_mm目录下的功能模块是p_pay_room和p_tp_hero,由此,列表结构可以如下所示:
def mmDir=[
p_pay_room,
p_tp_hero
]。
列表结构设置的好处在于,后续向列表结构中可以动态添加列表对象,操作灵活性更好。示例性的,在监测到添加功能模块的触发事件时,可以将与触发事件对应的待添加的功能模块直接添加至列表结构中。
S230、在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块。
S240、在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;
S250、在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中。
本发明实施例的技术方案,通过将业务部门目录设置为列表结构,功能模块目录是列表结构中的列表对象,可以将业务部门目录添加到编译工程中,且可以向业务部门目录中动态添加功能模块,操作灵活性更好。
一种可选的技术方案,在第二代码块中设置目标文件的目标目录信息,可包括:确定列表结构中与目标文件对应的目标列表对象;将目标列表对象作为预设注册函数的入参参数,通过调用预设注册函数,在第二代码块中设置目标文件的目标目录信息。其中,考虑到业务部门目录是列表结构,可以对列表结构中各列表对象以迭代方式进行处理。具体的,先确定待设置的目标文件对应的目标列表对象,即先确定待设置的目标文件存储于哪个功能目录下,将该目标列表对象作为预设注册函数的入参参数,以便通过调用预设注册函数来在第二代码块中设置目标文件的目标目录信息。示例性的,继续以上述例子为例,通过调用列表结构mmDir中的each函数来对mmDir进行迭代处理,在迭代过程中可以将每次的迭代结果作为临时变量dir进行存储,具体实现逻辑如下:
mmDir.each{dir->
//功能模块
}
其中,上述实现逻辑中的“//功能模块”用于实现功能模块目录的自动注册功能,具体的预设注册函数可以是java.srcDir("src/main/p_dir/p_mm/$dir/java"),其表示将源码文件的目标目录信息设置为"src/main/p_dir/p_mm/$dir/java",其中的src/main/p_dir/p_mm/是用于描述该源码文件对应的某业务线的目录路径信息,$dir表示mmDir.each函数的入参参数,该入参参数可以是p_pay_room或p_tp_hero。类似的,资源文件的目标目录信息可以设置为res.srcDir("src/main/p_dir/p_mm/$dir/res"),二进制文件的目标目录信息可以设置为assets.srcDir("src/main/p_dir/p_mm/$dir/assets")。这些目标目录信息通常是一个功能模块的必需的目标目录信息,后续如果需要添加其它的目标目录信息,也可以通过类似方式来进行添加。另外,后续如果需要添加其它的功能模块,可以直接在mmDir中增加一个列表对象就能够将相应的目标目录信息添加到编译器中。当然,后续实现真正的编译还需要在每个功能模块中定义具体的编译依赖功能build.gradle实现具体的编译依赖,在此不再赘述。
需要说明的是,考虑到Android项目工程涉及到很多代码块,有些代码块可能按照本发明实施例所述的层级目录进行划分,有些代码块可能直接存储于主工程目录下,由此,可选的,可以先在主工程目录下生成一个p_dir,在p_dir下再生成业务部门目录,由此实现了按照层级目录进行划分的代码块和不按照层级目录进行划分的代码块间的解耦合。也就是说,上述示例性说明中的p_dir只是一个可选方案,并非是对本发明实施例的具体限制。
由前述内容可知,在按照层级目录实现代码块的管理工作时,某功能模块目录下可同时包括与该功能模块目录对应的功能模块所涉及到的资源文件、依赖库文件、源码文件等等,由此,某功能模块目录就好比Android项目工程中的工程目录,达到了将一个功能模块目录映射成了一个Android项目工程的目录的效果,基于这样的方式组织结构,能够极大方便后续的代码块的管理工作。
实施例三
图4为本发明实施例三提供的目录注册装置的结构框图,该装置用于执行上述任意实施例所提供的目录注册方法。该装置与上述各实施例的目录注册方法属于同一个发明构思,在目录注册装置的实施例中未详尽描述的细节内容,可以参考上述目录注册方法的实施例。参见图4,该装置具体可包括:层级目录获取模块310、文件获取模块320、代码块添加模块330、第一目录注册模块340和第二目录注册模块350。
其中,层级目录获取模块310,用于获取Android项目工程的层级目录,其中,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的;
文件获取模块320,用于获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件;
代码块添加模块330,用于在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;
第一目录注册模块340,用于在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;
第二目录注册模块350,用于在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中;
其中,下一级目录包括资源目录和/或依赖库目录,目标文件包括源码文件、资源文件和二进制文件中的至少一个。
可选的,业务部门目录是列表结构,功能模块目录是列表结构中的列表对象。
可选的,第二目录注册模块350,具体可以包括:
对象确定单元,用于确定列表结构中与目标文件对应的目标列表对象;
目录注册单元,用于将目标列表对象作为预设注册函数的入参参数,通过调用预设注册函数,在第二代码块中设置目标文件的目标目录信息。
可选的,预设注册函数包括列表结构中的each函数。
可选的,在上述装置的基础上,该装置还可包括:
功能模块添加模块,用于在监测到添加功能模块的触发事件时,将与触发事件对应的待添加的功能模块添加至列表结构中。
可选的,在上述装置的基础上,该装置还可包括:
层级目录生成模块,用于基于业务部门对主工程目录进行划分,生成业务部门目录,并且基于功能模块对与功能模块对应的业务部门目录进行划分,生成功能模块目录。
可选的,层级目录中各目录的层级关系由高到低是源码目录、主工程目录、业务部门目录和功能模块目录,层级目录还包括资源目录和依赖库目录,资源目录、依赖库目录和源码目录位于同一层级。
本发明实施例三提供的目录注册装置,通过层级目录获取模块和文件获取模块相互配合,获取Android项目工程的层级目录,该层级目录是根据负责开发该Android项目工程的业务部门和由该业务部门开发出的功能模块预先生成的,获取存储于层级目录中主工程目录下的预设编译文件,获取存储于层级目录中根目录的下一级目录下的原始文件,以及获取存储于层级目录中业务部门目录下的功能模块目录下的目标文件;通过代码块添加模块在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;由此,第一目录注册模块和第二目录注册模块相互配合,可以在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中,并且可以在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中,以使编译器对存储于该层级目录下的原始文件和目标文件中的代码块进行编译。上述装置,在管理Android项目工程时,通过预先生成的具有多个层级关系的层级目录,可以快速定位出待管理的原始文件和目标文件的所在位置,提高了原始文件和目标文件内存储的代码块的查找效率,有效解决了功能模块混乱且代码块不易管理的问题,提高了代码块管理的便利性。
本发明实施例所提供的目录注册装置可执行本发明任意实施例所提供的目录注册方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述目录注册装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
图5为本发明实施例四提供的一种设备的结构示意图,如图5所示,该设备包括存储器410、处理器420、输入装置430和输出装置440。设备中的处理器420的数量可以是一个或多个,图5中以一个处理器420为例;设备中的存储器410、处理器420、输入装置430和输出装置440可以通过总线或其它方式连接,图5中以通过总线450连接为例。
存储器410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的目录注册方法对应的程序指令/模块(例如,目录注册装置中的层级目录获取模块310、文件获取模块320、代码块添加模块330、第一目录注册模块340和第二目录注册模块350)。处理器420通过运行存储在存储器410中的软件程序、指令及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的目录注册方法。
存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种目录注册方法,该方法包括:
获取Android项目工程的层级目录,其中,层级目录是根据开发项目工程的业务部门和由业务部门开发出的功能模块预先生成的;
获取存储于层级目录中主工程目录下的预设编译文件,存储于层级目录中根目录的下一级目录下的原始文件,以及存储于层级目录中业务部门目录下的功能模块目录下的目标文件;
在预设编译文件中添加用于描述层级目录的第一代码块,并在第一代码块中添加用于描述主工程目录的第二代码块;
在第二代码块中设置原始文件的原始目录信息,以基于预设编译文件将原始目录信息注册到编译器中;
在第二代码块中设置目标文件的目标目录信息,以基于预设编译文件将目标目录信息注册到编译器中;
其中,下一级目录包括资源目录和/或依赖库目录,目标文件包括源码文件、资源文件和二进制文件中的至少一个。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的目录注册方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种目录注册方法,其特征在于,包括:
获取Android项目工程的层级目录,其中,所述层级目录是根据开发所述项目工程的业务部门和由所述业务部门开发出的功能模块预先生成的;
获取存储于所述层级目录中主工程目录下的预设编译文件,存储于所述层级目录中根目录的下一级目录下的原始文件,以及存储于所述层级目录中业务部门目录下的功能模块目录下的目标文件;
在所述预设编译文件中添加用于描述所述层级目录的第一代码块,并在所述第一代码块中添加用于描述所述主工程目录的第二代码块;
在所述第二代码块中设置所述原始文件的原始目录信息,以基于所述预设编译文件将所述原始目录信息注册到编译器中;
在所述第二代码块中设置所述目标文件的目标目录信息,以基于所述预设编译文件将所述目标目录信息注册到所述编译器中;
其中,所述下一级目录包括资源目录和/或依赖库目录,所述目标文件包括源码文件、资源文件和二进制文件中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述业务部门目录是列表结构,所述功能模块目录是所述列表结构中的列表对象。
3.根据权利要求2所述的方法,其特征在于,所述在所述第二代码块中设置所述目标文件的目标目录信息,包括:
确定所述列表结构中与所述目标文件对应的目标列表对象;
将所述目标列表对象作为预设注册函数的入参参数,通过调用所述预设注册函数,在所述第二代码块中设置所述目标文件的目标目录信息。
4.根据权利要求3所述的方法,其特征在于,所述预设注册函数包括所述列表结构中的each函数。
5.根据权利要求2所述的方法,其特征在于,还包括:
在监测到添加功能模块的触发事件时,将与所述触发事件对应的待添加的功能模块添加至所述列表结构中。
6.根据权利要求1所述的方法,其特征在于,在所述获取Android项目工程的层级目录之前,还包括:
基于所述业务部门对所述主工程目录进行划分,生成所述业务部门目录;
基于所述功能模块对与所述功能模块对应的所述业务部门目录进行划分,生成所述功能模块目录。
7.根据权利要求1所述的方法,其特征在于,所述层级目录中各目录的层级关系由高到低是源码目录、所述主工程目录、所述业务部门目录和所述功能模块目录,所述层级目录还包括所述资源目录和所述依赖库目录,所述资源目录、所述依赖库目录和所述源码目录位于同一层级。
8.一种目录注册装置,其特征在于,包括:
层级目录获取模块,用于获取Android项目工程的层级目录,其中,所述层级目录是根据开发所述项目工程的业务部门和由所述业务部门开发出的功能模块预先生成的;
文件获取模块,用于获取存储于所述层级目录中主工程目录下的预设编译文件,存储于所述层级目录中根目录的下一级目录下的原始文件,以及存储于所述层级目录中业务部门目录下的功能模块目录下的目标文件;
代码块添加模块,用于在所述预设编译文件中添加用于描述所述层级目录的第一代码块,并在第一代码块中添加用于描述所述主工程目录的第二代码块;
第一目录注册模块,用于在所述第二代码块中设置所述原始文件的原始目录信息,以基于所述预设编译文件将所述原始目录信息注册到编译器中;
第二目录注册模块,用于在所述第二代码块中设置所述目标文件的目标目录信息,以基于所述预设编译文件将所述目标目录信息注册到所述编译器中;
其中,所述下一级目录包括资源目录和/或依赖库目录,所述目标文件包括源码文件、资源文件和二进制文件中的至少一个。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的目录注册方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的目录注册方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407818.0A CN113672229A (zh) | 2020-05-14 | 2020-05-14 | 一种目录注册方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407818.0A CN113672229A (zh) | 2020-05-14 | 2020-05-14 | 一种目录注册方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672229A true CN113672229A (zh) | 2021-11-19 |
Family
ID=78537377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010407818.0A Pending CN113672229A (zh) | 2020-05-14 | 2020-05-14 | 一种目录注册方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672229A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1750641A (zh) * | 1998-03-25 | 2006-03-22 | 卡纳尔股份有限公司 | 数字传输系统中数据的鉴别 |
US20060232619A1 (en) * | 2005-04-15 | 2006-10-19 | Seiko Epson Corporation | Printer system, printer, and image registration method |
US20110321019A1 (en) * | 2010-06-25 | 2011-12-29 | Oracle International Corporation | Compile-time management of polyphasic modules |
CN102929643A (zh) * | 2012-11-09 | 2013-02-13 | 北京中电普华信息技术有限公司 | 一种开发j2ee应用的方法及系统 |
CN105912342A (zh) * | 2016-04-29 | 2016-08-31 | 乐视控股(北京)有限公司 | 基于overlay机制的APK开发方法及系统 |
CN106202158A (zh) * | 2016-06-23 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及装置 |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN109857405A (zh) * | 2019-02-02 | 2019-06-07 | Oppo广东移动通信有限公司 | 应用程序安装包的编译方法、装置、存储介质及终端 |
US20190317743A1 (en) * | 2019-06-27 | 2019-10-17 | Intel Corporation | Intent-based machine programming |
US20200073960A1 (en) * | 2018-08-30 | 2020-03-05 | International Business Machines Corporation | Automatically Identifying Source Code Relevant to a Task |
KR20200048221A (ko) * | 2018-10-29 | 2020-05-08 | 네이버비즈니스플랫폼 주식회사 | 원본코드 자동추출장치 및 원본코드 자동추출방법 |
-
2020
- 2020-05-14 CN CN202010407818.0A patent/CN113672229A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1750641A (zh) * | 1998-03-25 | 2006-03-22 | 卡纳尔股份有限公司 | 数字传输系统中数据的鉴别 |
US20060232619A1 (en) * | 2005-04-15 | 2006-10-19 | Seiko Epson Corporation | Printer system, printer, and image registration method |
US20110321019A1 (en) * | 2010-06-25 | 2011-12-29 | Oracle International Corporation | Compile-time management of polyphasic modules |
CN102929643A (zh) * | 2012-11-09 | 2013-02-13 | 北京中电普华信息技术有限公司 | 一种开发j2ee应用的方法及系统 |
CN105912342A (zh) * | 2016-04-29 | 2016-08-31 | 乐视控股(北京)有限公司 | 基于overlay机制的APK开发方法及系统 |
CN106202158A (zh) * | 2016-06-23 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及装置 |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
US20200073960A1 (en) * | 2018-08-30 | 2020-03-05 | International Business Machines Corporation | Automatically Identifying Source Code Relevant to a Task |
KR20200048221A (ko) * | 2018-10-29 | 2020-05-08 | 네이버비즈니스플랫폼 주식회사 | 원본코드 자동추출장치 및 원본코드 자동추출방법 |
CN109857405A (zh) * | 2019-02-02 | 2019-06-07 | Oppo广东移动通信有限公司 | 应用程序安装包的编译方法、装置、存储介质及终端 |
US20190317743A1 (en) * | 2019-06-27 | 2019-10-17 | Intel Corporation | Intent-based machine programming |
Non-Patent Citations (2)
Title |
---|
PEWNY J, ET AL: "Cross-architecture bug search in binary executables", 2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 20 July 2015 (2015-07-20), pages 709 - 724 * |
张凯: "基于规则的Android嵌入式程序可视化开发的研究", 哈尔滨商业大学, 15 September 2015 (2015-09-15), pages 1 - 58 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150363195A1 (en) | Software package management | |
CN110928548B (zh) | 一种数据处理方法以及设备 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
CN111290738A (zh) | 应用程序的资源处理方法、装置、设备及存储介质 | |
CN109614559A (zh) | 数据处理方法及装置 | |
CN113778445A (zh) | 一种跨平台组件生成方法、装置、电子设备及存储介质 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN110737437A (zh) | 一种基于代码集成的编译方法和装置 | |
CN111722933A (zh) | 分布式进程之间的死锁解决 | |
CN112685175A (zh) | 一种服务拓扑图的构建方法、装置和计算机可读存储介质 | |
CN113495723A (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN110290172B (zh) | 容器应用克隆方法、装置、计算机设备及存储介质 | |
CN116578282A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN110045983B (zh) | 版本库管理方法、装置及服务器 | |
CN112416980A (zh) | 数据业务处理方法、装置及设备 | |
CN113672229A (zh) | 一种目录注册方法、装置、设备及存储介质 | |
CN110928672A (zh) | 一种任务编排方法、装置、设备及存储介质 | |
CN110737438A (zh) | 一种数据处理方法和装置 | |
CN115827028A (zh) | 系统的升级方法、装置、存储介质以及电子设备 | |
CN115705294B (zh) | 用于获取函数调用信息的方法、装置、电子设备和介质 | |
CN114860204A (zh) | 程序处理、运行方法、装置、终端、智能卡及存储介质 | |
CN115167822A (zh) | 分支代码合并方法、装置、设备和存储介质 | |
CN109460296A (zh) | 一种处理器的资源分配方法、装置和存储介质 | |
CN113741868A (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 |