7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
|
|
1 | |
Загрузка данных с удалённого сервера19.09.2015, 03:03. Показов 5655. Ответов 23
Метки нет (Все метки)
Здравствуйте! Подскажите пожалуйста, как лучше, правильно или предпочтительнее, загружать данные с удаленного сервера, в мобильное приложение? А именно через какой загрузчик.
Данные№1 - Текст Данные№2 - Текст+Изображение в виде картинок Есть сторонние библиотеки типа: 1.Retrofit. 2.Volley. 3.А так-же можно использовать загрузка данных не используя эти библиотеки, а через AsyncTask. 4.Так-же, теоретически, можно использовать Loader, стандартный класс Android SDK. Так как все-таки правильно, или предпочтительнее, в этих двух случаях Данные№1, Данные№2, использовать загрузку данных?
0
|
19.09.2015, 03:03 | |
Ответы с готовыми решениями:
23
Загрузка Xml с сервера и отображение данных в приложении Загрузка файла с сервера Загрузка документа с удалённого сервера через Proxy Динамический текст, загрузка текстовых файлов с удалённого сервера |
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
|
|
21.09.2015, 17:01 | 2 |
Через AsyncTask (или ему подобные) это точно, чтоб приложение не подвисало. А вот формат, хз, я выбрал текстовый header + данные в base64 строках. Это, конечно, не оптимально, но просто в реализации.
1
|
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
|
|
22.09.2015, 04:32 [ТС] | 4 |
YuraAAA,
json,только для передачи текстовой информации, в нем нельзя передавать картинки. Или можно? XMPP(можно передавать все, насколько я понял). А какие еще форматы передачи данных Вы бы посоветовали и какие библиотеки или стандартные средства AndroidSDK, если необходимо передавать: 1.Текст+Графический файл. 2.Текст+Видео+графический файл. 3.Текст. Добавлено через 37 минут dvnisawesome, header - что вы имеете в виду? Header/Footer ? Это же вьюшки для списков.
0
|
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
|
|
22.09.2015, 05:27 | 5 |
Через base64 можно передать что угодно.
Описание данных, количество тех же картинок, например. Чтоб принимающая сторона точно знала, сколько будет данных и каких именно.
1
|
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
|
|
22.09.2015, 05:59 [ТС] | 6 |
dvnisawesome, То есть Base64 - это метод кодирования данных а не передачи их. А передавать их можно в json например.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
22.09.2015, 11:56 | 7 |
semiromid, также можно через OkHTTP. Вопрос-то в чём? Какой библиотекой обеспечить транспортный уровень доступа к данным? Проверить, изменились ли данные, и если нет, то взять из кэша?
1
|
22.09.2015, 12:10 | 8 | |||||
semiromid, я бы не использовал Base64, а взял линки на картинки/видео
1
|
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
|
|
22.09.2015, 13:50 [ТС] | 9 |
YuraAAA, А с чем связан Ваш выбор склоняющейся к линкам на картинки вместо того что бы использовать Base64?
Добавлено через 5 минут CoolMind, Да, и в этом тоже заключается вопрос.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
22.09.2015, 15:30 | 11 |
semiromid, для работы с картинками есть минимум пять библиотек: UIL, Picasso, Fresco, Glide, Malevich и несколько других. Они дают возможность работы с кэшем. Но у каждой есть свои минусы. Также есть проблема обновления картинок в случае, если URL не изменился, а картинка поменялась.
1
|
22.09.2015, 16:04 | 12 |
CoolMind, когда я работаю с серверсайдом (да и не только я ), обычно делаю так:
Залили на сервер файл - даём ему имя (как правило, это UUID). Так что смена картинки при том же URL я не видел =)
1
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
23.09.2015, 10:11 | 13 |
YuraAAA, да, это нормальный подход. Но изредка встречается ненормальный, когда данные меняются, а URL остаётся. На некоторых сайтах так делается для аватарок.
1
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
||||||
23.09.2015, 14:10 | 14 | |||||
Спрошу тут дабы не плодить. Скачиваю много картинок с сайта через обычный IntentService.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
23.09.2015, 14:16 | 15 |
Rube, а картинки прям файлами обязательно нужны? Или просто показывать их нужно?
2
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
23.09.2015, 14:49 | 16 |
Spelcrawler, файлами ага, т.к. офлайнридер. Вывод через webview. Html и картинки сохраняю в files.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
23.09.2015, 14:53 | 17 |
Rube, glide умеет кэшировать картинки сам и асинхронно их подставлять в ImageView, прямо по url. Если нужна картинка с одним url в нескольких местах - он ее только один раз загружает. В общем удобно. Но не уверен что в этом случае подойдет.
1
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
23.09.2015, 15:05 | 18 |
Не, у меня типо новостей, без ImageView. Такое чувство, что IntentService пропускает файлы, т.к. их слишком много. Хотя думаю надо оптимизировать логику, у меня сейчас посылается по 1-му урл в сервис для закачки, а надо бы слать сразу массив, а уже в сервисе в цикле грузить. Правильно думаю?
Пример: надо загрузить 15 новостей - в каждой новости по 30 изображений. Сейчас все 150 картинок поочередно шлются в сервис. Будет: 15 очередей по 30 картинок.
0
|
23.09.2015, 15:16 | 19 | ||||||||||
Rube, а если UniversalImageLoader ? Правда я не уверен, что ему можно указывать куда сохранять, надо глянуть.
Хотя если это просто загрузчик, то можно делать просто: Тред для закачки:
1. Вызываем init, передаём ему кэш директорию. Сразу запускается thread, реализуем паттер producer-consumer чтобы не было задержек. 2. Наш Consumer thread бесконечный, ждёт из коллекции новый url для закачки. 3. Получили url - через executor (в моём примере он 10-ти потоковый) запускаем Download thread. 4. Если он нам больше не нужен - вызываем stop - останавливаем consumer thread, останавливаем наш executor. Ну это так, на быструю руку.
3
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
23.09.2015, 15:51 | 20 |
0
|
23.09.2015, 15:51 | |
23.09.2015, 15:51 | |
Помогаю со студенческими работами здесь
20
Не получается присоеденить файл базы данных, при открытии с удалённого сервера Запуск exe с удалённого сервера Запуск отчёта с удалённого сервера Объединение двух локальных сетей и удалённого сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |