2. 2
● что представляет собой Retrofit и как он работает
● что представляет собой Volley и как он работает
● сравнение скорости работы библиотек
● что же лучше использовать?
3. 3
Retrofit
Описание запроса:
@GET("/v1/{id}")
Response getSomething(@Path("id") int id);
RestAdapter
RestAdapter APP_SERVER = new RestAdapter.Builder()
.setEndpoint(BuildConfig.HOST)
.setClient(new OkClient(new OkHttpClient()))
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
Выполнение запроса
Communicator.getAppServer().get();
4. 4
Volley
Описание запроса:
StringRequest stringRequest = new
StringRequest(Request.Method. GET, BuildConfig. HOST,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
Инициализация очереди
if (requestQueue == null) {
Network network = new BasicNetwork( new HurlStack());
requestQueue = new RequestQueue( new NoCache(), network);
requestQueue.start();
VolleyLog.DEBUG = true;
}
Выполнение запроса
requestQueue.add(stringRequest);
5. 5
Сравнение скорости выполнения без использования кеширования
50 запросов
Retrofit - 707,5мс
Retorfot СКО - 9,3
Volley - 871,36мс
Volley СКО - 9,94
300 запросов
Retrofit - 854.95мс
Retorfot СКО - 11,23
Volley - 847.79мс
Volley СКО - 12,8
6. 6
Сравнение скорости выполнения с использования кеширования
50 запросов
Retrofit - 354,9мс
Retorfot СКО - 10,2
Volley - 322,22мс
Volley СКО - 8,03
7. 7
Сравнение скорости выполнения параллельных запросов
Изменения в настройке Volley и Retrofit
Retrofit
.setExecutors(Executors.newFixedThreadPool(50), null)
Volley
requestQueue = new RequestQueue(new NoCache(), network, 50);
Volley ~8c Retrofit ~4c