Android Studio 使用smack
导入smack源码
smack是一种实现xmpp协议的客户端库,在smack4.1版本前,是不支持安卓平台的,只能使用asmack,如今smack4.1,4.2都支持安卓,而asmack仅更新到4.0.7就停止了。
Android Studio支持导入第三方源码,在smack的GitHub网站上可以看到smack4.1,smack4.2的说明,这里以smack4.2为例,(链接:https://github.com/igniterealtime/Smack/wiki/Smack-4.2-Readme-and-Upgrade-Guide)
可以看到
Projects that target Android
With Gradle
repositories { maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } mavenCentral() }
在Android Studio中,只需要将这段代码复制进build.gradle(Module: app)中就行,注意,repositories {} 与 android {}、dependencies {} 同级。
再smack的GitHub上再往后翻,可以看到
Smack configuration with smack-extensions for XMPP over TCP
dependencies { compile "org.igniterealtime.smack:smack-android-extensions:4.2.0" compile "org.igniterealtime.smack:smack-tcp:4.2.0" }
Minimal Smack configuration for XMPP over TCP
dependencies { compile "org.igniterealtime.smack:smack-android:4.2.0" compile "org.igniterealtime.smack:smack-tcp:4.2.0" }
这两段的含义是如何选择依赖项,前一个表示带有扩展的smack包,后一个表示最小化配置,在这里本人选取第一个,最终修改的Gradle文件如下:
apply plugin: 'com.android.application'
android {...}
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
mavenCentral()
}
dependencies {
compile "org.igniterealtime.smack:smack-android-extensions:4.2.0"
compile "org.igniterealtime.smack:smack-tcp:4.2.0"
...
}
写到这边Gradle文件就算修改好了,然后点击图中的同步按钮,Android Studio会自动下载smack