Порівняння мережевих бібліотек Android: OkHTTP, Retrofit та Volley [закрито]


579

Питання, що складається з двох частин від розробника iOS, який вивчає Android, працюючи над проектом Android, який зробить різноманітні запити від JSON до зображення для потокового завантаження аудіо та відео:

  1. На iOS я широко використовував проект AFNetworking . Чи існує еквівалентна бібліотека для Android?

  2. Я читав на OkHTTP та Retrofit by Square, а також Volley, але ще не маю досвіду розробки з ними. Я сподіваюся, що хтось міг би надати конкретні приклади найкращих випадків використання для кожного. З того, що я прочитав, здається, що OkHTTP - найнадійніший із трьох, і міг би впоратися з вимогами цього проекту (згаданого вище).


3
Якщо ви використовуєте внутрішню реалізацію HttpUrlConnection, вам слід врахувати, що HttpUrlConnection використовує тихі повторення для POST-запитів. Це спричинило мені багато кривд. Більше інформації читайте тут: stackoverflow.com/a/37675253/2061089
оли


Залп може виконувати застарілі Apache, HttpUrlConnection, Apache-4 або OkHttp. Де Retrofit дійсно працює лише у OkHttp. Модернізація набагато простіше налаштувати.
bitsabhi

Відповіді:


647

Я сподіваюся, що хтось може надати конкретні приклади найкращих випадків використання для кожного.

Використовуйте модернізацію, якщо ви спілкуєтесь із веб-службою. Використовуйте бібліотеку однолітків Пікассо, якщо ви завантажуєте зображення. Використовуйте OkHTTP, якщо вам потрібно робити операції HTTP, які лежать поза межами Retrofit / Picasso.

Воллі приблизно конкурує з Retrofit + Picasso. З іншого боку, це одна бібліотека. З боку мінусу - це один недокументований, непідтримуваний, "киньте код через стіну і зробіть на ньому | презентацію I | O"

EDIT - Google зараз офіційно підтримує Volley. Будь ласка, зверніться до Посібника для розробників Google

З того, що я прочитав, здається, що OkHTTP є найнадійнішим із 3-х

Модернізація автоматично використовує OkHTTP, якщо він доступний. Існує історія Джейка Уортона, яка з'єднує Воллі з ОКХТП.

і може впоратися з вимогами цього проекту (згаданого вище).

Ймовірно, ви не будете використовувати жоден з них для "потокового завантаження аудіо та відео", за допомогою звичайного визначення "потокове". Натомість медіа-рамка Android буде обробляти ці HTTP-запити для вас.

Зважаючи на це, якщо ви збираєтеся спробувати зробити свій власний протокол HTTP, OkHTTP повинен обробляти цей сценарій; Я не пригадую, наскільки добре Воллі впорався з цим сценарієм. Ні Retrofit, ні Picasso для цього не розроблені.


4
Дякуємо @CommonsWare за стисну відповідь та замітку про незадокументований трюк Воллі (отримав таке враження, особливо в порівнянні з іншими проектами). Однозначно допомагає мені збивати речі з землі.
Альфі Ханссен

18
Ще одна чудова відповідь від @CommonsWare. Чи може хтось слідкувати за тим, як RoboSpice вписується у все це?
користувач1923613

3
@ user1923613 github.com/octo-online/robospice, якщо ви використовуєте залп для мережевих дзвінків, тоді не потрібно використовувати robospice! Навесні Android або Google Http Client або Retrofit). Якщо ви хочете швидкої роботи в мережі та завантаження зображень із надійним мережевим клієнтом, ви можете піти на залп! але ви можете замінити звичайне завдання Android для асинхронізації, використовуючи Robospice для кращої продуктивності та уникнення витоку пам'яті!
LOG_TAG

4
@frostymarvelous: Я вважаю, що недокументовані та непідтримувані документи - це більш ніж достатнє виправдання. Не так, як Google не вистачає системи для більш офіційного поводження з такими предметами (наприклад, Бібліотека підтримки Android). За два роки, що минули після цієї відповіді, з позитивного боку, існує певна підтримка громади, включаючи деяку неофіційну упаковку коду в артефакт.
CommonsWare

4
@AbhinavVutukuri: Ви коментуєте відповідь більше двох років тому. На той час документації не було.
CommonsWare

361

Дивлячись на перспективу Воллі, ось деякі переваги для вашої вимоги:

