web-dev-qa-db-ja.com

AndroidでSmack 4.1を使用する方法は?

私はこの答えを見ていました 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でも変わらないかどうかです。

25
Little Child

EclipseのAndroidプロジェクトにSmack 4.1を含めるにはどうすればよいですか?

Eclipse Javaプロジェクトに他のAndroidライブラリを含めるように。 .jarファイルをlibs/ディレクトリに置くことにより、EclipseのAndroidプラグインandAndroid Antビルドシステムは、それらをプロジェクトのクラスパスで使用できるようにし、結果の.apkに含めます。

Smack 4.1の特徴は、モジュール化されていることです。 Androidにフル機能のSmackが必要な場合は、11個の.jarファイルの周りに何かが必要です。 gradleを使用してAndroid St​​udioを使用できるようになりました。

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 St​​udio、または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:間違っている場合は修正しますが、前回試したときに不可能でした。その間に状況は良くなるかもしれません。

28
Flow