Skip to content

Latest commit

 

History

History
73 lines (62 loc) · 1.85 KB

08-reseau.asc

File metadata and controls

73 lines (62 loc) · 1.85 KB

Android

Réseau

  • Rappel des spécificités du mobile

  • Faire des appels réseau sur Android

  • Parsing des résultats

Le réseau sur mobile

  • Les premiers mobiles nous ont apporté la mobilité

  • La connectivité était limitée

  • Aujourd’hui on a :

    • Une meilleure mobilité (mais moins d’autonomie…​)

    • Une meilleure connectivité

    • Plein d’applications qui utilisent des données et services via Internet

Sur Android

  • Plusieurs options de packages pour gérer nativement les appels réseau :

    • java.net – (Socket, URL)

    • org.apache - (HttpRequest, HttpResponse)

    • android.net – (URI, AndroidHttpClient, AudioStream)

Envoi de requêtes HTTP

  • java.net.Socket

  • android.net.http.AndroidHttpClient (deprecated)

  • java.net.HttpURLConnection

Les websockets

  • Voir projet d’exemple (NetworkDemo), package socket.

  • Très bas niveau, surtout utile pour des échanges binaires

HttpURLConnection

  • Voir projet d’exemple (NetworkDemo), package url.connection

  • Toutes les références au protocole ont été supprimées

Traiter une requête Http

  • Des formats variés :

    • Binaire

    • JSON

    • Xml

Parsing JSON

  • Voir projet d’exemple (NetworkDemo), package json

  • Il y a de nombreuses implémentations

Parsing XML

  • DOM ⇒ arbre de noeuds

  • SAX ⇒ Streaming

  • PULL ⇒ Iteration

Pull Parsing

  • Voir projet d’exemple (NetworkDemo), package xml

  • Utiliser au choix :

    • KXmlParser via XmlPullParserFactory.newPullParser()

    • ExpatPullParser, via Xml.newPullParser()

Librairies

  • Comme déjà vu, la librairie la plus utilisée pour encapsuler les appels réseau :

    • Retrofit (de Square)

  • Différents parsers JSON :

    • GSON

    • Jackson

    • Moshi

  • Et XML :

    • Simple XML

    • Woodstox (SAX)