Воллі, з одного боку, повністю орієнтований на обробку окремих, невеликих HTTP-запитів. Тож якщо обробка вашого запиту HTTP має деякі химерності, Воллі, ймовірно, має гачок для вас. Якщо, з іншого боку, у вас є химерність обробки зображень, єдиний справжній гак у вас є ImageCache . "Це не нічого, але це теж не багато!" але він має більше інших переваг, як-от одного разу, коли ви визначаєте свої запити, використання їх з фрагмента чи діяльності безболісне на відміну від паралельних AsyncTasks

Плюси і мінуси Воллі:

То що приємного у Воллі?

  • Мережева частина не лише для зображень. Залп призначений бути невід’ємною частиною вашого заднього кінця. Для нового проекту, заснованого на простому REST-сервісі, це може бути великим виграшем.

  • NetworkImageView є більш агресивним щодо очищення запитів, ніж Picasso, і більш консервативний у своїх моделях використання GC. NetworkImageView покладається виключно на потужні посилання на пам'ять і очищає всі дані запиту, як тільки буде зроблено новий запит для ImageView або як тільки ImageView переміститься за екраном.

  • Продуктивність. Ця публікація не буде оцінювати цю претензію, але вони, очевидно, подбали про те, щоб бути обережними у своїх моделях використання пам'яті. Також Воллі докладає зусиль, щоб зібрати зворотні дзвінки в основний потік, щоб зменшити зміну контексту.

  • У Воллі, очевидно, є і ф'ючерси. Перевірте RequestFuture, якщо вас цікавить.

  • Якщо ви маєте справу зі стислими зображеннями високої роздільної здатності, Volley - єдине рішення, яке тут добре працює.

  • Воллі можна використовувати з Okhttp (Нова версія Okhttp підтримує NIO для кращої продуктивності)

  • Воллі прекрасно грає з життєвим циклом діяльності.

