美文网首页安卓
安卓模块化开发

安卓模块化开发

作者: 田涛347 | 来源:发表于2020-06-10 15:34 被阅读0次

    先决条件

    1.android开发工具,我用的是android studio
    2.maven私服,私服的搭建参照网上,这里会用到对应的maven地址和相关的账号。(上传需要账号,私服对应上传仓库需要开启访客可访问)

    模块化架构图

    模块化架构图

    1.业务模块依赖底层工具模块和UI基础模块

    2.各业务模块独立开发,开发好稳定版本上传至maven私服中供项目使用

    3.pp应用引用各个模块aar包,使用模块中功能。

    注:模块开发时,各个模块的资源(layout,color,dimen,string,drawable,mipma等资源)应带上模块前缀,避免不同模块间出现相同资源名称,导致不可预知错误。

    工程结构

    工程结构

    1.项目由app壳工程,业务module模块,底层lib模块

    2.壳工程写demo入口测试调试module模块代码,根据具体模块情况,编写相关入口页面。

    3.module模块写业务代码。

    4.底层lib模块主要引用底层依赖包中使用的依赖,固定不用修改。

    module模块添加打包信息

    apply plugin: 'maven'
    
    def isReleaseBuild() {
        return VERSION_NAME.contains("SNAPSHOT") == false
    }
    
    def getRepositoryUsername() {
        return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
    }
    
    def getRepositoryPassword() {
        return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
    }
    
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: RELEASE_REPOSITORY_URL) {
                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                }
                pom.project {
                    groupId = GROUP
                    artifactId = POM_ARTIFACT_MODULE_ID
                    version = VERSION_NAME
                    packaging = POM_PACKAGING
                }
                snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) {
                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                }
            }
        }
    }
    

    gradle.properties中维护版本和maven私服信息

    GROUP=groupname
    VERSION_NAME=versionname
    POM_ARTIFACT_MODULE_ID=modulename
    POM_PACKAGING="aar"
    #前面配置的snapshots仓库地址
    SNAPSHOT_REPOSITORY_URL=http://ip:port/repository/maven-snapshots/
    #前面配置的releases仓库地址http:
    RELEASE_REPOSITORY_URL=http://ip:port/repository/maven-releases/
    NEXUS_USERNAME=username
    NEXUS_PASSWORD=password
    

    上传aar包

    上传aar包

    点击左侧gradle工具栏,在弹出的窗口中选中我们要打包的module,选择Tasks->upload->uploadArchives,双击uploadArchives进行上传。

    引用上传后aar包

    在工程的build.gradle文件中添加私服信息

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://maven.aliyun.com/repository/jcenter'}
            maven { url 'https://jitpack.io' }
            maven { url 'http://ip:port/repository/maven-snapshots/' }
            maven { url 'http://ip:port/repository/maven-snapshots/' }
        }
    }
    

    在需要的地方引用aar包

    api 'groupname:modulename:versionname@aar'
    

    相关文章

      网友评论

        本文标题:安卓模块化开发

        本文链接:https://www.haomeiwen.com/subject/hdcptktx.html