Android studio如何生成aar包

来源:互联网 发布:java 键值对 常量 编辑:程序博客网 时间:2024/04/28 19:37

在Android Studio中对一个自己库进行生成操作时将会同时生成.jar与.aar文件。

分别存储位置:

*.jar:库 /build/intermediates/bundles/debug(release)/classes.jar

*.aar:库 /build/outputs/aar/libraryname.aar

两者区别:

*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。

*.aar: 包含所有资源 ,class以及res资源文件全部包含

如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。

使用方式:

*.jar:拷贝到:libs目录,eclipse直接导入即可,AndroidStudio项目中添加:

1.aar包是Android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件

2.生成aar包步骤:

①.用android studio打开一个工程,然后新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作




②.新建Module 类型为android Library 后如下图所示



③.在新建的Module中编写完代码后,接下来编译整个工程后就会自动生成aar包,包的路径在新建的Module ==》 build ===》outputs ==>aar目录下。 如图



3.其他androidstudio工程引用aar包

①.将aar包复制到lib目录下 

②.配置build.gradle文件:

加入

  repositories {
        flatDir {
        dirs 'libs'
    }

compile(name:'camerascan-1.0', ext:'aar')

完整的配置文件:

[java] view plain copy
  1. apply plugin: 'com.android.application'  
  2.   
  3. android {  
  4.     compileSdkVersion 22  
  5.     buildToolsVersion "22.0.1"  
  6.   
  7.     defaultConfig {  
  8.         applicationId "com.geenk.testcamerascanarr"  
  9.         minSdkVersion 11  
  10.         targetSdkVersion 22  
  11.         versionCode 1  
  12.         versionName "1.0"  
  13.     }  
  14.     buildTypes {  
  15.         release {  
  16.             minifyEnabled false  
  17.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  18.         }  
  19.     }  
  20.     repositories {  
  21.         flatDir {  
  22.         dirs 'libs'  
  23.     }  
  24. }  
  25. }  
  26.   
  27. dependencies {  
  28.     compile fileTree(dir: 'libs', include: ['*.jar'])  
  29.     compile(name:'camerascan-1.0', ext:'aar')  
  30.     compile 'com.android.support:appcompat-v7:22.2.0'  
  31. }  
③.编译一次工程

如图复制aar包到lib下



图复制到lib下后,点击下图按钮让aar包可以在在代码中引用,或者编译一次工程



以上操作成功后可以在扩展包下看到被引用的aar包文件



0 0