zoukankan      html  css  js  c++  java
  • Android Studio下打jar包

          在我们使用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'
        }
    }
    复制代码

    捕获

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

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

  • 相关阅读:
    转载两篇文章之二(从程序员到CTO所要培养的六种能力)作者:阿蒙 原文:http://blog.csdn.net/harrymeng/archive/2007/02/07/1503931.aspx
    关于解决eclipse中的插件依赖
    GMF中控制Figure的大小和位置
    Sql server2005中如何格式化时间日期
    JavaScript创建对象的几种方式
    FCK编辑器焦点问题
    对引用类型的一点理解
    利用XML FOR PATH 合并分组信息
    [译]Silverlight中TreeView增删改查和拖放
    KeyedCollection<TKey, TItem>与IDictionary<TKey, TValue>的区别
  • 原文地址:https://www.cnblogs.com/hbtmwangjin/p/8258680.html
Copyright © 2011-2022 走看看