在我們使用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/ 下就是我們的類庫文件.包含資源文件.、