Android多设备多module打包fat-aar(最新推荐)

 更新时间:2023年03月29日 15:32:13   作者:巨噬细胞ps  
这篇文章主要介绍了Android多设备多module打包(fat-aar),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

当一个工程项目中存在多个module时,可使用fat-aar将多个module打包成一个aar;

一、工程目录build.gradle

依赖相应的的fat-aar版本

dependencies {//根据gradle plugin version版本选择其一即可
    classpath "com.github.kezong:fat-aar:1.3.8"//gradle plugin version 7.2.2
    classpath 'com.github.AndreasBoehm:fat-aar-android:da3ac00990'//gradle plugin version 7.3.1
}

二、最终的Module内

build.gradle文件内:

//enable_packed_aar在gradle.properties内定义,来动态选择是否需要合并打包
//eg:enable_packed_aar=false
if (enable_packed_aar.equalsIgnoreCase("true")) {
    apply plugin: 'com.kezong.fat-aar'
}

dependencies {
	...
    if (enable_packed_aar.equalsIgnoreCase("true")) {
        //embed project(path: ':路径')
        embed project(path: ':framework:components')//某个要合并打包的Module
        implementation "com.deepthinker:sdk:${rootProject.DeepThinkerVersion}"//远程依赖
    } else {
        implementation project(path: ':framework:common')
    }
}

三、某个Module内

build.gradle文件内

当某个Module内有远程依赖时:

if (enable_packed_aar.equalsIgnoreCase("true")) {
    apply plugin: 'com.kezong.fat-aar'
}

dependencies {
    if (enable_packed_aar.equalsIgnoreCase("true")) {
        embed "com.deepthinker:sdk:${rootProject.DeepThinkerVersion}"
    } else {
        implementation "com.deepthinker:sdk:${rootProject.DeepThinkerVersion}"
    }
}

没有远程依赖时可不做任何操作

四、区分不同设备

在每个Module内添加多种设备的标识,此处分为手机和手表设备。在编译打包时手动选择打包某个类型设备的aar包

android {
	...
	defaultConfig {
		...
		flavorDimensions "name"
	}
    productFlavors {
        phone {

        }
        watch {

        }
    }
}

在每个Module的src目录下建立对应设备的文件目录Directory,主main内的作为不同设备共有部分,不同设备内的作为各自设备特有的功能

在这里插入图片描述

五、将版本上传到maven仓库

在项目目录下创建一个build.gradle,在最终打包的Module内应用该文件

apply from: '../../sdk_build.gradle'

sdk_build.gradle文件:

apply plugin: 'maven-publish'

afterEvaluate {
    publishing {
        publications {
            phoneSnapshot(MavenPublication) {
                from components.phoneRelease
                groupId = prop_groupId//自行设置
                artifactId = prop_artifactId//自行设置
                version = "${MultiModule_sdk_version}-beta-SNAPSHOT"//aar包名,别人依赖时使用名字依赖,MultiModule_sdk_version版本号
            }
        }
        repositories {
            maven {
                name = 'snapshot'
                url = prop_oppoMavenUrl_snapshot//仓库地址
                allowInsecureProtocol = true
                credentials {
                    username = sonatypeUsername//用户名
                    password = sonatypePassword//密码
                }
            }
        }
    }
}

到此这篇关于Android多设备多module打包(fat-aar)的文章就介绍到这了,更多相关android多module打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android动画系列之属性动画的基本使用教程

    Android动画系列之属性动画的基本使用教程

    这篇文章主要给大家介绍了关于Android动画系列教程之属性动画的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Android 实现代码混淆的实例

    Android 实现代码混淆的实例

    这篇文章主要介绍了Android 实现代码混淆的实例的相关资料,希望通过本文大家能够掌握Android代码混淆的实现方法,需要的朋友可以参考下
    2017-09-09
  • Android实现布局全屏

    Android实现布局全屏

    这篇文章主要为大家详细介绍了Android实现布局全屏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Kotlin协程启动createCoroutine及创建startCoroutine原理

    Kotlin协程启动createCoroutine及创建startCoroutine原理

    这篇文章主要为大家介绍了Kotlin协程启动createCoroutine及创建startCoroutine原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android静默安装实现方案 仿360手机助手秒装和智能安装功能

    Android静默安装实现方案 仿360手机助手秒装和智能安装功能

    这篇文章主要介绍了Android静默安装实现方案,仿360手机助手秒装和智能安装功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • android桌面悬浮窗显示录屏时间控制效果

    android桌面悬浮窗显示录屏时间控制效果

    这篇文章主要为大家详细介绍了android桌面悬浮窗,显示录屏时间控制效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android巧用Fragment解耦onActivityResult详解

    Android巧用Fragment解耦onActivityResult详解

    这篇文章主要给大家介绍了关于Android巧用Fragment解耦onActivityResult的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Android.bp语法和使用方法讲解

    Android.bp语法和使用方法讲解

    Android.bp是用来替换Android.mk的配置文件,下面这篇文章主要给大家介绍了关于Android.bp语法和使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Flutter数据库的使用方法

    Flutter数据库的使用方法

    这篇文章主要介绍了Flutter数据库的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Android编程之内存溢出解决方案(OOM)实例总结

    Android编程之内存溢出解决方案(OOM)实例总结

    这篇文章主要介绍了Android编程之内存溢出解决方案(OOM),结合实例实例总结分析了Android编程过程中常见的内存溢出情况与对应的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11

最新评论