Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库

第三方类库源码

将一网友的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
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

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

include ‘:app‘,‘:qqEmoji-lib‘
  • 1
  • 1

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

dependencies {
    compile project(‘:qqEmoji-lib‘)
    ...
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

在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‘
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

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‘)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

第三方so库

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

    static {
    System.loadLibrary("FirstLib");
    }  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

即可。程序运行如下图: 

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

时间: 2024-08-08 13:54:48

Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库的相关文章

android studio 引入第三方类库jar包

第三方类库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 fil

Android实战技巧之十二:Android Studio导入第三方类库

将一网友的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拷到此目录,修改sett

Android实战技巧之五十二:fastjson

1.JSON JSON全称为JavaScript Object Notation,是一种轻量级的数据交换格式. 正因为数据格式简单,所以占用带宽小,网络传输的速度更快些.这一点是老前辈xml的硬伤. JSON的语法也很简单: 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 下面是微信公众帐号开发中获取token的JSON返回值 {"access_token":"I73NddJk_1GPgvVSrYC13w5omdanuiVdj7zvf8YDj1x0IYUDmQ

Android实战技巧之三十二:Android Studio中的源代码管理

Android Studio最近经过了两次升级到了Android Studio 1.2.1.1, 用起来是越来越顺手了.AS中加入了主流的源码管理工具,让开发者不用离开AS就可以提交和管理代码. 下面就演示一下在AS中使用git管理代码. 选择要提交的代码 右键->commit 编写commit message 可以选择commit and push一起完成提交的动作 确认后push 查看提交历史和对比文件 总结: 玩git的都知道在命令行下有些版本历史信息的显示是不方便的,我们需要借助gitk

Android实战技巧之十一:Android Studio和Gradle

经过两个多月的AS体验,我认为是时候将Android的开发环境迁移到AS上了.目前最新版本是1.0.2,除了UI控件拖拽偶尔崩溃的问题(Ubuntu),其他功能用来还是十分流畅和高效.打动我的有如下几个特色: 智能感知体验特好,堪比VS 布局预览,手写布局后预览页面即时显示,便于布局调整和优化 编辑速度飞快流畅,毫无eclipse的卡顿 布局或源码中有图标和颜色的预览,十分直观 调试时体验极佳 集成了Terminal,喜欢命令行操作的伙伴不用额外启动终端了. 总之一句话,就是用起来特别爽! An

Android实战技巧之十九:android studio导出jar包(Module)并获得手机信息

AS中并没有独立的Module 工程,但是可以在普通的Project中加入Module.所谓的Module就是我们通常所指的模块化的一个单元,并常常以jar包的形式存在.下面以一个获取手机信息的例子演示AS中的模块化. 一.项目中新建Module File->New Module,详细见下图. 二.新建Java类 新建一个PhoneInfo类,内容如下: package com.linc.mylibrary; import android.content.Context; import andr

Android实战技巧之十:获得屏幕物理尺寸、密度及分辨率

大家帮忙喽! 博主参加2014博客之星活动,大家帮忙投票啦!猛击这里! 通过程序去了解硬件情况是一件十分有意思的事情.很早我就研究在WM6.5上获得屏幕物理尺寸,但一直没有成功.后来又想要在Android上有所突破,不过在今天之前得到的尺寸都不准确.虽然很多人认为没必要这么较真,因为貌似很多情况下用不到.不过我就当这是一件很有挑战性的事,一定要做到.对,就是这么任性. 源码中android.view包下的Display类提供了很多方法供程序员获得显示相关的信息,通过此类让我们开启了解设备屏幕之旅

Android实战技巧之四十四:Hello,Native!

在Android上运行C程序对于做上层App的童鞋来说有些陌生,因为目前的Android应用开发怎么还是绕不过Java. 但对于底层驱动开发者,这就是家常便饭一样,因为Android是Linux分支,底层是C/C++的世界. 有时为了测试一些功能,我们也会编写直接运行在Android终端下的C程序.前提是有Android交叉编译器以及Android系统的root权限. 交叉编译工具 ndk为我们开发native程序做了很多工作,下面我们将Android交叉编译工具从ndk中分离出来. 我的系统是

Android实战技巧之十四:混淆与反编译

混淆 Android Studio: 只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 这个proguard-android.txt是sdk中groguard默认的文件,