Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

Вещь с Smack 4.1 заключается в том, что она сильно модулярна. Если вам нужен полнофункциональный Smack на Android, вам понадобится около 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, чтобы быть точным, не поддерживает загрузку и отладку с исходными вложениями 1. И это то, что вам явно нужно при работе с библиотеками с открытым исходным кодом.

Это, например, одна из причин, по которой я сам не использую плагин gradle. Тогда я не мог развить Smack (мне также нравится Eclipse, но это другая история).

Итак, мы вернулись к работе с Eclipse/ Ant для нашего Android-проекта. Smack 4.1 README сообщает вам использовать MavenToAndroidAnt Python3 script, который будет автоматически загружать артефакты и удалять старые из обновлений. Если вы подключите его к процессу сборки, это почти так же хорошо, как использование gradle , но также поддерживает исходные вложения.

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

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

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

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