如何在Android中使用Smack 4.1?

我正在看这个答案使用您自己的XMPP服务器的Android聊天应用程序(Smack API)了解可用的XMPP APIs。 Smack似乎是一个不错的select。

在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上保持不变。

Solutions Collecting From Web of "如何在Android中使用Smack 4.1?"

如何在Eclipse中的Android项目中包含Smack 4.1?

就像你会在Eclipse Android项目中包含任何其他Java库一样。 通过将.jar文件放在libs/目录中,Eclipse的Android插件 Android Ant构build系统将使它们可用于项目类path,并将它们包含在生成的.apk

与Smack 4.1的事情是,它是严重模块化。 如果你想在Android上有一个全function的Smack,你需要11个.jar文件。 现在,您可以使用Android Studio使用Gradle,这种方式包括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插件是精确的,不支持使用源附件下载和debugging1 。 这是您在使用开源库时显然需要的东西。

这就是我自己不使用gradle插件的原因之一。 然后我无法开发Smack(我也喜欢Eclipse,但这是一个不同的故事)。

所以我们又回到了为我们的Android项目使用Eclipse / Ant的工作。 Smack 4.1自述文件告诉您使用MavenToAndroidAnt Python3脚本,该脚本将自动下载工件,并在更新时删除旧工件。 如果你把它挂到你的构build过程中,它就像使用gradle一样好, 但也支持源附件

当然,您也可以手动添加11个.jar文件,但是谁愿意在源代码仓库中添加二进制文件呢?

Android的代码会保持不变吗?

是的,从Smack 4.1开始,Smack就是Smack。 所以你可以参考相同的javadoc,不pipe你是否在Android上。 请注意,对于aSmack来说也是如此,因为它只是Smack到Android的一个端口。

1:纠正我,如果我错了,但上次我试了这是不可能的。 与此同时情况可能会好转。