Android開発に適したORMツールはありますか?
Android( 'gPhone')で作業している人は、適切なORMツールを見つけることができる場所を知っていますか?コードはJavaで記述され、データベースはSQLiteです。私が見つけたいのは、オブジェクト定義を与えられ、テーブルとCRUD関数を自動生成できるツールです(それは素晴らしいでしょう)、またはそれを除いて、テーブル定義、オブジェクト定義、 CRUD機能を自動生成します。問題は、これらすべてがAndroidフレームワーク内で発生する必要があるということです。このフレームワークには、データベースアクセスの動作方法に関する独自の規則があります。
ORMLiteパッケージ について$ 0.02を追加するだけだと思った。
Hibernateの軽量な代替品であり、ネイティブAndroid OSデータベース呼び出しを使用してAndroidでSQLiteをサポートします。また、他のアーキテクチャでJDBCを使用する他の多くのデータベースタイプもサポートしています。 ORMLiteの質問には Androidメーリングリスト があります。
この質問は老化することはできませんが、提案されたフレームワークは老化することができます。そこで、まず、比較のためにこのようなフレームワークで重要だと思うもののリストを示します。
- MavenまたはGradleアーティファクトはありますか? (明らかに、Mavenを使用するかgradleを使用するかに応じて大きなプラスになります)
- アクティビティを判断するためのコミットの概要を含む簡単な方法でコードにアクセスできますか? (githubでホストされているコードは、私にとっては間違いなくプラスです)
- リリース管理:リリース/リリースタグおよびアーティファクトはありますか? (githubでホストされ、git cloneを必要とするもの、またはダウンロード用のマスターtarballを提供するものがあります-リリースタグさえ設定されていなくても、READMEで大きなマイナスが設定されています)
- サイズが重要であるため、簡単に手が届く場所にいくつかのヒントを掲載しました(何もダウンロードしなかったため、リリースアーティファクトを提供しないプロジェクトからはサイズがありません)
また、上記のポイントに関する注意事項を含むフレームワークのリストを次に示します。 aBatis とHadiのように調べましたが、2011年以降に何らかのアクティビティがあったものだけを追加しました。
- http://ormlite.com 、Mavenアーティファクト、52 kB、SVN、ウェブサイトは...難しいですが、多くの例があるようです http:// ormlite.com/changelog.txt 2013年からの最終バージョンは4.48、 https://github.com/j256/ormlite-core (リリースタグ)、2015年3月の最終アクティビティ
- http://greendao-orm.com 、良好なメンテナンス、 Mavenアーティファクト 、フォーカス:高速パフォーマンス、小さいサイズ、少ないRAM消費。 Github: https://github.com/greenrobot/greenDAO/ (リリースタグ、> 2300スター)、最後のアクティビティ2014年11月
- https://github.com/roscopeco/ormdroid 、小さいサイズ、最後のアクティビティ2014年8月
- http://www.activeandroid.com 、 https://github.com/pardom/ActiveAndroid (> 2300つ星)、優れたメンテナンス、コミュニティ、リリースタグなし(マスターポイントへのダウンロードポイント)、Mavenアーティファクト、2014年10月の最後のアクティビティ
- http://droidparts.org 、 https://github.com/yanchenko/droidparts (リリースタグ、> 600スター)、依存関係注入、Mavenアーティファクト、アクティブ維持された
- http://www.androrm.com 、 https://github.com/androrm/androrm (リリースタグ)、最後のアクティビティ2014年1月2日(github)
- https://github.com/emilsjolander/sprinkles (リリースタグ、> 600スター)、2014年5月の最後のアクティビティ、Mavenアーティファクト(@AndroidGeckoに感謝)
- http://realm.io 、 https://github.com/realm/realm-Java は、ORMだけでなくSQLiteも置き換えます。iOS(リリースタグ、 > 1600スター)、積極的に維持され、Mavenリポジトリを所有
私はこれらのいずれも試したことはありませんが、現在のアクティブなプロジェクトをリストすることで、現在の読者に少し時間を割くことができます。上記のポイントのいくつかを満たす他のプロジェクトを知っていて、(ある程度)深刻な開発が進行している場合は、コメントを追加してください。
編集(2013年11月):リストをプロジェクトの現在のステータスに更新しました。これらのいくつかは、githubリポジトリにリリースタグとMaven/Gradleサポートを追加しました。よくできました!
編集(2015年4月):リストを更新し、Sprinkles(@AndroidGeckoのコメントによる)およびRealm.ioを追加しました。
私があなたがまさに求めているものは知りませんが、アーキテクチャ要件が柔軟な場合に役立つSQLiteの代替があります。チェックアウトする価値があるかもしれませんdb4o:
ActiveAndroid (20ドル) まさにあなたが必要としているもののように見えます。
ActiveAndroidが気に入りました。 Android専用に書かれているようです。それは私にとってプラスのような気がします。
RubyでいくつかのRailsの経験があります。ActiveRecordのRailsの方法が気に入ったら、このライブラリをすぐに使用できます。
https://github.com/ahmetalpbalkan/orman
Ormanフレームワークが役に立つかもしれません。それは特にそのために設計されており、非常に小さくて便利です。
AndroidのORMも探しています。 ActiveAndroid 、 NeoDatis 、および db4o をテストしましたが、最後の2つのうちの1つを使用すると思います。
NeoDatisとdb4oは本当に似ているので、最適なものを選択するためのアドバイスをお願いします。誰かが彼のプロジェクトでそれらの1つを使用していますか?無料アプリと有料アプリに使用しますが、Androidのライセンス制限はないようです。
ベンチマークがあります こちら NeoDatisはdb4oよりも高速であると思われますが、これに基づいて意見を述べることができるかどうかはわかりません。
もう1人の新人:Android-active-record。 SQLiteがサポートするAndroidの永続フレームワークは非常に軽量で使いやすい http://code.google.com/p/Android-active-record/
このツールは非常にシンプルで使いやすいです。
ActiveRecordJS Aptanaからは、gPhoneで実行する必要があるJavascript ORMです。 JaxerおよびGearsと連携するように設計されています。 Jaxer Adaptersを使用すると、SQLLiteに接続できます。
更新:私はそれを明確にしたとは思わないが、ActiveRecordJSはクライアント側を実行するORMであり、これはgPhoneであなたに有利かもしれない。
これは古い投稿ですが、トピックは依然として関連しています。したがって、質問で言及されているほとんどの問題を解決するための興味深い記事とニースのアプローチを共有したいと思います。
http://blog.codecentric.de/en/2011/04/Android-persistence-accelerated-small-inhouse-orm/
誰もがこれが私と同じくらい便利だと思うことを願っています!
私自身 DroidParts /http://droidparts.org/ はちょうどv0.5に達しました。 DI/ORMライブラリなどです。
あまりドキュメントはありませんが、サンプルアプリが含まれています。
Android用のJPA ORMの独自の実装を開発しました。まだ完全に機能が完全ではありませんが、@ Entity、@ Id、@ Columnアノテーションを使用してクラスに注釈を付けることができ、SQLiteデータベースに格納および取得できるJPAエンティティを取得できます。一般公開する前に、さらにいくつかの機能とクリーンアップが必要ですが、十分な関心がある場合は、努力が加速する可能性があります。
Db4oのネガティブな経験がありました(v。8):インデックス作成が正しく機能しませんでした(例外など)。そのため、オブジェクト構造にオブジェクトがあるときに、外部テーブルで重複を作成することを避ける方法を管理しませんでした。私の question のより詳細な説明。いつかそれが良くなることを願っています。