在我们使用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/ 下就是我们的类库文件.包含资源文件.、