我在看这个答案 Using your own XMPP server for android chat app (Smack API)了解可用的 XMPP API。 Smack 似乎是一个不错的选择。
在 Smack 4.1 之前,必须依赖 aSmack。从 4.1 开始,Smack 将在 Android 上原生运行。我有几个“入门”问题。
问题 1:
如何在 Eclipse 的 Android 项目中包含 Smack 4.1?
这里的说明https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide似乎适用于 Android Studio
问题 2:
Android 的代码会保持不变吗?
我在这里指的是他们的官方文档:https://www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html
我想知道的是,API 的使用在 Android 中是否也会保持不变。
最佳答案
How do I include Smack 4.1 in my Android project in Eclipse?
就像您在 Eclipse Android 项目中包含任何其他 Java 库一样。通过将 .jar
文件放在 libs/
目录中,Eclipse 的 Android 插件和 Android Ant 构建系统将使它们可供项目类路径并将它们包含在生成的 .apk
中。
Smack 4.1 的特点是高度模块化。如果你想在 Android 上使用全功能的 Smack,你需要大约 11 个 .jar
文件。现在,您可以使用 gradle 来使用 Android Studio,这种方式包括 Smack,就像添加一样简单
dependencies {
compile "org.igniterealtime.smack:smack-android:4.1.0-rc1"
compile "org.igniterealtime.smack:smack-tcp:4.1.0-rc1"
// optional features
compile "org.igniterealtime.smack:smack-android-extensions:4.1.0-rc1"
}
而 gradle 将负责解决传递依赖。
但是,Android Studio,确切的说是Android gradle插件,不支持带源附件的下载和调试1。在使用开源库时,这显然是您想要的。
这就是我自己不使用 gradle 插件的原因之一。那时我无法开发 Smack(我也喜欢 Eclipse,但那是另一回事)。
所以我们又回到了使用 Eclipse/Ant 来开发我们的 Android 项目。 Smack 4.1 自述文件告诉您使用 MavenToAndroidAnt Python3脚本,它将自动下载 Artifact 并在更新时删除旧的。如果你将它挂接到你的构建过程中,它几乎和使用 gradle 一样好而且还支持源附件。
当然,您也可以手动添加 11 个 .jar
文件,但谁愿意这样做并在其源存储库中包含二进制文件?
Will the code stay the same for Android?
是的,从 Smack 4.1 开始,Smack 就是 Smack。因此,无论您是否使用 Android,您都可以引用相同的 javadoc。请注意,aSmack 也是如此,因为它只是 Smack 到 Android 的一个端口。
1:如果我错了,请纠正我,但我上次尝试是不可能的。在此期间情况可能会好转。
关于java - 如何在 Android 中使用 Smack 4.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26965506/