Проблеми з Воллі:
Оскільки Воллі є новим, деякі речі ще не підтримуються, але це виправлено.

  1. Запити з декількох деталей (рішення: https://github.com/vinaysshenoy/enhanced-volley )

  2. код статусу 201 приймається як помилка, код статусу від 200 до 207 - це зараз успішні відповіді. (Виправлено: https://github.com/Vinayrraj/CustomVolley )

    Оновлення: в останньому випуску Google залпу зараз виправлена помилка кодів статусу 2XX ! Завдяки Ficus Kirkpatrick!

  3. це менш задокументовано, але багато людей підтримують залп у github, документацію на зразок java можна знайти тут . На веб-сайті для розробників android ви можете знайти посібник з передачі мережевих даних за допомогою Volley . А вихідний код залпу можна знайти в Google Git

  4. Для вирішення / зміни Політики переадресації Volley Framework використовуйте Volley з OkHTTP (CommonsWare згадувалося вище)

Також ви можете прочитати це порівняння завантаження зображення Воллі з Пікассо

Модернізація:

Він випущений компанією Square , пропонує дуже прості у використанні API REST (оновлення: Voila! З підтримкою NIO)

Плюси модернізації:

  • Порівняно з Volley, код REST API Retrofit короткий і забезпечує чудову документацію API та має гарну підтримку в громадах! Дуже легко додавати в проекти.

  • Ми можемо використовувати його з будь-якою бібліотекою серіалізації, з обробкою помилок.

Оновлення: - У Retrofit 2.0.0-beta2 є дуже багато хороших змін

  • версія 1.6 Retrofit з OkHttp 2.0 тепер залежить від Okio для підтримки java.io та java.nio, що значно полегшує доступ, зберігання та обробку даних за допомогою ByteString та Buffer, щоб зробити якісь розумні речі для збереження процесора та пам'яті. (FYI: Це нагадує мені про бібліотеку OIN Koush з підтримкою NIO!) Ми можемо використовувати Retrofit разом з RxJava для комбінування та ланцюга REST-дзвінків за допомогою rxObservables, щоб уникнути потворних ланцюгів зворотних викликів (щоб уникнути пекло зворотного дзвінка !!) .

Мінуси модернізації для версії 1.6:

  • Функція обробки помилок, пов’язаних із пам’яттю, не є хорошою (у старих версіях Retrofit / OkHttp) не впевнена, що вона покращена за допомогою підтримки Okio з Java NIO.

  • Мінімальна допомога в нарізанні може призвести до зворотного дзвону, якщо ми використовуємо це неналежним чином.

(Усі вищезгадані мінуси вирішені в новій версії бета-версії Retrofit 2.0)

===================================================== =======================

Оновлення:

Базисні показники продуктивності Android Async vs Volley vs Retrofit (мілісекунди, нижче значення краще):

Базисні показники продуктивності Android Async vs Volley vs Retrofit

(FYI вище інформації про етапи модернізації покращиться завдяки підтримці Java NIO, оскільки нова версія OKhttp залежить від бібліотеки NIO Okio)

У всіх трьох тестах з різними повторами (1 - 25 разів), Воллі був десь від 50% до 75% швидше. Модернізація працює на вражаючих від 50% до 90% швидше, ніж AsyncTasks, та сама кількість разів потрапляє на ту саму кінцеву точку. У тестовому наборі інформаційної панелі це перекладено на завантаження / аналіз даних на кілька секунд швидше. Це велика різниця в реальному світі. Для того, щоб зробити тести справедливими, час для AsyncTasks / Volley включав розбір JSON, оскільки Retrofit робить це для вас автоматично.

RetroFit Перемагає у тесті на еталон!

Зрештою, ми вирішили поїхати з Retrofit для нашого застосування. Це не тільки смішно швидко, але й добре поєднується з нашою існуючою архітектурою. Нам вдалося створити батьківський інтерфейс зворотного виклику, який автоматично виконує обробку помилок, кешування та розширення сторінок без особливих зусиль для наших API. Для того, щоб об'єднатись у Retrofit, нам довелося перейменувати наші змінні, щоб зробити наші моделі GSON сумісними, написати кілька простих інтерфейсів, видалити функції зі старого API та змінити наші фрагменти, щоб не використовувати AsyncTasks. Тепер, коли у нас декілька фрагментів повністю перетворені, це досить безболісно. Були певні болі та проблеми, які нам довелося подолати, але загалом це пройшло гладко. На початку ми зіткнулися з декількома технічними проблемами / помилками, але Square має фантастичну спільноту Google+, яка змогла нам допомогти в цьому.

Коли використовувати Volley ?!

Ми можемо використовувати Volley, коли нам потрібно завантажувати зображення, а також використовувати API REST !, система черги викликів мереж потрібна одночасно для багатьох n / w запитів! Також Воллі має кращі помилки, пов'язані з пам'яттю, ніж Retrofit!

OkHttp можна використовувати з Volley, Retrofit використовує OkHttp за замовчуванням! Він має підтримку SPDY , об'єднання з'єднань, кешування дисків, прозоре стиснення! Останнім часом він отримав деяку підтримку java NIO з бібліотекою Okio .

Джерело, кредит: залп проти модернізації містера Джоша Руеша

Примітка. Щодо потокового потоку, це залежить від того, який тип потоку ви хочете, як RTSP / RTCP.


@ Jan1337z +1 для інформації! Я оновив його! android.googlesource.com/platform/frameworks/volley
LOG_TAG

4
@LOG_TAG було б цікаво порівняти RoboSpice у вашому зразку. Ми навіть пропонуємо модуль модернізації, тому я вважаю, що для цього знадобиться дуже мало змін. Чи є джерело десь? Перевага RS полягає в тому, що він належним чином обробляє життєвий цикл діяльності, яка виконує мережеві запити, і ми також надаємо прозоре кешування, я думаю, накладні витрати будуть невеликими порівняно з чистим запитом на оновлення.
Snicolas

@Snicolas Я отримав результати тестування в блозі Джоша Руша, ви можете побачити конверсії між Фікусом Кіркпатріком (засновником Воллі), Джошем Рушем! Він ще ніде не ділився тестовим проектом порівняльного тестування! FYI Я щойно почав вивчати ваш RoboSpice із зразком модернізації, що стикається з цим питанням сповіщення :)
LOG_TAG

3
Привіт! Щодо запитів на багатосторонню участь у Воллі, я думаю, що ми можемо використовувати MultipartEntityBuilderв ньому httpmimeбібліотеку.
БНК

2
Хтось ще перевіряв ці орієнтири? Оскільки бібліотека апач-http застаріла в M (і я використовував її для багатоповерхівця), я вирішив перенести свій мережевий код на Retrofit. Я спочатку змінив один із викликів GET, щоб отримати купу об’єктів із сервера. Я приуротив Retrofit vs AsyncTask (з моїм власним розбором JSON). Виступ був дуже близьким, не в 3 рази покращившись, як показано у стовпці "Одна дискусія" таблиці. Зрозуміло, що отриманий код набагато чистіший, і мені не довелося писати власний аналізатор JSON, але для одного запиту GET покращення не було.
Гарі Кіпніс

44

RoboSpice Vs. Воллей

Від https://groups.google.com/forum/#!topic/robospice/QwVCfY_glOQ

  • RoboSpice (RS) - сервісна та більш шаноблива філософія Android, ніж Volley. Volley - це нитка, і це не спосіб, який має відбуватися обробка фонів на Android. Зрештою, ви можете викопати обидві губи і виявити, що вони досить схожі, але наш спосіб зробити фонову обробку більш орієнтований на Android, це дозволяє нам, наприклад, сказати користувачам, що RS насправді робить щось у фоновому режимі, що було б важко для залпу (насправді це зовсім не так).
  • RoboSpice і залп пропонують приємні функції, такі як пріоритетність, повторна політика, скасування запиту. Але RS пропонує більше: більш просунуте кешування, і це велике - управління кешем, агрегація запитів, більше функцій, таких як повторне підключення до очікуваного запиту, розробка терміну дії кешу, не покладаючись на заголовки сервера тощо.
  • RoboSpice робить більше за межі UI Thread: залп знецінить ваші POJO на головній нитці, що моє жахливо. З RS ваш додаток буде більш чуйним.
  • З точки зору швидкості нам точно потрібні показники. RS вже зараз швидко надходить, але ми все ще не маємо поставити тут. Теоретично Воллі повинен бути трохи швидшим, але РС зараз масово паралельний ... хто знає?
  • RoboSpice пропонує великий діапазон сумісності з розширеннями. Ви можете використовувати його з okhttp, модернізацією, ormlite (бета-версією), jackson, jackson2, gson, xml-серіалізатором, клієнтом google http, Spring android ... Досить багато. Залп можна використовувати з ok http і використовує gson. Це воно.
  • Volley пропонує більше цукру в інтерфейсі, ніж RS. Volley надає NetworkImageView, RS надає адаптер спикерів. Що стосується особливості, це не так далеко, але я вважаю, що Воллі в цій темі є більш досконалим.
  • Понад 200 помилок було вирішено в RoboSpice з моменту її початкового випуску. Він досить міцний і широко використовується у виробництві. Воллі менш зрілий, але його база користувачів повинна швидко зростати (ефект Google).
  • RoboSpice доступний на Maven central. Воллі важко знайти;)

