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

Posted 伟雪无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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')

以上是关于Android Studio 中的Gradle依赖aar和jar包使用指南的主要内容,如果未能解决你的问题,请参考以下文章

将 commons-io 依赖添加到 Android Studio 中的 gradle 项目

在最后一个 gradle 版本中无法解析 android studio 中的 jitpack 依赖项

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

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

android studio gradle dependencies 包存放在哪儿

android studio怎样配置gradle本地路径