Ответ 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: Исправьте меня, если я ошибаюсь, но в прошлый раз я пробовал, что это невозможно. Тем временем ситуация может стать лучше.