Robospice використовує Android-сервіси для REST-дзвінків, ми можемо використовувати Robospice з Retrofit, щоб мінімізувати зусилля для розбору gson, таким же чином, як ми можемо використовувати Volley (на основі протектора) з Robospice? (не впевнений, що це правильно запитати) Я просто шукаю залп із сервісом!
LOG_TAG

1
Залп зі службою в основному є RS. Або, хронологічно кажучи, Воллі - RS без обслуговування і мало інших функцій, відсутніх. І так, ви можете використовувати Retrofit з RS, а також навіть додати okhttp, якщо хочете.
Snicolas

7
Чому залп важко знайти? compile 'com.mcxiaoke.volley:library:1.0.+'
Роб

1
@Rob був час, коли клон mcxiaoke був недоступний. Вам довелося вручну включити залп у свій додаток.
frostymarvelous

"залп десеріалізує ваші POJO на основній нитці". Ви можете отримати повернені дані JSON та десеріалізувати їх самостійно окремим потоком, якщо це проблема.
AndroidDev

20

AFNetworking для Android:

Швидкий Android Networking є тут

Швидка мережева бібліотека Android підтримує всі типи запитів HTTP / HTTPS, як GET, POST, DELETE, HEAD, PUT, PATCH

Швидка мережева бібліотека Android підтримує завантаження файлів будь-якого типу

Швидка мережева бібліотека Android підтримує завантаження файлів будь-якого типу (підтримує багаточастинне завантаження)

Швидка мережева бібліотека Android підтримує скасування запиту

Швидка мережева бібліотека Android підтримує встановлення пріоритету перед будь-яким запитом (НИЗЬКИЙ, СЕРЕДНІЙ, ВИСОКИЙ, НЕМОВНИЙ)

