web-dev-qa-db-fra.com

Domaine VS Room in Android

Je construis une application et je dois utiliser une base de données à l'intérieur. J'envisage d'utiliser Room comme il fait neuf et chaud en ce moment. Mais j'ai aussi entendu beaucoup de choses intéressantes sur Realm. Quelqu'un peut-il indiquer les avantages possibles de l'utilisation de chacun?

J'ai fait mes recherches et lu la documentation mais je n'ai aucune expérience pour le comprendre moi-même

documents de salle

documentation sur le domaine

EDIT:

Cela fait quelques temps et je peux indiquer une autre raison d'utiliser Room. Bien que vous puissiez utiliser Realm et Transformations pour associer des éléments à LiveData, avec Room, vous pouvez directement renvoyer LiveData (ainsi que des types RXJava à l'aide d'un plug-in) pour la base de données, ce qui vous évitera de perdre du code.

EDIT 2:

En plus de la première édition, Room dispose désormais d’un support de première classe pour les routines dans Kotlin. Par conséquent, si vous envisagez de les utiliser, ce sera un Nice-have -> https://medium.com/androiddevelopers/room -coroutines-422b786dc4c5

49
Rainmaker

Domaine

Une bibliothèque relativement rapide et pratique, tous les liens sont simplement implémentés, ce qui est lié à l'orientation de la base de données. Excellente documentation. C’est peut-être l’une des meilleures options pour stocker des données sur un appareil mobile à l’heure actuelle, le seul inconvénient est une augmentation de la taille du fichier apk de 2,5 MB.

Pièce

Une solution intéressante présentée sur Google I/O 2017 comme optimale pour utiliser la base de données sur Android OS. Malgré le fait qu'il soit nécessaire d'utiliser des requêtes SQL explicites, la bibliothèque s'est révélée très pratique et m'a plu personnellement. La performance est en tête, je vous conseille donc de choisir cette bibliothèque. Le gros avantage de ceci est basé sur la base de données SQLite intégrée. Depuis cette solution, soumise par Google, elle deviendra rapidement populaire et, par conséquent, il n’y aura pas de problème pour trouver des solutions aux problèmes qui surviennent en même temps.

Le royaume utilise plus de RAM et augmente la taille de l'apk, le temps de construction. Donc je préfère la chambre.

Il y a comparaison: https://github.com/AlexeyZatsepin/Android-ORM-benchmark

64
Alexey Zatsepin

La raison principale pour laquelle nous avons poussé à utiliser une bibliothèque pour une base de données est le fait qu'elle nous a permis de modéliser nos objets et de simplifier CRUD. J'ai eu une bonne expérience avec Realm , il est très facile de configurer et de travailler. , c'est rapide et flexible, mais la taille de la bibliothèque posait problème, il est possible de réduire la taille de l'APK en divisant les APK sur le build ABI cible mais j'ai préféré utiliser GreenDao car il est basé sur SQLite, bien que je pense Elle présente certains inconvénients, comme toutes les autres bibliothèques, mais c’était la meilleure option pour moi.

Honnêtement, je n'ai pas encore essayé Room, mais avec un bref aperçu des documents, vous le trouverez plus flexible et plus convivial pour les développeurs. En tant que fan de Google, je préfère utiliser la bibliothèque de Google! Comme je l'ai déjà dit, je préfère une couche sur une SQLite native à une toute nouvelle bibliothèque de base de données.

Je vais essayer Room dans mon prochain projet et partager mon expérience ici dans une mise à jour plus tard, en espérant que cela aide.

7
Farshad Tahmasbi