Я пишу мобильное приложение в «Android Studio», которое принимает ввод текста пользователем, использует «jsoup» (библиотека Java для сканирования в Интернете и т. Д.), Чтобы получить некоторые данные и представить их пользователю. Проблема в том, что у меня проблемы с производительностью.
Поиск и получение данных занимает в среднем около 9 секунд на эмулируемом оборудовании Nexus 5. Я использую класс AsyncTask для выполнения вычислений без блокировки основного потока.
Мой вопрос
«Могу ли я передать пользовательский входной параметр на сервер и запустить там вычислительно сложный кодовый сегмент и вернуть извлеченные данные в мобильное приложение? Как бы я подошел к этому?»
Следующий вопрос «Будет ли этот подход дать лучшую производительность?»
То, что я рассмотрел до сих пор, это слишком использовать PHP Exec () Функция для запуска функции на веб-сервере, но я не знаю, как передать аргумент из мобильного приложения на веб-сервер и как вернуть результат в мобильное приложение.
Я также рассмотрел возможность использования другой библиотеки для сканирования и сканирования в Интернете, например Scrapy (Python) или использования JavaScript (например, node-webcrawler).
Я открыт для любых предложений, но ядро приложения должно быть написано как мобильное приложение на Java.
Сначала я бы попытался запустить ваше приложение на реальном устройстве, чтобы проверить, не слишком ли велика задержка. В этом случае хорошим вариантом может быть простое серверное приложение, реализующее REST API. Не зная, что именно вы пытаетесь сделать, Scrapy и / или BeautifoulSoup — хорошие варианты, если вы хотите использовать Python. Если вам нужна связь в реальном времени с сервером, вы можете использовать веб-сокеты Tornado вместо REST API.
Других решений пока нет …