Швидка мережева бібліотека Android підтримує RxJava

Оскільки він використовує OkHttp як мережевий шар, він підтримує:

Швидка мережева бібліотека Android підтримує підтримку HTTP / 2, дозволяє всім запитам до одного хоста поділитися сокетом

Швидка мережева бібліотека Android використовує пул з'єднань, який зменшує затримку запиту (якщо HTTP / 2 недоступний)

Прозорий GZIP зменшує розміри завантаження

Швидка мережева бібліотека Android підтримує кешування відповідей, що дозволяє уникнути мережі повністю для повторних запитів

Спасибі: Бібліотека створена мною


1
Ви заявляєте, що ваша бібліотека підтримує HTTP / 2, але ви не говорите, чи існує підтримка API для підтримки HTTP / 2. Я розумів, що рівень Android API менше 5,0 не мав правильних методів шифрування SSL для підтримки HTTP / 2. Не стукаючи, просто намагаюся повністю оцінити запропоноване рішення.
DoctorD

@AmitShekhar: Я просто хотів знати, що саме найкраще для виклику API в Android. Я використовую мережеву бібліотеку Android, і що чудово реалізує Retrofit, Volley або Android Networking?
Parth Bhayani

@Amit Shekhar Наскільки ефективна швидка мережа Android для завантаження зображень із декількох частин, особливо якщо мова йде про низькі сценарії Інтернету?
користувач3135923

18

Async HTTP-клієнтський цикл проти Volley

Особливості мого проекту - це невеликі запити HTTP REST, кожні 1-5 хвилин.

Я довго використовую HTTP-клієнт async (1.4.1). Продуктивність краща, ніж використання HTC Vanilla Apache httpClient або HTTP-з'єднання URL. У будь-якому разі нова версія бібліотеки для мене не працює: бібліотека між винятками скорочує ланцюжок зворотних викликів.

Читання всіх відповідей мотивувало мене спробувати щось нове. Я вибрав HTTP-бібліотеку Volley.

Користуючись ним деякий час, навіть без тестів, я чітко бачу, що час відгуку зменшилось до 1,5x, 2x Volley.

Можливо, Retrofit краще, ніж клієнт Async HTTP? Мені потрібно спробувати. Але я впевнений, що Воллі не для мене.


Будь-який аналіз щодо Retrofit Vs AsyncHttpClient ??? Будь ласка, напишіть, якщо так @Sergey
IshRoid


Я використовую AsyncHttpClient протягом декількох років. Погана частина полягає в тому, що існує те, що github repo проходить 2 роки без комісії.
Вітор Гюго Швааб

Його більше не актуально, асинхронізація http занадто стара мода. Подумайте про зміну на іншу бібліотеку. Воллі також став дуже хорошим вибором.
Сергій Вакуленко

Сергій, @IshRoid я до сих пір шукаю відповідь на ваше запитання , я використовую AsyncHttpClient я повинен використовувати що - то інше , як RxJava Модернізований або будь-яку річ else..Please дай мені знати .. з нетерпінням чекає відповіді
Deep Dave

11

Просто додати трохи до дискусії з мого досвіду роботи з Воллі:

  1. Volley не обробляє потокове завантаження чи завантаження в жодному сенсі. Тобто, весь корпус запиту повинен бути в пам'яті, і ви не можете використовувати те, OutputStreamщоб записати тіло запиту в базовий сокет, а також не можна використовувати те, InputStreamщоб прочитати орган відповіді, як HttpURLConnectionце робиться в базовому . Отже, Воллі - поганий вибір для завантаження чи завантаження великих файлів. Ваші запити та відповіді мають бути невеликими. Це одне з найбільших обмежень Воллі, з якими я особисто стикався. Для чого це варто, OkHttp має інтерфейси для роботи з потоками.

  2. Відсутність офіційної документації дратує, хоча мені вдалося обійти це питання, прочитавши вихідний код, за яким досить легко дотримуватися. Більш турбує те, що, наскільки я можу сказати, у Воллі немає офіційних версій випуску і артефакту Maven або Gradle, і тому управління ним як залежністю стає більше головним болем, ніж, скажімо, будь-яка з бібліотек Square випустила . Ви просто клонуєте репо, збираєте банку, і ви самостійно. Шукаєте виправлення помилок? Отримати і сподіватися, що він є. Ви також можете отримати якісь інші речі; це не буде задокументоване. На мою думку, це фактично означає, що Воллі є непідтримуваною стороннім бібліотекою, хоча база коду є досить активною. Caveat emptor.

  3. Як нит, пов’язання типу Content-Type з класом / типом запиту (JsonObjectRequest, ImageRequest тощо) є деяким незручним і трохи зменшує гнучкість коду виклику, оскільки ви прив’язані до існуючої ієрархії типу запиту Воллі. Мені подобається прямолінійність просто встановити Content-Type як заголовка, як і будь-який інший (до речі, цього не робіть з Volley; ви отримаєте два заголовки типу вмісту!). Це лише моя особиста думка, і це можна вирішити.

Це не означає, що у Воллі немає корисних особливостей. Це, безумовно, робить. Легко налаштовуються політики повторної спроби, прозоре кешування, API скасування та підтримка планування запитів та одночасних з'єднань - чудові функції. Просто знайте, що він призначений не для всіх випадків використання HTTP (див. Пункт 1 вище), і що деякі головні болі пов'язані з тим, щоб використовувати Воллі у виробничому використанні у вашій програмі (пункт 2).


Повне завантаження пам'яті - це те, що я повільно вбиває мене. Слава богу, хтось ще згадав про це.
TheSunny

Бібліотека може також зробити захисну копію тіла запиту, тому споживання пам'яті для великих запитів може бути вдвічі більшим, ніж ви могли очікувати.
Jeff

9

Нещодавно я знайшов кришку під назвою ion, яка приносить трохи більше столу.

ion має вбудовану підтримку для завантаження зображень, інтегровану з ImageView, JSON (за допомогою GSON), файлів та дуже зручну підтримку з набором інтерфейсу.

Я використовую його в новому проекті, і поки результати були хорошими. Його використання набагато простіше, ніж Volley або Retrofit.


2
іон проти модернізації, який би ви порадили?
Sreekanth Karumanaghat

Модернізація краще, ніж іонна
Раджеш Кошти

4

Додавши до прийнятої відповіді та те, що сказав LOG_TAG .... для того, щоб Volley проаналізував ваші дані у фоновому потоці, ви повинні підкласирувати, Request<YourClassName>оскільки onResponseметод викликається в основному потоці, а розбір на основний потік може спричинити відставання інтерфейсу користувача, якщо ваша відповідь великий. Прочитайте тут, як це зробити.


1
Право ... залп аналізує реакцію на головну нитку, що спричиняє відставання ю-інтерфейсу, коли відгук дійсно великий.
Гопал Сінгх Сірві

3

Модернізація 1.9.0 проти RoboSpice

Я використовую обидва у своєму додатку.

Robospice працює швидше, ніж Retrofit, коли я розбираю вкладений клас JSON. Тому що Spice Manger зробить усе за вас. У програмі Retrofit вам потрібно створити GsonConverter та дезаріалізувати його.

Я створив два фрагменти в одній і тій же діяльності і назвав один і той же час двома однаковими URL-адресами.

09-23 20:12:32.830  16002-16002/com.urbanpro.seeker E/RETROFIT   RestAdapter Init
09-23 20:12:32.833  16002-16002/com.urbanpro.seeker E/RETROFIT calling the method
09-23 20:12:32.837  16002-16002/com.urbanpro.seeker E/ROBOSPICE initialzig spice manager
09-23 20:12:32.860  16002-16002/com.urbanpro.seeker E/ROBOSPICE Executing the method
09-23 20:12:33.537  16002-16002/com.urbanpro.seeker E/ROBOSPICE on SUcceess
09-23 20:12:33.553  16002-16002/com.urbanpro.seeker E/ROBOSPICE gettting the all contents
09-23 20:12:33.601  16002-21819/com.urbanpro.seeker E/RETROFIT deseriazation starts
09-23 20:12:33.603  16002-21819/com.urbanpro.seeker E/RETROFIT deseriazation ends

2

І ще один варіант: https://github.com/apptik/jus

  • Він модульний як Volley, але більш розширений і документація вдосконалюється, підтримуючи різні стеки HTTP та перетворювачі поза коробкою
  • У ньому є модуль для генерації відображень інтерфейсу серверного API, наприклад Retrofit
  • Він також має підтримку JavaRx

І багато інших зручних функцій, таких як маркери, трансформатори тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.