技术标签: android-studio Android实战技巧 so库 类库 jar包 Android
将一网友的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包拷贝到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库是不需要额外工作的,只需将其放入指定目录,然后在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
文章浏览阅读494次。greenDao和之前的区别就是不用写大量的sql语句,节省了很多的时间。首先在build.gradle导入classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’然后在你的model里面导入apply plugin: ‘org.greenrobot.greendao’在app里面写这个greendao {schemaVersio..._greendao.deleteall无效
文章浏览阅读5.5k次。服务器端程序的编写步骤:第一步:调用socket()函数创建一个用于通信的套接字。第二步:给已经创建的套接字绑定一个端口号,这一般通过设置网络套接口地址和调用bind()函数来实现。第三步:调用listen()函数使套接字成为一个监听套接字。第四步:调用accept()函数来接受客户端的连接,这是就可以和客户端通信了。第五步:处理客户端的连接请求。第六步:终止连接。_socket编程基础实验---数据报套接字编程主要部分流程图
文章浏览阅读182次。Sky Soldiers Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 926 Accepted Submission(s): 350 Problem Description An ai..._sky soldiers hdu
文章浏览阅读435次。翻译自 https://www.tamafutoshi.net/mmd2.html项目介绍最近更新:2022/01/09欢迎来到下一代 MMD 项目:为每个人准备的新的 3D 操场。MMD2 是完全从头开始构建的,这充分表明我们拥有完整的软件底层控制。我们想要什么功能就可以创建什么功能。不需要计算机图形学的专业知识,到时候会有专门的教程。您可以创建自己的渲染资源或使用每个人共享的资源。渲染资源可以是任意内容,从图像、音乐文件,到模型、着色器或者舞台……重要通知我们这个 MMD2 并不是原来 MM_mikumikudance源代码
文章浏览阅读441次。本文主要会带你介绍 Linux 操作系统,包括 Linux 本身、Linux 如何使用、以及系统调用和 Linux 是如何工作的。相关视频还不懂内核吗?5个方面分析内核架构,让你对内核不再陌生深透剖析Linux内核字符与块设备驱动程序Linux 简介UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线。为什么要说 UNIX,那是因为 Linux 是由 UNIX 发展而来的,UNIX 是由程序员设计,它的主要服务对象也是程序员。Linux 继承了 UNIX 的设计目标。从智能手机到汽车_linux操作系统内核教程
文章浏览阅读1.5w次。使用webmagic采集博客类的网站示例
文章浏览阅读4.9k次。运用八连通边界填充算法进行多边形的填充(1)首先通过颜色混合的方式形成一个图形包中函数的对多边形的填充,如下图所示:计算机图形学 Opengl" TITLE="8连通、4连通的洪泛填充以及边界填充 计算机图形学 Opengl" />【注】主要代码如下://实现多边形的简单填充#include#ifdef__APPLE__#include #else#include _8连通域 算法
文章浏览阅读395次。行业寒冬不可怕,行业寒冬我们更要学会厚积薄发,应掌握安分守己,找准自己的核心竞争力,不断打磨,不断实践,才能临危不惧,活出精彩,最终迎来下一波红利。要说互联网“寒冬”,从各大互联网企业的纷纷裁员及一系列降低成本的举措来看,已经是不争的事实了。具体表现如下:1、大形式不好,根本不只互联网有点冷,像房地产,金融证券也冷的一踏糊涂,金融行业降薪很普遍。2、很多小公司小企业倒闭裁员,新闻不..._程序员可以做什么
文章浏览阅读1.2k次。升级 升级有两种方案:直接升级方案,recovery 升级 直接升级方案与其他嵌入式设备升级方式一样,就是从不同地方(OTA,U盘,TF卡等)获取升级文件,然后将需要升级的数据烧录到指定的flash分区地址去就可以了。 recovery 升级是当系统启动异常或是接收到recovery命令的时候,设备进入recovery模式,这个模式是一个精简的系统,一般只初始化跟升级相关的外设,一般也只进行升级相关的业务。 直接升级直接升级方案的几个分区升级方法如下: boot: 系统启动后 boot 分区不_ota升级中实现linux系统回滚机制
文章浏览阅读199次。小A要发布一个视频展现他优秀的球技,视频有n帧,小A有m个粉丝,如果同时有两个以上的粉丝看到他秀球技的一帧,该视频就会被广为传播,导致所有的粉丝发疯。每个粉丝会在y = k * ai + ri 时刻看视频,k为整数,问在保证粉丝不发疯的情况下小A可以在多少帧里炫技?0 < a <= 100,0 <= r < a,1 <= n,m <=1e5仔细观察数据量..._wishromm3答案
文章浏览阅读670次。最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json public static void TestJson() { DataTable dt = new DataTable(); dt.Columns.Add("Age", Type.GetType("System.Int32")); ..._json serializeobject后不格式化可以吗
文章浏览阅读224次。requests模块是一个第三方模块,对urllib模块进行了封装,提供了更友好更强大的API使用pip安装即可requests模块的官方文档:http://docs.python-requests.org/zh_CN/latest/1. GET请求 1 In [1]: import requests 2 3 In [2]: help(request..._eyjzzxnzaw