2021-03-01 | Android | Base de données | Room
Programmation multi thread
- Les instructions exécutées dans un programme sont dans 1 thread
- Généralement, les instructions s'éxecutent de manière séquentielle
- On peut éxecuter plusieurs instructions parallèlement dans un multi thread
Exécution synchrone
Instructions éxecutées séquentiellement
Exécution asynchrone
Instructions éxecutées en parallèle
En android
Thread principal
- Interface gérée par 1 thread (uiThread)
- Seule thread qui modifie les élements de la vue et les interactions à l'utilisateur
- Si 1 instruction bloque le thread, l'interface ne réagit plus
Gestioin des threads
- La gestion des threads est de la responsabilité du développeur
- Android bloque certaines actions si elles s'éxecutent sur le thread principal
- Les opérations I/O ne sont pas autorisés sur le thread principal (BDD, Internet)
- Si les actions prennent plus de 1secondes, il ne faut pas le faire sur le thread principal
Synchronisation des threads
- Android permet de mettre automatiquement à jour l'interface à la fin d'une opération d'un thread secondaire
- Requete http
- BDD
- Image from url
Créer un thread
Le code ci-dessous permet de repasser la min au thread principal (le seule à avoir la main sur l'interface) :
Architecture component (librairies d'architecture)
Ensemble de librairies permettant de structurer une application Android :
- Robuste
- Testable
- Maintenable
Permet de comprendre facilement l'application et son code :
- Bonnes pratiques
- Code propre
- Réutilisation
- Peu de dépendances
- Faciliter la maintenance
Base de données
Classes et entités
Ci dessous une classe :
Ci dessous une classe transformée en entité pour la bdd :
Tout les champs doivent être public ou avoir un getter pour permettre à Room d'y accéder.
Relations
// plus tard
link in andorid.com => reference/android/arch/persistence/room/package-summary