在我们使用Eclipse时,我们常常使用的第三方类库文件大多都是jar包形式,用起来很方便。但是jar包只能打包class文件,对于Android UI类库而言,我们常常需要打包资源文件,对于界面不多的情况,我们可以通过反射来调用,把资源文件都通过这个反射的R引用出来 ,但是太多打jar包就行不通了。

在Eclipse下我们还可以通过将一个工程作为另一个工程的类库存在来解决这个问题,在Android Studio中提供了一种新的打包方式,那就是aar ,它和jar包的不同之处就在与aar包中将资源文件和class.jar 一起打包进去了 ,但是在Eclipse下是不可以使用aar的 。

在Android Studio下对库文件进行编译的时候,会同时生成*.jar 和  *.arr 文件。

  • jar 文件目录:Volley/build/intermediates/bundles/debug(release)/classes.jar
  • aar文件目录:Volley/build/outputs/aar/libraryname.aar

如果 所编译的 库文件  不涉及到UI (res), 没有assets 、没有aidl ,那么这个 classs.jar 就可以使用了。

Android Studio下生成文档的方式:

有时候,对于我们的代码想要生成文档,供别人使用,我们还需要做一些操作。

我们可以在我们的工程目录下的build.gradle添加如下内容

buildscript {
repositories {
//mavenCentral托管
mavenCentral()
}
dependencies {
//gradle 版本
classpath 'com.android.tools.build:gradle:1.0.1'
}
}
// 申明是一个类库
apply plugin: 'android-library' android.libraryVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
} // 生成javadoc文档
task("javadoc${variant.name}", type: Jar) {
classifier = "javadoc"
description "Bundles Javadoc into a JAR file for $variant.name."
from tasks["generate${variant.name}Javadoc"] }
// 生成jar文件
task("jar${variant.name}", type: Jar) {
description "Bundles compiled .class files into a JAR file for $variant.name."
dependsOn variant.javaCompile
from variant.javaCompile.destinationDir
exclude '**/R.class', '**/R$*.class', '**/R.html', '**/R.*.html'
}
}

点击途中红色部分即可操作相应的命令。、生成文件在\mylibrary\build\libs 目录下。

使用jar包或者arr包

在Eclipse下使用第三方类库有两种方式。这里就不说了;主要是在Android Studio下使用,。

Android Studio使用jar 包。

①将jar包导入到lib目录下

②在Module的build.gradle中添加如下代码

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}

Android Studio下导入arr包

这里有两种方式,一种是本地加载,一种是网络加载。

网络加载需要我们提交发布到mavenCentral托管,托管过了的项目一般在build.gradle中加入如下代码就会自动下载到本地 例:

repositories {
mavenCentral()
} dependencies {
// 项目地址
compile 'me.drakeet.materialdialog:library:1.2.2'
}

本地arr包的配置

①拷贝arr包到lib

②build.gradle配置

repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
// 前面是项目名,记住不带arr后缀,后面是后缀
compile(name: 'mylibrary', ext: 'aar')
}

导入成功我们就可以在Studio的build目录下见到效果了,/工程目录/intermediates/ 下就是我们的类库文件.包含资源文件.、

Android Studio下打jar包的更多相关文章

  1. Android Studio下导出jar包和aar包

    Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...

  2. Android Studio导入第三方jar包或依赖工程的方法

    Android Studio导入第三方jar包或依赖工程的方法   一 导入jar包的方法 1.打开自己的工程,将需要导入的jar包copy到libs文件夹下 2.在导入的jar包处单击菜单 Add ...

  3. (转载) android studio library生成jar包和aar的方法总结

    android studio library生成jar包和aar的方法总结 标签: android学习文档jar和aar的使用与生成gradle 2016-11-25 10:39 1782人阅读 评论 ...

  4. Android Studio 如何打JAR包

    Android Studio 如何打JAR包 在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用.  在AS中可以通过修改gradle才处理.  我们新建一个项目MakeJar,在 ...

  5. Android Studio 怎样打JAR包

    Android Studio 怎样打JAR包 在eclipse中我们知道怎样将一个项目导出为jar包,供其他项目使用. 在AS中能够通过改动gradle才处理. 我们新建一个项目MakeJar,在项目 ...

  6. Android Studio 导入系统 jar包

    1.当前需要导入系统jar包的module所对应build.gradle中添加如下依赖: provided files('libs/classes-full-debug.jar') 也可以图形化设置: ...

  7. Eclipse / android studio 添加第三方jar包 步骤

    eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->C ...

  8. 关于Android Studio中第三方jar包的Javadoc绑定

    原文地址:http://blog.csdn.net/a739697044/article/details/28116189   现在刚开始从Eclipse转用Android Studio,现在在尝试使 ...

  9. Android Studio如何打jar包

    前言 公司经常和客户提供SDK,提供一个jar包sdk是一件很平常的事.Eclipse 有图形界面和向导供开发者将一个项目导出为jar包,相对来讲是比较简单的,切换到Android Studio后,则 ...

随机推荐

  1. Mysql访问 for橙子小海

    package com.mvc.model.dao; import com.mvc.model.daoutil.DBConn; import com.mvc.model.entity.Blog; 这是 ...

  2. Lambda表达式中的表达式lambda和语句lambda区别

    Lambda表达式可分为表达式lambda和语句lambda 表达式lambda:表达式位于 => 运算符右侧的lambda表达式称为表达式lambda (input parameters) = ...

  3. Javascript系列之在HTML中使用JavaScript

    本文主要包括以下几方面内容: 1)使用<script>元素 2)嵌入脚本和外部脚本 3)文档模式对JavaScript的影响 4)考虑禁用JavaScript的场景 只要一提到把Javas ...

  4. program_options禁止命令行短参数

    典型的 boost program_options的用法如下: #include <boost/program_options.hpp> using namespace boost::pr ...

  5. 工作总结:MFC自写排序算法(升序)

    最近一个需求里面需要实IP升序排序,用了qsort,结果是内部排序,甚至感觉排序结果不可预测性,于是自己写了一个外部排序. 需求如下:一个指针里面有N条记录,每条记录包含:IP,偏移地址,保留位,均占 ...

  6. Node.js事件发射器

    在Node很多对象发出事件,例如net.Server每个同级连接到它,一个fs.readStream发出打开文件事件时,每次都发出一个事件. 它发出事件的所有对象都是events.EventEmitt ...

  7. AMD:浏览器中的模块规范

    前面提到,为实现与Node.js相同方式的模块写法,大牛们做了很多努力. 但浏览器环境不同于服务器端,它的模块有一个HTTP请求过程(而Node.js的模块文件就在本地),这个请求过程多数使用scri ...

  8. unity3d中的http通信 二

    转载自 http://www.cnblogs.com/88999660/archive/2013/03/11/2954279.html 如果侵权,请及时通知我删除! using System; usi ...

  9. codeforces Upgrading Array

    思路:对于每个数分解质因子然后记录每一个质因子的个数,对与在b中出现的质因子就减去1,否则加1,求出总的,然后从后面一次对它们的最大公约数,然后判断除以最大公约数之后,改变量是不是变化,求最大值,变化 ...

  10. JAVA内置的观察者模式样本

    DisplayElement.java public interface DisplayElement { public void display(); } CurrentConditionsDisp ...