在我们使用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. PHP计划任务之关闭浏览器后仍然继续执行的函数 ignore_user_abort

    备忘一下这个函数: 函数名称:ignore_user_abort 本函数配置或取得使用端连接中断后,PHP 程序是否仍继续执行.默认值为中断连接后就停止执行.在 PHP 配置文件中 (php3.ini ...

  2. linux系统删除空间后系统分区空间仍不释放问题

    总结的原因: 1.删除文件文件后没有清空回收站; 2.删除的文件不在系统分区,在其他分区上; 3.删除的文件被保留在了/tmp分区下,而/tmp分区不是独立的分区,是在根分区/的基础上划分出来的分区; ...

  3. python【第六篇】面向对象编程

    面向对象编程 一.编程范式:编程的方法论.程序员编程的“套路”及“特点”特点总结,抽象成方法.规范. 二.面向对象编程介绍: 1.描述 世界万物,皆可分类:世间万物,皆为对象:只要是对象,就肯定属于某 ...

  4. 使用iOS8 WKWebView的浏览器模块,脉冲动画层-b

    KINWebBrowser是一个可嵌入app的浏览器模块. 它使用iOS 8的 WKWebView API编写,同时在iOS 7上使用UIWebView来兼容. 测试环境: Xcode 6.0 iOS ...

  5. Explain语法

    EXPLAIN SELECT -- 变体: 1. EXPLAIN EXTENDED SELECT -- 将执行计划"反编译"成SELECT语句,运行SHOW WARNINGS 可得 ...

  6. codeforces C. Booking System

    题意:有n组客人,分别告诉每一组的个数和花费,然后给你餐厅内k个桌子,每个桌子的最大容纳人数,如何安排使得餐厅最大收益并且容纳人数尽可能大: 思路:贪心,对花费排序,然后对每一组客人找桌子就可以. # ...

  7. Js中的window.parent ,window.top,window.self详解

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...

  8. 2句代码轻松实现WPF最大化不遮挡任务栏并且具有边框调节效果

    原文:2句代码轻松实现WPF最大化不遮挡任务栏并且具有边框调节效果 相信刚入门的菜鸟跟我一样找遍了百度谷歌解决最大化遮挡任务栏的方法大多方法都是HOOK一大堆API声明 最近在敲代码的时候无意中发现有 ...

  9. 【HDOJ】1987 Decoding

    简单搜索. /* hdoj 1987 */ #include <iostream> #include <cstdio> #include <cstring> #in ...

  10. 【HDOJ】4704 Sum

    数学题.f(n) = 2^(n-1) mod (1e9+7). #include <cstdio> #define MAXN 100005 char buf[MAXN]; __int64 ...