AndroidStudio与库相关

来源:互联网 发布:在线画图软件 编辑:程序博客网 时间:2024/06/03 14:32

一、参考AndroidStudio教学视频

URL:http://ask.android-studio.org/?/explore/category-video 27 28

1.在一个项目(Modle)中,使用一次:

project视图,找到该项目的libs目录,将.jar文件拷贝进入,右击->add as library

效果:该项目的build.gradle文件中

dependencies{

                   .

                   .

                   .

          compile files('libs/jdom-2.0.5.jar')                       //jdom-2.0.5.jar为拷贝进入的.jar文件

}

2.在多个项目(Modle)中使用,在同一个工程下

File->New Module->Import JAR or .AAR Package->选择文件 子项目名称->finish

File->Project Structure->(选择要使用库的项目)Dependencies->+->Module dependency->选择library的Modules

dependencies{

                   .

                   .

                   .

          compile project(':jdom-2.0.5')                       //jdom-2.0.5为子项目的名称

}


3.Adding Remote Libraries With Maven Dependencies

dependencies{

                   .

                   .

                   .

          compile 'com.android.support:appcompat-v7:21.0.3'   

          compile 'com.google.code.gson:gson:2.3.1'                    

}


File->Project Structure->(选择要使用库的项目)Dependencies->+->library Dependency->选择需要的库->确定


工程的build.gradle    jcenter()    ->     https://bintray.com         jcenter.bintray.com  Gradle首先查找本地(按照查找规则),如果不能找到,则搜索远程库,找到就下载到本地



二、参考博客文章

参考(jar包、本地库、远程库):https://drakeet.me/android-studio

参考(so库):http://wiki.jikexueyuan.com/project/android-actual-combat-skills/android-studio-importing-third-patry-repository-jar-package-so-package.html

参考(aar):http://www.94cto.com/index/Article/content/id/75315.html

1.导入jar包

导入 jar 包的方式非常简单,就是在项目中的 libs 中放入你需要导入的 jar 包,然后右键你的 jar 文件,选择“add as a library”即可在你的项目中使用这个 jar 包了。 这个方式虽然简单,但用处很大,不仅仅能导入一些普通 jar 包,还可以作为一些不支持 Android Studio 的开源库的使用的解决方案,就是说,你把你需要使用的开源库的 jar 包拿出来,导进来即可,因为通常我们使用开源库并不会去修改其源代码。其 jar 包你可以自己用 eclipse 生成,也可以在开源库地址找到,因为一般都会同时提供 release 版本。但如果 gradle 中已经有如下代码:compile fileTree(include: ['*.jar'], dir:'libs')。就不用再 add 了,Sync 一下gradle 就可以了。


2.添加远程开源库

可以无需将开源库下载下来,进入你的项目(一般是 app 目录),编辑 build.gradle 文件。添加如下图的内容即可:


该内容你可以在你使用的开源库的 README.md 中获得,如我使用的 FlatUI 这个开源库,在其 GitHub 页面上你可得以下内容:


这个帮助内容就是你写到项目build.gradle 中的内容,注意,不要误写到外层的全局 build.gradle 中去。总的来说,就是这么两步,其余都不用做,就可以在你的项目中使用这个开源库了。现在的开源库 README.md 中,如果作者使用的是 Android Studio 都会写上这么一个指引的。

3.添加本地库

将开源库下载下来,放置在与app 目录同级的目录下,然后编辑 setting.gradle 文件,加入:”:开源库文件夹名”。如:我在 app 同级的目录下放置了 volley 的开源库文件夹,然后编辑  setting.gradle,内容改为:

include ':app', ':volley'

然后再回到你的 app 目录下的build.gradle 文件,在 dependencies { }节点下加入:

compile project(':volley')

这样以后,你就可以在你的代码中引用那个保存在你本地的开源库(其实叫 Module )啦~~

4..so库

只需要把so文件放到libs文件夹里的对应cpu文件夹里,最后在module的build.gradle里加上jni的sourceSets配置:jniLibs.srcDirs= ['libs'],完整代码参见如下:

apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        applicationId "com.chen.watchdogjni"        minSdkVersion 15        targetSdkVersion 23        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    sourceSets {        main {            jniLibs.srcDirs = ['libs']        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.2.1'}


然后在 Java 文件中 load 即可。

static { 

   System.loadLibrary("FirstLib");

    }

5.AAR库

(1)     简述

在比较大的 Android项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,比如:


Gradle的一些基本依赖配置方式如下:

compile fileTree(dir: "xxx', include:['*.jar', "*.xxx"]):将某个目录下所有符合扩展名的文件作为依赖; compile 'com.xx.xx:ProjectName:Version':配置Maven` 库作为依赖;在 Maven库中心 可以搜索自己想用的库进行依赖; compile project(':AnotherModule'):配置另一个 Module 作为本 Module 的依赖,被依赖的Module 必须被导入到当前工程中; compile files('xxx.jar'):配置某个 jar 包作为依赖。

看起来不错,基本通用的配置都已经存在了。一般对于中等小型的工程,这种开发方式完全没有问题。但是有时候 A 和 B 两个工程,想同时引用另一个公共的 Module C,而这个 Module 可能是一个比较复杂的 Android Module,可能包含了一些主题、UI 、资源文件等等,这时候,如果用 Module 依赖的方式来配置,不免有些困难,因为 A 和 B 都要导入 C,而且要随时关注 C 的更改。

好在 Android Studio 提供了 aar 库的打包方式,我们可以把 C 作为 library 进行打包,输出 aar 文件,然后在 A 和 B 中,配置 aar 库依赖,就可以解决。(注:以远程开源库方式感觉更好)

 

要输出 aar 文件,必须将 Module 配置为 library,在 gradle 文件中如下:

输出 aar : apply plugin: 'com.android.library'; 输出 apk :applyplugin: 'com.android.application'。

将 Module 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar 中。
0 0