android studio生成aar包并在其他工程引用aar包

注:本文大量参考http://blog.csdn.net/getchance/article/details/47257389,并在其基础上做了少数修改,在这里感谢原文作者!

一、什么是.aar包文件

.aar包非常类似eclipse的.jar包,是android studio下打包android工程中src、res在lib后生成的.aar文件,.aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件。

但是与.jar包不同的是,.aar包里默认带有res资源文件。AndroidStudio也可以生成.jar包,但是AS自动生成的.jar只能包含java的基础类,并且不带有res资源文件,这点与eclipse-ADT生成的.jar不同!如果想让AS生成带有android类库和res资源文件的.jar包,也可以做到,但是却比较麻烦,所以我倾向做安卓,就用aar包吧!

二、生成.aar包步骤:

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

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

 

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

 

三、在其他AndroidStudio工程引用.aar包

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

②.配置app-module下的build.gradle文件:

加入

  repositories {
        flatDir {
        dirs 'libs'
    }

compile(name:'aar包名称', ext:'aar')

完整的配置文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.william.jtplistonandroiddemo"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'

    compile(name:'JTPlistOnAndroid', ext:'aar')
}

③.编译一次工程

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

 

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

四、aar内部结构

我尝试在windows电脑上解压缩了aar包,发现其内部最核心的其实是一个jar包,jar包中全是变异后的.class文件,除此之外aar中还包含有资源文件及manifests。

我尝试解压jar,并对其中的.class文件反编译,反编译产生的.java文件的内容与在AS中直接打开该文件获取的内容是一致的!也就是说在as上直接查看aar包中的类,看到的其实就是反编译后产生的文件,这就印证了其实AS是自带反编译功能的。

另外就是在打包arr时,要对源码备份,一旦误删了源码就很麻烦了!

转载于:https://my.oschina.net/JiangTun/blog/710989

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值