Junior
Co se používá pro práci sítě v Androidu?
sobes.tech AI
Odpověď od AI
Pro práci se sítí v Androidu se používají:
HttpClient/HttpURLConnection (standardní třídy z Java, HttpURLConnection je preferováno v novějších verzích Androidu kvůli efektivitě).
Knihovny:
- Retrofit2: Oblíbená knihovna pro provádění HTTP požadavků s důrazem na deklarativní přístup a snadnou práci s JSON API.
- OkHttp: Výkonná a efektivní knihovna HTTP klienta, často používaná jako základ pro Retrofit.
- Volley: Vyvinutá Googlem, vhodná pro malé a střední síťové operace, má vestavěnou podporu kešování obrázků.
- AsyncHttpClient: Umožňuje provádět asynchronní HTTP požadavky, ale je již poněkud zastaralá ve srovnání s OkHttp a Retrofit.
RxJava/Kotlin Coroutines: Ačkoliv nejsou přímo knihovnami sítí, často se používají k řízení asynchronních síťových operací a zpracování odpovědí v reaktivním nebo korutinovém stylu.
Pro práci na nízké úrovni lze použít:
URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
try {
InputStream in = new BufferedInputStream(connection.getInputStream());
// Čtení dat z in
} finally {
connection.disconnect();
}
Příklad použití Retrofit:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: String): User // Použití suspend pro korutiny
}
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.client(OkHttpClient.Builder().build()) // Často používaný OkHttp
.build()
val service = retrofit.create(ApiService::class.java)
Volba konkrétního nástroje závisí na požadavcích projektu, jeho rozsahu a preferencích týmu. V moderních projektech se nejčastěji používá Retrofit2 s OkHttp ve spojení s Kotlin Coroutines nebo RxJava. Volley může být užitečný pro jednoduché případy a práci s obrázky.