前奏:之前一直在寻找各种打成jar包的方式,该方式只能把class文件打成jar包,并不能

把项目中的资源文件(比如res目录下的文件,assets目录下的文件)也打到jar包里面

就算可以打到jar包里面,我们的项目也不能使用。

主题:后来更新ADT的时候看到SDK的\extras\android\m2repository\com\android\support目录下

有好多后缀为aar的文件,解压工具打开可以看到里面赫然包含着assets、res、AndroidManifest.xml、classes.jar

和R.txt等文件,然后通过测试发现直接将aar文件放到项目的libs目录下,可以调用里面的资源文件和类文件。

下面说说aar的生成方法和使用方法:

生成方法:必须通过AndroidStudio工具(需要使用它的Gradle构建方式,低版本的估计不行,我使用的最新版本1.1.0),创建一个非库项目A,再创建一个库项目B,并且使得A依赖于B,然后运行项目A,这时在库项目B的\build\outputs\aar目录下可以看到B-debug.aar和B-release.aar两个文件,该文件就是一会提供给项目A使用的。

使用方法:

现在让A项目去掉对B的依赖关系,将上面生成的B-debug.aar或者B-release.aar拷贝到项目A的libs目录下,修改A项目的build.gradle配置文件,如下

repositories{    flatDir{        dirs 'libs'    }}

dependencies {
  // compile fileTree(dir: 'libs', include: ['*.jar'])
  compile (name:"B-release",ext:"aar")
  compile 'com.android.support:appcompat-v7:22.0.0'
}

然后等Gradle构建完成,即可运行项目A。

更多相关文章

  1. Android(安卓)FileProvider应用之间共享数据
  2. Android(安卓)Studio 第一次新建Android(安卓)Gradle项目超级慢
  3. android adapter详解
  4. Android中经常用到的方法--SDcard下文件的操作
  5. Ionic3 安卓签名
  6. Android(安卓)文件系统移植总结
  7. android中实现多个apk文件
  8. android 启动过程 [ZZ]
  9. NPM 和webpack 的基础使用

随机推荐

  1. 什么是并发编程?
  2. Java 中的锁
  3. 程序员专业被娃溜...
  4. 讲给前端的正则表达式(2):写出更优雅、更
  5. 什么是线程池?
  6. Java 中的锁如何使用?有什么注意事项?
  7. 并行是什么意思?与并发的区别是什么?
  8. Executors如何创建线程池?
  9. 什么是线程?什么是进程?为什么要有线程?有什
  10. Java 中锁之间的对比