AndroidでレルムVSルーム【終了しました
質問
アプリを作っていて、その中でデータベースを使用する必要があります。今、新しくてホットなのでRoomを使うことを検討しています。しかし、Realmについても多くの素晴らしい話を聞いています。どなたか、それぞれを使うことの可能な利点を指摘していただけませんか?
調べたりドキュメントを読んだりしましたが、自分では理解する経験がありません。
EDIT :
久しぶりに、Roomを使う理由をもう一つ挙げます。RealmやTransformationsを使えばLiveDataと連携できますが、Roomを使えばLiveData(プラグインを使えばRXJava型も)を直接DBに返せるので、定型文や頭の痛い作業が省けます。
EDIT 2:
最初の編集に加え、RoomはKotlinのコルーチンをファーストクラスでサポートするようになったので、それらを使う予定がある場合はありがたいでしょう -> https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5
どのように解決するのですか?
領域
比較的高速で便利なライブラリで、すべてのリンクがシンプルに実装されており、これはデータベースのオブジェクト指向に関連している。優れたドキュメント。おそらく、現時点ではモバイルデバイスにデータを保存するための最良の選択肢の 1 つですが、マイナス面は、apk ファイルのサイズが 2.5 MB 増加したことくらいでしょう。
部屋
Android OS上でデータベースを操作するのに最適なソリューションとしてGoogle I / O 2017で発表された興味深いソリューションです。それは明示的なSQLリクエストを使用する必要があるという事実にもかかわらず、ライブラリは非常に便利であることが判明し、私は個人的にそれが好きだった。パフォーマンスについては、リードしているので、私はあなたがこの特定のライブラリを選択することをお勧めします。これの大きな利点は、ビルドインSQLiteデータベースに基づいています。このソリューションは、Googleによって提出されたので、それはすぐに人気が出て、したがって、それに沿って発生する問題への解決策を見つけることに問題はありません。
Realm はより多くの RAM を使用し、apk サイズ、ビルド時間を増加させます。だから私はRoomを好む。
比較対象があります。 https://github.com/AlexeyZatsepin/Android-ORM-benchmark
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] Google Play ストア内部テストのロールアウトが開始できない