android下library打包aar并上传到maven,嵌入版的app

android嵌入版

这几天在研究android下怎么把自己的项目当作一个library给到另一个app做嵌入使用,把这些记录下来,方便以后参考

准备工作

1.需要了解一些gradle 命令打包的知识

2.了解publish推送maven的知识

简化代码到三方app

我们把自己的项目简称A,三方项目简称B

1.我们需要先把自己项目A,进行简化,因为项目B不一定需要我们所有的功能,我们只用保留项目B使用的功能即可。

2.在项目B中新建moudle,并且命名library的名称

3.在新建成功后,复制项目A的libs,src二个文件过到项目B的library下

4.修改library下的build.gradle文件的依赖和报错

5.在项目B的build下面找到assemble执行,会在build的outputs生成aar包。

6.可以在项目B的app下面添加Implementation project('library名称') 验证

上传maven

1.在上面打好aar包后,在build的outputs下面找到aar,拷贝到libs下面

2.在library的build.gradle下面放入push代码,代码里变量的定义在gradle.properties下面。

groovy 复制代码
publishing {
    publications {
        def fileName = "libs/库名.aar";//注意修改
        def taskId = "pushtomaven";
        println "${fileName}"
        publishing.publications.create(taskId, MavenPublication) {

            artifact "${fileName}"
            groupId GROUP_ID
            artifactId "maven名称"
            version "1.0.14" 
        }
    }
    repositories {
        maven {
            url MAVEN_AAR_RELEASE_URL
            credentials {
                username NEXUS_USERNAME
                password NEXUS_PASSWORD
            }

        }
    }
}

3.点击library下的publishing的publish开始上传,成功即可。这个上传只能添加,不能删除。

自动打包

这个是简化代码成功后,从打包到上传的linux命令操作,方便我们自动化操作,减轻错误代码

groovy 复制代码
rm -rf ../项目名/库名/build/outputs/aar/*
cd ../项目名
gradle -continue 库名:build
//这个步可以不要,我是修改了包名
mv ../项目名/库名/build/outputs/aar/包名.aar ../项目名/库名/build/outputs/aar/包名.aar
rm -rf ../项目名/库名/libs/包名.aar
cp ../项目名/库名/build/outputs/aar/包名.aar ../项目名/库名/libs/
gradle -continue 库名:publish

上面已经完成了library到三方app的流程

但是如果,三方代码很多,我们想简化对三方app的依赖。

1、我们需要新建一个新项目,新建一个library到新的项目里

2、引入对三方app的依赖,只保留三方app中被用到的代码

注意:这里会有问题,因为简化了代码,所以打出来的R文件会比上面出来的小,少了很多没有用的资源,还要验证是不是有影响。

相关推荐
独隅7 小时前
Android Studio 接入 CodeX 的全面指南
android·ide·android studio
plainGeekDev10 小时前
Glide 该换了?Coil:Kotlin 时代的图片加载库
android·开源·kotlin
小a杰.10 小时前
Ascend C编程语言进阶:高性能算子开发技巧
android·c语言·开发语言
plainGeekDev10 小时前
Android内存面试题:OOM都解决不了,性能优化从何谈起?
android·面试·kotlin
JustNow_Man12 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
YIN_尹14 小时前
【Linux 系统编程】手撕一个简易版的shell命令行解释器
android·linux·运维
黄林晴14 小时前
Android CLI 1.0 稳定版发布!官方为 AI Agent 打造专属验证工具,改完自动校验
android
氦客15 小时前
Android Compose 图层的合成 : BlendMode
android·compose·jetpack·layer·blendmode·graphics·图层的合成
Sahadev_15 小时前
GitMemo 安卓版发布了:现在可以随时随地查看和记录自己的笔记
android·笔记·创业创新
龙之叶16 小时前
Android 12:在 ActivityStarter 层拦截分享、搜索与 HTTP 外链
android·chrome·http