ご存知のように、このOSはYotaPhoneにインストールされているため、Android向けアプリケーションの開発に直接関与しています。 また、この投稿では、Android向けアプリケーションの開発のさまざまな側面をカバーする一連の出版物を公開し、私たちと他の専門家の両方の経験を共有します。 ところで、先ほど、SDKとYotaPhoneアーキテクチャの機能について既に説明しましたが、これもこの出版物のトピックを部分的に反映しています。
Android用のアプリケーションを開発している場合、ほとんどの場合、データをどこかに保存する必要があります。 クラウドサービスの1つを選択する(この場合は
SyncAdapterを使用すると便利
です )か、組み込みのSQLiteデータベースを使用できます。 2番目のケースでは、コンテンツプロバイダー(複数のアプリケーションでデータを使用する場合)または
ORMを使用してSQLクエリを記録するかを選択する必要があります。
この投稿では、アプリケーションで使用できるAndroid ORMのいくつかを見ていきます。
オームライト
おそらく、これが頭に浮かぶ最初の
ORMです。 ただし、これはAndroid ORMではなく、SQLデータベースをサポートするJava ORMです。
JDBC接続 、
Spring、 Androidなど、Javaが使用されるあらゆる場所で使用できます。
ここでは、テーブルを定義する各クラスの
@DatabaseField
や、クラスの各フィールドの
@DatabaseField
など、アノテーションが積極的に使用されています。
OrmLiteを使用してテーブルを定義する簡単な例:
@DatabaseTable(tableName = "users") public class User { @DatabaseField(id = true) private String username; @DatabaseField private String password; public User() {
これはオープンソースプロジェクトであり、
GitHubで見つけることができます。 詳細については、公式
ドキュメントを参照してください。
シュガーオーム
このORMは、Android専用に作成されました。 キットには、覚えやすく覚えやすいAPIが付属しています。 彼は必要なテーブルを自分で作成でき、1対1および1対多の関係を形成するための簡単な方法が含まれています。 また、SugarORMを使用すると、
save()
、
delete()
find()
(または
findById()
)の3つの関数だけで、作成、読み取り、更新、削除(CRUD)を簡単に行うことができます。
アプリケーションでSugarORMを使用するには、
AndroidManifest.xml
4つの
meta-data
を追加する必要があります。
<meta-data android:name="DATABASE" android:value="my_database.db" /> <meta-data android:name="VERSION" android:value="1" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" />
これで、テーブルに変換するクラスでこのORMを使用できます。
public class User extends SugarRecord<User> { String username; String password; int age; @Ignore String bio;
新しいユーザーの追加:
User johndoe = new User(getContext(),"john.doe","secret",19); johndoe.save();
19歳のすべてのユーザーの削除:
List<User> nineteens = User.find(User.class,"age = ?",new int[]{19}); foreach(user in nineteens) { user.delete(); }
SugarORMの機能の詳細については、
ドキュメントをご覧ください。
グリーンダオ
高性能が必要な場合は、必ず
GreenDAOをご覧ください 。 彼らのウェブサイトで述べられているように、「ほとんどのエンティティは、
毎秒数千の操作のスループットで追加、更新、またはダウンロードできます。」 そして、著者が彼らの子孫の能力についてcしていたら、これらの
有名なアプリケーションではほとんど使用されていなかったでしょう。 同じOrmLiteと比較して、GreenDAOはほぼ4.5倍高速です。
サイズは100 Kbの最小であり、実際には問題ではありません。
GreenStudioの使用例は、Android Studioを使用した
チュートリアルで見ることができます。 希望する人は、
GitHubのプロジェクトコードに精通し、
ドキュメントを調べることもでき
ます 。
ActiveAndroid
他の多くの
ORMと同様に、
ActiveAndroidは、SQLクエリを作成せずにSQLiteからレコードを保存および取得するのに役立ちます。
ActiveAndroidを使用するには、jarファイルを
/libs
フォルダーに追加する必要があります。
最初の手順で述べたように、
GitHubからソースコードをコピーし、
Mavenを使用し
てコンパイルする必要があります。 ActiveAndroidをプロジェクトに接続した後、
meta-data
タグを
AndroidManifest.xml
追加します。
<meta-data android:name="AA_DB_NAME" android:value="my_database.db" /> <meta-data android:name="AA_DB_VERSION" android:value="1" />
その後、必要に応じて
ActiveAndroid.initialize()
呼び出すことができます。
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActiveAndroid.initialize(this);
これで、アノテーションを使用して、Javaクラスとしてモデルを作成できます。
@Table(name = "User") public class User extends Model { @Column(name = "username") public String username; @Column(name = "password") public String password; public User() { super(); } public User(String username,String password) { super(); this.username = username; this.password = password; } }
これはActiveAndroidの簡単な使用例です。より複雑な使用方法については、プロジェクトの
ドキュメントをご覧ください。
レルム
レビューの最後のORMである
Realmは C ++で記述されており、デバイス上で(解釈なしに)実行され、非常に高いパフォーマンスを提供します。 iOSのバージョンコードは、興味のある方は
GitHubにあります 。 また、Objective-CおよびSwiftでRealmを使用するオフラインの例を見つけることもできます。
おわりに
もちろん、これらは自然界に存在する唯一のORMとはほど遠いものです。 このレビューの範囲外は、たとえば、
Andrormと
ORMDroidです。 確かに、すべての開発者はSQLを使用できるはずですが、クエリの作成は退屈で面倒なので、多くの既製ORMの1つを使用してプロセスを自動化してみませんか? 作業を大幅に簡素化できます。