私は、このサイトやその他の情報を、Androidにあらかじめ埋め込まれたsqliteデータベースを含めるための最良の方法について収集しています。私はちょっと些細なことが必要な理由を理解していることを確認したいと思います...そうではありません。あらかじめ設定されたAndroidデータベース:作品をまとめようとしています
私の次の結論が正しいか?:間違っているのであれば、誰かが私に教えてください可能性が
- 主な理由多くの人々示唆資産フォルダから事前にデータベースファイルをコピーする「/データ/データ/ YOUR_PACKAGE/databases/"は、がアセットフォルダ内のデータベースファイルにアクセスしていないか、そうしすぎると(?)と表示されないためです。この2つの回答のどちらが正しいかはっきりさせることができますか?
- 資産フォルダ内のデータベースファイルは、その場所のファイルを更新できないため、別の場所にコピーする必要があります。それで、assetsフォルダ内のデータベースを開くことができたとしても、このようなデータベースを変更する必要がない場合にのみ有効です。 更新日:私はこの問題に焦点を当てた新しいスレッドを開始しました:Opening a read only database directly in the assets folder
- assetsフォルダ内のファイルは、(mp3などの特定のファイル拡張子がない限り)1Mbサイズのみです。この制限は、データベースが1Mbより小さい場合、または1Mbのチャンクでデータベースを分割し、実行時にそれらをまとめる気にならない場合、またはmp3拡張子を持つデータベースファイルを配布しても構いません。
- データベースファイルがassetsフォルダから "/ data/data/YOUR_PACKAGE/databases /"にコピーされた場合、ファイルが重複しないようにassetsフォルダで元のデータベースファイルを削除する方法はありません。これは、assetsフォルダのファイルを変更できないためです。
もう少し複雑なパズルを作る:実際には別の場所に資産フォルダからデータベースをコピーShip an application with a database が2.3を実行している一部のデバイスでは動作しません:私はこの質問の受け入れ答えにコメントしてい+。それは正確ですか?それが当てはまる場合、最初の実行時にWebからデータベースファイルをダウンロードするのが最善の方法でしょうか?
ありがとうございます。
これを読むと、http://www.mail-archive.com/[email protected]/msg28194.htmlアセット/生のフォルダにもサイズ制限があります。 –
assetsフォルダ内のすべてが静的であり、変更できないため、コピーする必要があります。 –
アセット、xmlドロアブルなどのリソースはapkに含まれているため、プログラムで更新することはできません。ルート権限はデータが「データ/データ」であることを確認するために必要です –