私はこの答えを見ていました Androidチャットアプリ(Smack API))に独自のXMPPサーバーを使用 利用可能なXMPP APIについて学びます。Smackは良い選択のようです。
Smack 4.1より前は、aSmackに依存する必要がありました。 4.1以降、SmackはAndroidでネイティブに実行されます。 「はじめに」の質問がいくつかあります。
質問1:
Android EclipseのプロジェクトにSmack 4.1を含めるにはどうすればよいですか?
手順はこちら https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide はAndroidスタジオ
質問2:
Androidでもコードは変わりませんか?
ここで彼らの公式ドキュメントを参照しています: https://www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html
私が知りたいのは、APIの使用がAndroidでも変わらないかどうかです。
EclipseのAndroidプロジェクトにSmack 4.1を含めるにはどうすればよいですか?
Eclipse Javaプロジェクトに他のAndroidライブラリを含めるように。 .jar
ファイルをlibs/
ディレクトリに置くことにより、EclipseのAndroidプラグインandAndroid Antビルドシステムは、それらをプロジェクトのクラスパスで使用できるようにし、結果の.apk
に含めます。
Smack 4.1の特徴は、モジュール化されていることです。 Androidにフル機能のSmackが必要な場合は、11個の.jar
ファイルの周りに何かが必要です。 gradleを使用してAndroid Studioを使用できるようになりました。
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プラグインを使用しない理由の1つです。そのとき、私はSmackを開発できませんでした(Eclipseも好きですが、それは別の話です)。
AndroidプロジェクトでEclipse/Antを使用することに戻りました。 Smack 4.1 READMEは、 MavenToAndroidAnt Python スクリプトを使用するように指示します。これにより、更新時にアーティファクトが自動的にダウンロードされ、古いアーティファクトが削除されます。ビルドプロセスにフックすると、gradleを使用するのとほぼ同じですが、ソースの添付ファイルもサポートします。
もちろん、11個の.jar
ファイルを手動で追加することもできますが、ソースリポジトリにバイナリを追加したいのは誰ですか?
コードはAndroidでも同じですか?
はい、Smack 4.1以降、SmackはSmackです。したがって、Androidを使用しているかどうかに関係なく、同じjavadocを参照できます。これはaSmackにも当てはまることに注意してください。これは、SmackをAndroidに移植しただけだからです。
1:間違っている場合は修正しますが、前回試したときに不可能でした。その間に状況は良くなるかもしれません。