0

いくつかの既存の SQLite3 DB への読み取り専用アクセスを使用するアプリを出荷する必要があります。それぞれが 100 MB のカップルであり、結合サイズの合計が 1 GB を超えています。データベースは Mac で作成され、現在出荷中の iOS アプリで使用されています。私はJavaにはかなり精通していますが、Androidは初めてです。

これは、次の疑問につながります。

1) データベースを変更する必要がありますか? SQLiteDatabase::rawQuery クエリでのみ使用する予定なので、バインドとメタデータは必要ありません。

2)DBが読み取り専用としてのみ使用される場合でも、最初の起動時にアプリバンドルからコピーするか、ユーザーディレクトリにダウンロードする必要があるのは本当に正しいですか?

3) クエリが遅くなる可能性があります。それらをスレッドで実行し、コールバックを介してデータを提供したいと考えています。これは、通常の Java (Runnable/Thread) で行われる方法ですか、それとも別の方法を使用する必要がありますか?

4) 私が明らかに見逃している Android 人にとって明らかなことは他にありますか?

4

2 に答える 2

1

sqliteヘルパークラスのまともな例については、こちらをご覧ください

  1. データベースを編集する必要はありません。私のsqliteデータベースは、sqlite3を介してアクセスする場合でも、androidを使用する場合でも同じように機能します。私のsqliteヘルパークラス

  2. それらをコピーすると、読み取りと書き込みが可能になります

  3. この答えについてはよくわかりません。上記のデータベースヘルパークラスは問題なく動作しているようですが(高速)、データベースは小さいです(500kb)

  4. そうは思わない

于 2012-06-06T13:28:38.117 に答える
1

1)いいえ、正常に動作するはずです。

2)はい、50Mbを超えるAPKを出荷する場合は、拡張ファイルを使用する必要があります。

3)コールバックを伴う簡単なバックグラウンドタスクには、ASyncTaskを使用できます。

于 2012-06-06T13:33:14.290 に答える