CN111367512A - 一种应用程序开发中创建Android库模块依赖关系的方法及装置 - Google Patents
一种应用程序开发中创建Android库模块依赖关系的方法及装置 Download PDFInfo
- Publication number
- CN111367512A CN111367512A CN202010183863.2A CN202010183863A CN111367512A CN 111367512 A CN111367512 A CN 111367512A CN 202010183863 A CN202010183863 A CN 202010183863A CN 111367512 A CN111367512 A CN 111367512A
- Authority
- CN
- China
- Prior art keywords
- android
- module
- library module
- configuration file
- application development
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F8/35—Creation or generation of source code model driven
-
- 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
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序开发中创建Android库模块依赖关系的方法及装置,在安卓应用开发模块的根目录下,创建Android库模块文件夹;将安卓应用开发模块的动态配置参数和Android库模块所需的依赖参数写入第一配置文件中;将已模拟的Android库模块的第一配置文件添加到主工程的配置文件和Android应用开发模块的第二配置文件中,建立依赖关系,使得安卓应用开发模块和主工程引用已模拟的Android库模块。可见,该方法可动态创建安卓库模块并依赖到主工程和安卓应用开发模块的配置中,在保证安卓应用开发模块和主工程可以引用到Android库模块的同时,简化开发过程,提高开发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序开发中创建Android库模块依赖关系的方法及装置。
背景技术
在对APP中的AAR(Android Archive)依赖大小自动分析计算过程中,其中有一个环节是mock(模拟)一个AAR,即是要把归档的AAR文件解压后只提取其中的资源文件,然后把这些资源文件合并到主工程的资源文件中。AAR是一个Android库项目的二进制归档文件,包含了Java文件、资源文件、AndroidManifest.xml(配置入口)以及build.gradle(打包)配置文件等。
主工程是指开发APP所在业务线的Android代码工程,主工程包括Android应用开发模块和Android库模块。Android库模块(Android Library Module),是在Android代码工程中可以独立运行的一个模块。Android库模块与Android应用开发模块在结构上是相同的,不同之处在于Android库模块可以经过打包生成一个AAR依赖包被其它模块引用,但不能生成apk安装包在手机上运行。而Android应用开发模块可以生成apk安装包在手机上运行,且Android应用开发模块可以引用Android库模块,再通过打包实现APP的某一个功能。
在将AAR中提取的资源文件合并到主工程的资源文件时,如果存在部分资源文件的ID命名相同的情况,则会导致ID命名相同的资源文件无法同时存在,出现冲突。而为避免出现冲突,通常采用的方法是将提取的资源文件放进一个新的Android库模块中。
但是,若要实现新的Android库模块被其他模块引用,需要建立Android库模块与相应模块的依赖关系。而现有的Android库模块的创建方式通常需要借助可视化编译器进行手动创建,目前还无法动态化生成;且在创建时,并不会自动添加依赖关系。可见,若要实现Android库模块被其他模块引用,还需手动添加依赖关系,导致开发Android库模块的过程繁琐,效率低下。
发明内容
本申请提供了一种应用程序开发中创建Android库模块依赖关系的方法及装置,以解决现有的在应用程序开发中创建Android库模块方法的开发效率较低的问题。
第一方面,本申请提供了一种应用程序开发中创建Android库模块依赖关系的方法,包括以下步骤:
在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到所述应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一所述第一配置文件创建Android库模块文件夹;
获取所述应用程序的Android应用开发模块的第二配置文件,其中,所述第二配置文件包括所述Android应用开发模块的动态配置参数和根目录,所述动态配置参数是指用于保持所述Android应用开发模块与所述Android库模块版本号一致性的参数;
获取每一所述Android库模块所需的依赖参数,所述依赖参数是指用于建立所述Android库模块与所述Android应用开发模块依赖的参数;
将所述动态配置参数和每一所述依赖参数分别写入每一所述Android库模块文件夹的所述第一配置文件中,以模拟每一所述Android库模块;
将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,使得所述应用程序的所述Android应用开发模块和所述主工程根据所述依赖关系引用所述已模拟的Android库模块。
进一步地,所述将动态配置参数和每一所述依赖参数分别写入每一Android库模块文件夹的所述第一配置文件中,包括:
所述动态配置参数包括编译SDK版本号和打包构建工具版本号,所述Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;
将所述编译SDK版本号和打包构建工具版本号,以动态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中;
将每一所述Android库模块所需的依赖参数,以静态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
进一步地,所述将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,包括:
获取每一所述已模拟的Android库模块的包名和根目录入口参数;
将每一所述已模拟的Android库模块的包名添加至所述主工程的配置文件中,建立每一所述已模拟的Android库模块与主工程的依赖关系;
获取所述Android应用开发模块中的所述第二配置文件的依赖项参数;
将每一所述已模拟的Android库模块的根目录入口参数添加到所述依赖项参数中,建立每一所述已模拟的Android库模块与Android应用开发模块的依赖关系。
进一步地,还包括:
对具有依赖关系的每一所述已模拟的Android库模块进行编译和打包,得到每一应用apk包,所述应用apk包用于实现已模拟的Android库模块被所述Android应用开发模块和所述主工程的引用。
第二方面,本申请提供了一种应用程序开发中创建Android库模块依赖关系的装置,包括:
AAR创建模块,用于在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到所述应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一所述第一配置文件创建Android库模块文件夹;
配置文件获取模块,用于获取所述应用程序的Android应用开发模块的第二配置文件,其中,所述第二配置文件包括所述Android应用开发模块的动态配置参数和根目录,所述动态配置参数是指用于保持所述Android应用开发模块与所述Android库模块版本号一致性的参数;
依赖参数获取模块,用于获取每一所述Android库模块所需的依赖参数,所述依赖参数是指用于建立所述Android库模块与所述Android应用开发模块依赖的参数;
参数写入模块,用于将所述动态配置参数和每一所述依赖参数分别写入每一所述Android库模块文件夹的所述第一配置文件中,以模拟每一所述Android库模块;
依赖关系建立模块,用于将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,使得所述应用程序的所述Android应用开发模块和所述主工程根据所述依赖关系引用所述已模拟的Android库模块。
进一步地,所述参数写入模块,包括:
所述动态配置参数包括编译SDK版本号和打包构建工具版本号,所述Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;
第一参数写入单元,用于将所述编译SDK版本号和打包构建工具版本号,以动态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中;
第二参数写入单元,用于将每一所述模拟Android库模块所需的依赖参数,以静态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
进一步地,所述依赖关系建立模块,包括:
第一参数获取单元,用于获取每一所述已模拟的Android库模块的包名和根目录入口参数;
第一依赖关系建立单元,用于将每一所述已模拟的Android库模块的包名添加至所述主工程的配置文件中,建立所述新生成的Android库模块与主工程的依赖关系;
第二参数获取单元,用于获取所述Android应用开发模块中的所述第二配置文件的依赖项参数;
第二依赖关系建立单元,用于将每一所述已模拟的Android库模块的根目录入口参数添加到所述依赖项参数中,建立每一所述已模拟的Android库模块与Android应用开发模块的依赖关系。
进一步地,还包括:
编译和打包模块,用于对具有依赖关系的每一所述已模拟的Android库模块进行编译和打包,得到每一应用apk包,所述应用apk包用于实现已模拟的Android库模块被所述Android应用开发模块和主工程的引用。
第三方面,本申请提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的应用程序开发中创建Android库模块依赖关系的方法。
第四方面,本申请提供一种存储介质,所述存储介质中存储有计算机程序,当应用程序开发中创建Android库模块依赖关系的装置的至少一个处理器执行所述计算机程序时,应用程序开发中创建Android库模块依赖关系的装置执行第一方面所述的应用程序开发中创建Android库模块依赖关系的方法。
由以上技术方案可知,本申请提供了一种应用程序开发中创建Android库模块依赖关系的方法及装置,在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到应用程序的主工程的配置文件时,在Android应用开发模块的根目录下,分别对每一第一配置文件创建Android库模块文件夹;获取Android应用开发模块的动态配置参数和每一Android库模块所需的依赖参数。将动态配置参数和每一依赖参数分别写入每一Android库模块文件夹的第一配置文件中,以模拟每一Android库模块;将每一已模拟的Android库模块的第一配置文件分别添加到主工程的配置文件和Android应用开发模块的第二配置文件中,以对应用程序建立每一已模拟的Android库模块分别与Android应用开发模块和主工程的依赖关系,使得应用程序的Android应用开发模块和主工程根据依赖关系引用已模拟的Android库模块。可见,该方法可实现自动化创建过程,在需要创建Android库模块的时候不用人工干预,可以在任何时机通过程序动态创建。且自动创建的每一Android库模块可以动态依赖到主工程和Android应用开发模块的配置中,在应用程序开发中保证Android应用开发模块和主工程可以引用到已模拟的Android库模块的同时,简化开发过程,提高开发效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用程序开发中创建Android库模块依赖关系的方法的流程图;
图2为本发明实施例提供的参数写入方法的流程图;
图3为本发明实施例提供的建立依赖关系的方法流程图;
图4为本发明实施例提供的应用程序开发中创建Android库模块依赖关系的装置的结构框图;
图5为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使创建Android库模块的过程能够动态完成,无需手动借助可视化编译器创建,本发明实施例提供一种运行脚本,能够在计算APP中AAR依赖大小的过程中,将mockAAR中的资源文件提取出来,自动创建一个Android库模块,将提取出的资源文件添加进Android库模块中,避免出现直接将资源文件合并到主工程的资源文件里时产生冲突的现象,开发效率高。
图1为本发明实施例提供的应用程序开发中创建Android库模块依赖关系的方法的流程图。参见图1,本发明实施例提供一种应用程序开发中创建Android库模块依赖关系的方法,执行主体为运行脚本,可自动创建Android库模块,并将Android库模块与主工程和Android应用开发模块建立依赖,该方法包括以下步骤:
S1、在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一第一配置文件创建Android库模块文件夹。
本实施例提供的方法,应用在应用程序开发,计算AAR依赖大小的过程中,依据mock技术,对AAR文件执行解压缩提取的第一配置文件以合并到应用程序的主工程的配置文件中的场景中,在将第一配置文件合并到主工程的配置文件中时,易因ID命名相同而导致配置文件出现冲突,无法同时存在的现象。为解决该现象,本实施例提供的方法,可以自动创建Android库模块。
创建时,在Android应用开发模块的根目录中,基于第一配置文件创建Android库模块文件夹。Android应用开发模块的根目录是配置文件的最上层参数,运行脚本在根目录下自动创建Android库模块文件,即mock一个Android库模块的AAR文件。第一配置文件可为由AAR文件中提取出的资源文件。
应用程序在开发时,会引用大量的AAR文件,而AAR文件由Android库模块打包生成,因此,可针对由每一AAR文件中提取的第一配置文件分别创建对应的Android库模块文件夹。一个第一配置文件创建一个Android库模块文件夹。
在Android应用开发模块的根目录下生成Android库模块打包生成AAR必须的文件,包括根目录(zucker)、代码和资源文件存放的目录(zucker/src/main)以及配置文件AndroidManifest.xml和build.gradle。
S2、获取应用程序的Android应用开发模块的第二配置文件,其中,第二配置文件包括Android应用开发模块的动态配置参数和根目录,动态配置参数是指用于保持Android应用开发模块与Android库模块版本号一致性的参数。
S3、获取每一Android库模块所需的依赖参数,依赖参数是指用于建立Android库模块与所述Android应用开发模块依赖的参数。
为使自动创建的Android库模块能够与Android应用开发模块建立依赖性,需要在Android库模块中写入Android应用开发模块的相关参数,例如,第二配置文件,包括动态配置参数和根目录。
动态配置参数包括编译SDK版本号(compileSdkVersion)和打包构建工具版本号(buildToolsVersion)。读取Android应用开发模块的配置参数,主要是防止因为参数不一致导致环境不匹配无法顺利打包的问题,也就是说编译SDK版本号和打包构建工具版本号可以保证后续创建的Android库模块与Android应用开发模块具有一致的版本号,以使二者建立依赖。其中,编译SDK版本号和打包构建工具版本号是必须动态写入的。
在计算APP中AAR依赖大小时,通常会mock(模拟)一个AAR,即mock(模拟)一个Android库模块的AAR文件。而原AAR文件中包括Java文件、资源文件、AndroidManifest.xml(配置入口)以及build.gradle(打包)配置文件等。其中,AndroidManifest.xml和build.gradle是每个配置文件必须存在的文件,可以实现Android库模块与Android应用开发模块之间依赖的建立。AndroidManifest.xml用于实现页面配置入口,如启动页、启动类的入口。
也就是说,自动创建Android库模块,需充分了解Android库模块的结构和打包AAR的必备文件。而为后续创建Android库模块并建立依赖,需将mock(模拟)Android库模块时必须的参数提取出来,作为依赖参数,依赖参数包括AndroidManifest.xml相关参数和build.gradle相关参数。一个Android库模块对应一个依赖参数。
S4、将动态配置参数和每一依赖参数分别写入每一Android库模块文件夹的第一配置文件中,以模拟每一Android库模块。
在动态创建每一个Android库模块文件夹(AAR)后,在该文件夹下包括两个配置文件,即配置入口(AndroidManifest.xml)配置文件和打包(build.gradle)配置文件。为便于Android库模块与Android应用开发模块建立依赖,需将Android应用开发模块的动态配置参数写入每一个Android库模块的配置文件中。而为使mock(模拟)的Android库模块与原Android库模块具有相同的配置,需将提取出的模拟Android库模块所需的依赖参数写入Android库模块的第一配置文件中。
Android库模块文件夹被建立后,需向每一个Android库模块文件夹的第一配置文件中写入初始化数据,初始化数据包括Android应用开发模块的动态配置参数和提取出的模拟每一个Android库模块所需的依赖参数。
图2为本发明实施例提供的参数写入方法的流程图。为此,参见图2,为实现相关参数的写入,本实施例按照如下方法进行:
S41、将编译SDK版本号和打包构建工具版本号,以动态形式写入每一Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;动态配置参数包括编译SDK版本号和打包构建工具版本号,为保证版本号的一致性,编译SDK版本号和打包构建工具版本号需以动态形式写入每一个Android库模块文件夹的两个配置文件中,即在每一个配置入口配置文件中分别动态写入编译SDK版本号和打包构建工具版本号,在每一个打包配置文件中分别动态写入编译SDK版本号和打包构建工具版本号。
S42、将每一模拟Android库模块所需的依赖参数,以静态形式写入每一Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
模拟每一个Android库模块所需的依赖参数包括AndroidManifest.xml(页面配置入口)相关参数和build.gradle(打包配置)相关参数。将AndroidManifest.xml(页面配置入口)相关参数和build.gradle(打包配置)相关参数分别以静态形式,如按照常用写入模块,写入每一个配置入口配置文件中和打包配置文件中,即在每一个配置入口配置文件中静态写入AndroidManifest.xml(页面配置入口)相关参数,在每一个打包配置文件中静态写入build.gradle(打包配置)相关参数。
每一个Android库模块文件夹的第一配置文件中在写入初始化数据之外,还可将其他配置内容按照常用写入模板,写入Android库模块文件夹的配置文件中。例如,将与Android库模块相关的参数,如根目录(zucker)、代码和资源文件存放的目录(zucker/src/main)等,均写入每一个Android库模块文件夹的第一配置文件中。
在动态生成Android库模块的基础上,还可以满足用户更多的扩展,比如:开发者还可以在生成Android库模块的同时初始化配置,将新需求的代码写进去,从而实现更丰富的Android库模块创建。写入新代码实现功能的过程可在向创建的Android库模块文件夹的过程中执行。
本实施例提供的写入方法,可使每一个Android库模块文件夹中build.gradle配置文件中的必要参数配置和Android应用开发模块的保持一致,进而保证和可视化编译器手动创建出的结果是一致的,且能够正常打包生成AAR归档文件。
运行脚本创建的Android库模块中,在分别写入动态配置参数和依赖参数后,得到已模拟的Android库模块。已模拟的Android库模块为mock的Android库模块,具有与原Android库模块相同的资源文件和相关配置。
S5、将每一已模拟的Android库模块的第一配置文件分别添加到主工程的配置文件和Android应用开发模块的所述第二配置文件中,以对应用程序建立每一已模拟的Android库模块分别与Android应用开发模块和主工程的依赖关系,使得应用程序的Android应用开发模块和主工程根据所述依赖关系引用已模拟的Android库模块。
主工程为一个壳工程,由多个模块构成,如Android应用开发模块和Android库模块等。当Android库模块创建完成后,它其实处于一个游离状态,并没有关联到主工程里,即没有被Android应用开发模块引用。此时,还需要最后一步,把每一个已模拟的Android库模块依赖添加到主工程以及Android应用开发模块的配置中,这样才能完整的打包输出含有Android库模块代码和资源文件的安装包。
也就是说,在完成Android库模块的创建后,为使已模拟的Android库模块能够被其他模块引用,如被Android应用开发模块和主工程引用,以生成安装包在终端上运行。本实施例中,需建立每一个已模拟的Android库模块分别与主工程和Android应用开发模块的依赖关系。
自动添加依赖关系的方法需向主工程的配置文件和Android应用开发模块的配置文件中写入每一个已模拟的Android库模块的第一配置文件。
图3为本发明实施例提供的建立依赖关系的方法流程图。具体地,本实施例中,参见图3,按照下述步骤建立每一已模拟的Android库模块分别与Android应用开发模块和主工程的依赖关系,包括:
S51、获取每一已模拟的Android库模块的包名和根目录入口参数。
在向主工程添加依赖时,需要以Android库模块的包名作为添加标识。原Android库模块具有相应的包名,而每一已模拟的Android库模块为mock原Android库模块而得到,因此,每一已模拟的Android库模块的包名与对应的原Android库模块的包名相同。
在向Android应用开发模块添加依赖时,需要以每一已模拟的Android库模块的根目录入口参数作为添加标识。根目录入口参数可以提供Android应用开发模块引用时的入口。
S52、将每一已模拟的Android库模块的包名添加至主工程的配置文件中,建立每一已模拟的Android库模块与主工程的依赖关系。
向主工程中添加依赖,主要是向主工程的settings.gradle文件中,按脚本语句追加每一已模拟的Android库模块的名称,即将每一已模拟的Android库模块的包名添加至主工程的配置文件(settings.gradle)中,建立每一已模拟的Android库模块与主工程的依赖关系。
S53、获取Android应用开发模块中的第二配置文件的依赖项参数。
在向Android应用开发模块添加依赖时,需要引入新依赖的参数为Android应用开发模块的依赖项(dependences)参数,依赖项参数可配置在第二配置文件中,依赖项参数可以实现每一已模拟的Android库模块与Android应用开发模块之间建立依赖关系。
S54、将每一已模拟的Android库模块的根目录入口参数添加到依赖项参数中,建立每一已模拟的Android库模块与Android应用开发模块的依赖关系。
向Android应用开发模块中添加依赖,就是在Android应用开发模块的依赖项参数中加入一行依赖语句:implementation project(':zucker'),实现每一已模拟的Android库模块的根目录入口参数添加到依赖项参数中,建立每一已模拟的Android库模块与Android应用开发模块的依赖关系。
通过上述方法,便可以动态生成Android库模块并主动添加依赖,从而替代了人工依赖可视化工具创建Android库模块的工作,开发过程简单,使得Android库模块的开发效率更高。
在完成每一已模拟的Android库模块与主工程和Android应用开发模块添加依赖关系之后,对具有依赖关系的每一已模拟的Android库模块进行编译和打包,得到每一应用apk包,应用apk包用于实现已模拟的Android库模块被Android应用开发模块和主工程的引用。
对每一已模拟的Android库模块进行编译和打包,其包括的根目录(zucker)、代码和资源文件存放的目录(zucker/src/main)以及配置文件打包为同级的文件夹,通过完整的打包输出含有Android库模块代码和资源文件的安装包(应用apk包)。
由以上技术方案可知,本发明实施例提供的一种应用程序开发中创建Android库模块依赖关系的方法,在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到应用程序的主工程的配置文件时,在Android应用开发模块的根目录下,分别对每一第一配置文件创建Android库模块文件夹;获取Android应用开发模块的动态配置参数和每一Android库模块所需的依赖参数。将动态配置参数和每一依赖参数分别写入每一Android库模块文件夹的第一配置文件中,以模拟每一Android库模块;将每一已模拟的Android库模块的第一配置文件分别添加到主工程的配置文件和Android应用开发模块的第二配置文件中,以对应用程序建立每一已模拟的Android库模块分别与Android应用开发模块和主工程的依赖关系,使得应用程序的Android应用开发模块和主工程根据依赖关系引用已模拟的Android库模块。可见,该方法可实现自动化创建过程,在需要创建Android库模块的时候不用人工干预,可以在任何时机通过程序动态创建。且自动创建的每一Android库模块可以动态依赖到主工程和Android应用开发模块的配置中,在应用程序开发中保证Android应用开发模块和主工程可以引用到已模拟的Android库模块的同时,简化开发过程,提高开发效率。
图4为本发明实施例提供的应用程序开发中创建Android库模块依赖关系的装置的结构框图。参见图4,本申请提供了一种应用程序开发中创建Android库模块依赖关系的装置,用于执行图1所示的应用程序开发中创建Android库模块依赖关系的方法的相关步骤,该装置包括:AAR创建模块10,用于在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到所述应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一所述第一配置文件创建Android库模块文件夹;配置文件获取模块20,用于获取所述应用程序的Android应用开发模块的第二配置文件,其中,所述第二配置文件包括所述Android应用开发模块的动态配置参数和根目录,所述动态配置参数是指用于保持所述Android应用开发模块与所述Android库模块版本号一致性的参数;依赖参数获取模块30,用于获取每一所述Android库模块所需的依赖参数,所述依赖参数是指用于建立所述Android库模块与所述Android应用开发模块依赖的参数;参数写入模块40,用于将所述动态配置参数和每一所述依赖参数分别写入每一所述Android库模块文件夹的所述第一配置文件中,以模拟每一所述Android库模块;依赖关系建立模块50,用于将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,使得所述应用程序的所述Android应用开发模块和所述主工程根据所述依赖关系引用所述已模拟的Android库模块。
进一步地,所述参数写入模块40,包括:所述动态配置参数包括编译SDK版本号和打包构建工具版本号,所述Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;第一参数写入单元,用于将所述编译SDK版本号和打包构建工具版本号,以动态形式写入每一Android库模块文件夹的配置入口配置文件中以及打包配置文件中;第二参数写入单元,用于将每一所述模拟Android库模块所需的依赖参数,以静态形式写入每一Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
进一步地,所述依赖关系建立模块50,包括:第一参数获取单元,用于获取每一所述已模拟的Android库模块的包名和根目录入口参数;第一依赖关系建立单元,用于将每一所述已模拟的Android库模块的包名添加至所述主工程的配置文件中,建立所述新生成的Android库模块与主工程的依赖关系;第二参数获取单元,用于获取所述Android应用开发模块中的所述第二配置文件的依赖项参数;第二依赖关系建立单元,用于将每一所述已模拟的Android库模块的根目录入口参数添加到所述依赖项参数中,建立每一所述已模拟的Android库模块与Android应用开发模块的依赖关系。
进一步地,还包括:编译和打包模块,用于对具有依赖关系的每一所述已模拟的Android库模块进行编译和打包,得到每一应用apk包,应用apk包用于实现已模拟的Android库模块被Android应用开发模块和主工程的引用。
图5为本发明实施例提供的电子设备的硬件结构示意图。如图5所示,本申请提供一种电子设备,包括:存储器601,用于存储程序指令;处理器602,用于调用并执行所述存储器中的程序指令,以实现前述实施例所述的应用程序开发中创建Android库模块依赖关系的方法。
本实施例中,处理器602和存储器601可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
本申请提供一种存储介质,所述存储介质中存储有计算机程序,当应用程序开发中创建Android库模块依赖关系的装置的至少一个处理器执行所述计算机程序时,应用程序开发中创建Android库模块依赖关系的装置执行前述实施例所述的应用程序开发中创建Android库模块依赖关系的方法。
所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于应用程序开发中创建Android库模块依赖关系的装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。
Claims (10)
1.一种应用程序开发中创建Android库模块依赖关系的方法,其特征在于,包括以下步骤:
在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到所述应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一所述第一配置文件创建Android库模块文件夹;
获取所述应用程序的Android应用开发模块的第二配置文件,其中,所述第二配置文件包括所述Android应用开发模块的动态配置参数和根目录,所述动态配置参数是指用于保持所述Android应用开发模块与所述Android库模块版本号一致性的参数;
获取每一所述Android库模块所需的依赖参数,所述依赖参数是指用于建立所述Android库模块与所述Android应用开发模块依赖的参数;
将所述动态配置参数和每一所述依赖参数分别写入每一所述Android库模块文件夹的所述第一配置文件中,以模拟每一所述Android库模块;
将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,使得所述应用程序的所述Android应用开发模块和所述主工程根据所述依赖关系引用所述已模拟的Android库模块。
2.根据权利要求1所述的方法,其特征在于,所述将动态配置参数和每一所述依赖参数分别写入每一Android库模块文件夹的所述第一配置文件中,包括:
所述动态配置参数包括编译SDK版本号和打包构建工具版本号,所述Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;
将所述编译SDK版本号和打包构建工具版本号,以动态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中;
将每一所述Android库模块所需的依赖参数,以静态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
3.根据权利要求1所述的方法,其特征在于,所述将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,包括:
获取每一所述已模拟的Android库模块的包名和根目录入口参数;
将每一所述已模拟的Android库模块的包名添加至所述主工程的配置文件中,建立每一所述已模拟的Android库模块与主工程的依赖关系;
获取所述Android应用开发模块中的所述第二配置文件的依赖项参数;
将每一所述已模拟的Android库模块的根目录入口参数添加到所述依赖项参数中,建立每一所述已模拟的Android库模块与Android应用开发模块的依赖关系。
4.根据权利要求1所述的方法,其特征在于,还包括:
对具有依赖关系的每一所述已模拟的Android库模块进行编译和打包,得到每一应用apk包,所述应用apk包用于实现已模拟的Android库模块被所述Android应用开发模块和所述主工程的引用。
5.一种应用程序开发中创建Android库模块依赖关系的装置,其特征在于,包括:
AAR创建模块,用于在对应用程序的AAR文件执行解压缩提取的第一配置文件以合并到所述应用程序的主工程的配置文件时,对于存在的ID命名相同的第一配置文件,在Android应用开发模块的根目录下,分别对每一所述第一配置文件创建Android库模块文件夹;
配置文件获取模块,用于获取所述应用程序的Android应用开发模块的第二配置文件,其中,所述第二配置文件包括所述Android应用开发模块的动态配置参数和根目录,所述动态配置参数是指用于保持所述Android应用开发模块与所述Android库模块版本号一致性的参数;
依赖参数获取模块,用于获取每一所述Android库模块所需的依赖参数,所述依赖参数是指用于建立所述Android库模块与所述Android应用开发模块依赖的参数;
参数写入模块,用于将所述动态配置参数和每一所述依赖参数分别写入每一所述Android库模块文件夹的所述第一配置文件中,以模拟每一所述Android库模块;
依赖关系建立模块,用于将每一已模拟的Android库模块的第一配置文件分别添加到所述主工程的配置文件和所述Android应用开发模块的所述第二配置文件中,以对所述应用程序建立每一已模拟的Android库模块分别与所述Android应用开发模块和所述主工程的依赖关系,使得所述应用程序的所述Android应用开发模块和所述主工程根据所述依赖关系引用所述已模拟的Android库模块。
6.根据权利要求5所述的装置,其特征在于,所述参数写入模块,包括:
所述动态配置参数包括编译SDK版本号和打包构建工具版本号,所述Android库模块文件夹的第一配置文件包括配置入口配置文件和打包配置文件;
第一参数写入单元,用于将所述编译SDK版本号和打包构建工具版本号,以动态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中;
第二参数写入单元,用于将每一所述模拟Android库模块所需的依赖参数,以静态形式写入每一所述Android库模块文件夹的配置入口配置文件中以及打包配置文件中。
7.根据权利要求5所述的装置,其特征在于,所述依赖关系建立模块,包括:
第一参数获取单元,用于获取每一所述已模拟的Android库模块的包名和根目录入口参数;
第一依赖关系建立单元,用于将每一所述已模拟的Android库模块的包名添加至所述主工程的配置文件中,建立所述模拟后的Android库模块与主工程的依赖关系;
第二参数获取单元,用于获取所述Android应用开发模块中的所述第二配置文件的依赖项参数;
第二依赖关系建立单元,用于将每一所述已模拟的Android库模块的根目录入口参数添加到所述依赖项参数中,建立每一所述已模拟的Android库模块与Android应用开发模块的依赖关系。
8.根据权利要求5所述的装置,其特征在于,还包括:
编译和打包模块,用于对具有依赖关系的每一所述已模拟的Android库模块进行编译和打包,得到每一应用apk包,所述应用apk包用于实现已模拟的Android库模块被所述Android应用开发模块和主工程的引用。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求1~4任一项所述的应用程序开发中创建Android库模块依赖关系的方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当应用程序开发中创建Android库模块依赖关系的装置的至少一个处理器执行所述计算机程序时,应用程序开发中创建Android库模块依赖关系的装置执行权利要求1~4任一项所述的应用程序开发中创建Android库模块依赖关系的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010183863.2A CN111367512B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
CN202011350207.3A CN112328241B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010183863.2A CN111367512B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011350207.3A Division CN112328241B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367512A true CN111367512A (zh) | 2020-07-03 |
CN111367512B CN111367512B (zh) | 2021-05-28 |
Family
ID=71208862
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011350207.3A Active CN112328241B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
CN202010183863.2A Active CN111367512B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011350207.3A Active CN112328241B (zh) | 2020-03-16 | 2020-03-16 | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112328241B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076146A (zh) * | 2021-03-09 | 2021-07-06 | 北京一亩田新农网络科技有限公司 | 动态apk的加载方法、装置、系统以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176838A (zh) * | 2011-12-22 | 2013-06-26 | 盛乐信息技术(上海)有限公司 | 兼容Android本机程序的方法及系统 |
CN109144521A (zh) * | 2018-09-28 | 2019-01-04 | 五八有限公司 | 生成静态库的方法、装置、计算机设备及可读存储介质 |
CN110389762A (zh) * | 2018-04-19 | 2019-10-29 | 北京京东尚科信息技术有限公司 | 在Android工程中处理AAR包的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765520B2 (en) * | 2004-05-21 | 2010-07-27 | Bea Systems, Inc. | System and method for managing cross project dependencies at development time |
US8266588B2 (en) * | 2007-11-12 | 2012-09-11 | International Business Machines Corporation | Creating projects in a rational application developer workspace |
CN107479866B (zh) * | 2016-08-12 | 2020-11-06 | 北京大学 | 基于重构技术实现开放终端应用数据与功能的方法 |
CN106528258A (zh) * | 2016-10-28 | 2017-03-22 | 武汉斗鱼网络科技有限公司 | 提高安卓项目编译速度的方法及系统 |
CN110554876A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 用于编译安卓工程的方法和装置 |
CN110502222B (zh) * | 2019-07-23 | 2023-03-21 | 北京字节跳动网络技术有限公司 | 外发依赖内部基础库的aar方法、装置、介质和设备 |
-
2020
- 2020-03-16 CN CN202011350207.3A patent/CN112328241B/zh active Active
- 2020-03-16 CN CN202010183863.2A patent/CN111367512B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176838A (zh) * | 2011-12-22 | 2013-06-26 | 盛乐信息技术(上海)有限公司 | 兼容Android本机程序的方法及系统 |
CN110389762A (zh) * | 2018-04-19 | 2019-10-29 | 北京京东尚科信息技术有限公司 | 在Android工程中处理AAR包的方法和装置 |
CN109144521A (zh) * | 2018-09-28 | 2019-01-04 | 五八有限公司 | 生成静态库的方法、装置、计算机设备及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076146A (zh) * | 2021-03-09 | 2021-07-06 | 北京一亩田新农网络科技有限公司 | 动态apk的加载方法、装置、系统以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112328241B (zh) | 2023-12-12 |
CN111367512B (zh) | 2021-05-28 |
CN112328241A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN111367510B (zh) | 一种安卓功能模块开发的方法及装置 | |
CN106294113B (zh) | 一种基于可编程式测试服务的创建方法及装置 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
JP2008502968A (ja) | 中間オブジェクト指向言語を備えるソフトウェアをポータブル・デバイスにロードするための方法 | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN111985055A (zh) | 一种模型封装方法、装置及电子设备 | |
CN110362792B (zh) | 将rn文件转换为小程序文件的方法、装置及转换设备 | |
CN111367512B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN112905263A (zh) | 一种自定义组件的加载方法、装置、电子设备和存储介质 | |
CN114490103A (zh) | 一种操作系统接口调用方法、装置以及电子设备 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN111258802A (zh) | 捕获应用程序崩溃信息的方法及相关设备 | |
CN116578282A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN115576560A (zh) | 一种动态类加载器的热重载方法、装置、设备和介质 | |
CN114840195A (zh) | 一种针对iOS SDK静态库的私有化方法 | |
CN110737431B (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN114579141A (zh) | require框架转化为VUE框架的方法及装置 | |
CN110941429A (zh) | 一种网页的业务脚本处理方法、装置及设备 | |
CN111399846B (zh) | 一种安卓手机应用程序容量监控方法及装置 | |
CN116774988B (zh) | 解除框架包模式符号依赖的方法及装置 | |
CN110716746B (zh) | 将rn样式代码转换为小程序样式代码的方法及装置 | |
CN116339692A (zh) | 一种多终端应用自动化生成方法及系统 | |
CN106802806B (zh) | 用于集成软件开发环境的方法及装置 | |
CN117369777A (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 |