Android Studio 中的Gradle依赖aar和jar包使用指南

一. Android Studio中app module的几种方式

moudlegradle plugin生成文件格式是否可以使用SDK
appcom.android.applicationapk可以使用
Android Librarycom.android.libraryaar可以使用
java Libraryjavajar不可以使用

二.Android Studio中生成aar包 

1.新建Moudle,New->Moudle

2.生成aar , Android Studio 打开右侧的 Gradle 面板,选择需要打包的module —> Tasks —> build, 双击 assemble

 

 3.生成aar和apk,build.gradle配置转化

1).生成apk,配置apply plugin: 'com.android.application'

apply plugin: 'com.android.application'

android {
    compileSdkVersion 31
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.myaardemo"
        minSdkVersion 29
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

2).生成 aar,配置apply plugin: 'com.android.library',并去掉applicationId 的配置项

apply plugin: 'com.android.library'

android {
    compileSdkVersion 31
    buildToolsVersion "30.0.3"

    defaultConfig {
        //applicationId "com.example.myaardemo"
        minSdkVersion 29
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

3).配置后build的示例显示 

三.Android Studio中生成jar包

打包aar后,可以直接生成class.jar,拷贝到需要引用的工程的libs下面直接使用即可

四.Android Studio中aar和jar包的使用

1.aar的配置使用

// 可以一条依赖引入libs下所有的aar
implementation fileTree(dir: 'libs', include: ['*.aar'])
 
// 也可以指定依赖某一个aar
implementation (name: 'myaardemo-release', ext: 'aar')

2.jar的配置使用

// 可以一条依赖引入libs下所有的jar
implementation fileTree(dir: 'libs', include: ['*.jar'])
 
// 也可以指定依赖某一个或几个jar
implementation files('libs/AarDemoClasses.jar.jar', 'libs/AarDemoClasses2.jar.jar')

3.如果多个应用需要使用相同的library,建议搭建公司内部的私有maven仓库,统一管理依赖的library,eg:

1).远程使用library配置

// 依赖明确的版本,标明group,name及version
implementation group: 'com.example.myaardemo', name: 'myaardemo-release', version: '1.0.0'
 
// 通常按照如下方式简写即可
implementation 'com.example.myaardemo:myaardemo-release:1.0.0'
 
// 也可以不指定版本号,将version改为"+",当远程仓库有更新的版本后,构建时会拉取最新的版本。
// 好处是可以始终依赖最新的library;弊端是有可能library的改动导致编译不过或者功能变更不
// 稳定,因为每次都需要检查是否有最新版本,所以构建效率会低一些
implementation 'com.example.myaardemo:myaardemo-release:+'



// 对于有多个APP,依赖内部统一SDK的情况时,可以将gradle文件放在服务器,远程控制统一依
// 赖版本,避免因为各个APP依赖的SDK版本不统一导致很难管理和维护
// 远程http://192.168.1.93/remote/common_config.gradle:
ext.libraryBuildConfig = [
 deps: [
  "myaardemo-release"     : 'com.example.myaardemo:myaardemo-release:1.0.0',
 ]
]
 
// 项目根目录下的build.gradle全局引入:
apply "http://192.168.1.93/remote/common_config.gradle"
 
ext {
 dependencies = [
  "myaardemo-release"  : libraryBuildConfig.deps.'myaardemo-release',
 ]
}
 
// 在module的build.gradle中依赖:
implementation rootProject.ext.dependencies["myaardemo-release"]

2).本地使用library配置

1’. common_config.gradle

ext {
    plugins = [
            library    : 'com.android.library',
            application: 'com.android.application',
            maven: 'maven'
    ]

    android = [
            compileSdkVersion: 29,
            buildToolsVersion: "29.0.2",
            minSdkVersion    : 19,
            targetSdkVersion : 29,
    ]

    dependencies = [
            gradle : 'com.android.tools.build:gradle:2.2.2',
            supportV4 : 'com.android.support:support-v4:27.0.2',
            supportV13: 'com.android.support:support-v13:27.0.2',
            supportCompat: 'com.android.support:support-compat:27.0.2',
            supportAnnotations: 'com.android.support:support-annotations:27.0.2',
            recyclerviewV7: 'com.android.support:recyclerview-v7:27.0.2',
            appcompatV7 : 'com.android.support:appcompat-v7:21.0.3',
    ]
    
}

2'.在项目根目录的build.gradle中直接引入我们配置的common_config.gradle配置文件

apply from: '../lib/common_config.gradle'

3'.使用的时候:在各个module的build.gradle里面使用

ndroid {
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    buildToolsVersion rootProject.ext.android.buildToolsVersion
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile rootProject.ext.dependencies.appcompatV7
    compile rootProject.ext.dependencies.supportV4
    compile project(':common')
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值