Как использовать Smack 4.1 В Android?

Я смотрел на этот ответ используя свой собственный сервер XMPP для Android чат приложение (Smack API) чтобы узнать о доступных API XMPP. Смак кажется хорошим выбором.

до Smack 4.1 приходилось полагаться на aSmack. Начиная с 4.1, Smack будет работать изначально на Android. У меня есть пара вопросов "для начала".

Вопрос 1:
Как включить Smack 4.1 в мой проект Android в Затмение?
Инструкции здесь 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.

1 ответов


Как включить Smack 4.1 в мой проект Android в Eclipse?

как вы включили бы любую другую библиотеку Java в проект Eclipse Android. Поставив .jar файлы libs/ каталог, Android плагин Eclipse и система сборки Android Ant сделает их доступными для проектов classpath и включит их в результирующий .apk.

дело с Smack 4.1 в том, что он сильно модулирован. Если вы хотите полнофункциональный Smack на Android вам нужно что-то около 11 .jar файлы. Теперь вы можете использовать Android Studio с помощью gradle, таким образом, включая Smack as просто, как добавление

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 README говорит вам использовать Питон3 MavenToAndroidAnt скрипт, который будет автоматически загружать артефакты и удалить старые версии. Если вы подключите его к процессу сборки, это почти так же хорошо, как использовать gradle но также поддерживает исходные вложения.

конечно, вы также можете добавить 11 .jar файлы вручную, но кто хочет это сделать и иметь двоичные файлы в исходном репозитории?

будет ли код оставаться неизменным для Android?

да, начиная с 4.1 пороть, пороть это, пороть. Таким образом, вы можете ссылаться на тот же javadoc, независимо от того, находитесь ли вы на Android или нет. Отмечать что это также верно для aSmack, так как это просто порт Smack для Android.

1: поправьте меня, если я ошибаюсь, но в последний раз, когда я пытался, это было невозможно. Тем временем ситуация может улучшиться.