2

約200〜300MBのAndroidアプリで大規模なsqliteデータベースをパックしようとしています。私が読んだことから、私のオプションはそれをアセットフォルダーに入れ、実行時に対処することで、データが重複するか、実行時にWebからデータベースをダウンロードします。このアプリ用の Web サーバーを作成したくないので、データの重複の問題を回避するためにデータベースをインストールするだけの別のアプリを作成することを考えていました。

それらはすべてかなり厄介です。より良い解決策があるかどうか疑問に思っていましたか?

4

2 に答える 2

3

まず、200-300MB のデータベースをアセット フォルダに入れて単一の apk として配布することは許可されていないと思います。なぜなら、apk ファイル サイズのハード リミットは (Google のドキュメントによると) 50 MB であり、私には疑わしいからです。あなたのデータベースはそこまで圧縮します..Googleは、大きなファイルをAPKにパッケージ化するための「APK拡張ファイル」を導入しました。ここでそれらについてすべて読むことができます:http://developer.android.com/google/play/expansion-files.html

データベースファイルをコピーする必要があるため、重複データを処理する必要があることについて言及した問題は解決しないと思いますが(ただし、拡張ファイルの経験はありません)、少なくともこれはある意味で役立ちます独自の Web サーバーでデータベース ファイルをホストする必要はありません。上記のリンクのドキュメントをすばやくスキャンしたところ、拡張ファイルを使い終わったら捨ててはならないことが明確に記載されているため、その部分については助けにはなりません。

もちろん、「独自の Web サーバーのセットアップ」については、自分の Web サーバーをセットアップする必要さえありません。ファイルホスティングサービスを提供するパーティーはたくさんあります。おそらく、帯域幅の料金を支払う必要がありますが、ねえ.人々があなたのdbファイルをたくさんダウンロードするなら、それはあなたのアプリがうまくいっていることも意味します;-)

于 2013-03-14T12:41:30.350 に答える
0

apk 拡張ファイルのテストを行います。100 MB の sqlite データベースを使用してテスト アプリを作成し、apk とデータベースを Play ストアにアップロードしました。次に、アプリを電話にダウンロードすると、データベースも同時にダウンロードされました。データベースは自動的に名前が変更され、公開されているディレクトリに配置されました。

/storage/sdcard0/Android/obb/com.example.app/main.1.com.example.app.obb

アプリは問題なくデータベースを開くことができましたが、外部の読み取りおよび書き込み権限が必要でした。新しいデータベースと元のデータベースは少しずつ同じです。これは、私のユースケースに最適なソリューションのようです。

いくつかの問題があります。新しい Android 開発者コンソールは拡張ファイルのアップロードをサポートしていないため、古いものを使用する必要があります。Google では 2 つの拡張ファイルしか許可されていないため、一部のユースケースでは問題になる可能性があります。Google は、ファイルの名前を変更したり削除したりしてはならず、アプリが自動的にインストールされていない場合は、Google 自体からファイルをダウンロードできる必要があると述べています。

于 2013-03-15T23:15:55.013 に答える