牛骨文教育服务平台(让学习变的简单)

第三方类库源码

将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了。

项目的目录结构如下:

XMPP$ ls
app    build.gradle  gradlew      import-summary.txt  XMPP.iml
build  gradle        gradlew.bat  local.properties    settings.gradle

将第三方源码qqEmoji-lib拷到此目录,修改settings.gradle增加此lib:

include ":app",":qqEmoji-lib"

修改app下的build.gradle,在dependencies内加入:

dependencies {
    compile project(":qqEmoji-lib")
    ...

在qqEmoji-lib下新建build.gradle文件,内容参考如下:

apply plugin: "android-library"

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 18
    }

    sourceSets {
        main {
            manifest.srcFile "AndroidManifest.xml"
            java.srcDirs = ["src"]
            resources.srcDirs = ["src"]
            aidl.srcDirs = ["src"]
            renderscript.srcDirs = ["src"]
            res.srcDirs = ["res"]
        }
    }
}

dependencies {
    compile "com.android.support:appcompat-v7:19.1.0"
    //compile "com.android.support:support-v4:19.1.0"
}

gradle的配置内容情参考最后第二个链接。

此时项目的结构见下图: 

此时编译,通过,导入成功!

第三方类库jar包

这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖。如下:

dependencies {
    compile "com.android.support:support-v4:19.1.0"
    compile files("libs/libammsdk.jar")
    compile files("libs/universal-image-loader-1.8.6-with-sources.jar")
    compile files("libs/YoumiSdk_v5.00_2015-01-08.jar")
}

第三方so库

通常来说,我们调用第三方的so库是不需要额外工作的,只需将其放入指定目录,然后在java文件中load即可。 
比如我引用之前《第一个NDK程序》中编译出的libFirstLib.so,将其放到app/src/main/jniLibs/armeabi/下,在源码中引用:

    static {  
    System.loadLibrary("FirstLib"); 
    }  

即可。程序运行如下图: 

参考: 
http://www.cnblogs.com/neozhu/p/3458759.html 
http://www.open-open.com/lib/view/open1415793464648.html