Царство VS Комната в Android
Я создаю приложение, и мне нужно использовать базу данных в нем. Я подумываю об использовании Room, так как сейчас он новый и горячий. Но я слышал много хорошего о Realm. Может ли кто-нибудь указать на возможные преимущества использования каждого из них?
Я сделал свое исследование и прочитал документы, но у меня нет опыта, чтобы понять это сам
Документы для комнаты
Королевские документы
РЕДАКТИРОВАТЬ:
Прошло некоторое время, и я могу указать еще одну причину использования Room. Хотя вы можете использовать Realm и Transformations, чтобы связать вещи с LiveData, но с Room вы можете напрямую вернуть LiveData (а также типы RXJava с помощью плагина) для БД, что избавит вас от стандартного кода и головной боли.
РЕДАКТИРОВАТЬ 2:
В дополнение к первому редактированию, Room теперь имеет первоклассную поддержку сопрограмм в Kotlin, поэтому, если вы планируете использовать их, это будет хорошо → https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5
Ответы
Ответ 1
область
Относительно быстрая и удобная библиотека, все ссылки просто реализованы, что связано с объектной ориентацией базы данных. Отличная документация. Возможно, это один из лучших вариантов хранения данных на мобильном устройстве в настоящий момент, минус может быть только увеличением размера apk файла на 2,5 МБ.
Номер
Интересное решение, представленное на Google I/O 2017, оптимально для работы с базой данных на ОС Android. Несмотря на то, что необходимо использовать явные sql-запросы, библиотека оказалась весьма удобной, и мне она понравилась лично. По производительности лидирует, поэтому я бы посоветовал вам выбрать эту конкретную библиотеку. Большим преимуществом этого является создание встроенной базы данных SQLite. Поскольку это решение, представленное Google, оно быстро станет популярным, и поэтому не будет проблем с поиском решений проблем, которые возникают вместе с ним.
Realm использует больше оперативной памяти и увеличивает размер apk, время сборки. Поэтому я предпочитаю номер.
Есть сравнение: https://github.com/AlexeyZatsepin/Android-ORM-benchmark
Ответ 2
Основная причина, по которой мы пытались использовать библиотеку для базы данных, - это то, что она позволяет нам моделировать наши объекты и упростить CRUD, у меня был хороший опыт работы с Realm, его очень легко настроить и работать, это быстро и гибко, но размер библиотеки был проблемой, можно уменьшить размер APK, разделив APK на цель сборки ABI, но я предпочел использовать GreenDao, потому что он основан на SQLite, хотя я думаю, что он имеет некоторые недостатки, как и любые другие библиотеки, но это был лучший вариант для меня.
Честно говоря, я еще не пробовал Room, но, кратко рассмотрев документы, вы найдете их более гибкими и дружелюбными к разработчикам. Будучи поклонником Google, я предпочитаю использовать библиотеку Google для ребят! Как я уже говорил, я предпочитаю слой поверх собственного SQLite для всей новой библиотеки баз данных.
Я попробую Room в своем следующем проекте и поделится своим опытом здесь в обновлении позже, надеюсь, что это поможет.