android studio打包成jar aar

首先要明白aar与jar包的区别,aar包是android archive 的缩写,就是由安卓定义的jar类型,可以将manifest下的配置,如你在编写sdk的时候,需要集成方将你的service或者其他的组件在manifest中配置,在提供sdk时,都需要提供各样的SDK的集成文档,虽然有集成文档了,但仍然是避免不了有相关开发人员在集成SDK时将相关配置项遗漏,导致SDK未能正常运行,此时aar包就是一种比较好的解决方案,aar包同时也可以将res目录下的东西一并打包进去;

        对于aar包的生成是很简单的如果你是处于android studio的gralde编译环境,只需要你的SDK项目能用MakeProject正常构建成功,就会在android library 下的build/outputs/aar/xxxxx-release.aar ,aar包生成后就可以进行引用,引用aar包也是非常简单的,将aar放在集成项目的libs,同时在budild.gralde中配置上以下 dependencies { compile(name: 'release-library', ext: 'aar') }

接上篇写的文章,在打包jar包时,可以在脚本中写入脚本代码,将对应libs下的引用包选择性打包,因为比如你的SDK中引入了supportV4 这种包,你如果强制将supportV4打包进去了,当别人在使用你的SDK时,由于他人的项目本身就引用了supportV4,那么此时集成者的项目估计无法正常骗译通过,会报 dex的错误,因为有两个supportV4了,所以我们在提供jar包的时候,避免将安卓本身的一些包打进去SDK中,但是我们可以将我们libs下引用 的jar包一并提供出去,由集成者选择性,是否需要集成。

补充说明上篇文章中的选择性打包的脚本,需要在项目的 gralde.properties中配置相关选项

# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true


#如果需要号码归属地数据库,则选择true,不需要则false
phoneZoneEnable=false

#是否需要将supportV4包打包进去,true需要,false不需要
includeSupportV4=false

#是否是发布测试版本还是正式版本
publishReleaseVersion=false

#//正式包仓库地址
releaseRepositoryUrl=http://192.168.1.81:8081/repository/maven-releases
#//测试包仓库地址
snapshotRepositoryUrl=http://192.168.1.81:8081/repository/maven-snapshots

#// 定义要上传的aar所在仓库的Group,可自定义,但后续引用处要与此一致
repositoryVersion=1.0.0
repositoryArtifactId=btsdk
repositoryGroupId=com.cookoo

repositoryClientVersion=1.0.0
repositoryClientArtifactID=btsdkclient
repositoryClientGroupId=com.cookoo

#发布者账号
publishUserName = admin
#发布者密码
publishUserPassword = admin123

#以下两项目为可变项参数
#开发者标识
developerId = sunjr
#版本发布修改问题点
versionDescription=Cancel bt music report play state to app immediately.

clientVersionDescription=First version commit.
#以上两项目为可变项参数,


developerName_jiang = Deson
developerEmail_jiang = [email protected]




#以下为蓝牙SDK注解框架的debug配置
#org.gradle.daemon=true
#org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8009

#此处,如果不是注解框架调试,请放开
#org.gradle.daemon=false
#org.gradle.jvmargs=-Xmx1536m
#org.gradle.configureondemand=false

猜你喜欢

转载自blog.csdn.net/kenderson/article/details/84178697