画像、動画、その他のリソースを多用するアプリを開発しています。このすべての情報を保存するための適切な場所はどこでしょうか?プログラムでrawフォルダーを処理するのがおそらく最も簡単であることがわかりますが、これに対する正しいポリシーは何ですか?
2 に答える
- アセットは、すでに圧縮されているアイテムにとっては本当に悪い場所です。アプリをビルドすると、アセットは圧縮されようとし、パフォーマンスに影響を与えます。減圧でも。
- Res / rawは、事前に画像を持っている場合、特にアプリの起動後に画像をダウンロードしたくない場合は、ユーザーに待機させるのに適した方法です。
SDカードはあなたに最大のスペースを与えるはずです。ただし、リソースをネットからダウンロードする必要があります。アプリケーションと一緒にリソースを出荷して、SDカードに移動する方法は考えられません。インターネットからリソースをダウンロードするときは、次のサブフォルダーにリソースを保存してください。
private File getResourceFilePath(String ralativePath, Context context) { if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { return new File(context.getExternalFilesDir(null), ralativePath); } else { return new File(context.getFilesDir(), ralativePath); } }
そうしないと、ユーザーのデバイスのギャラリーなどでリソースが利用可能になるリスクがあります。
resまたはrawフォルダーに保存すると、apkファイルに含まれるため、Playストアへのコンパイルとアップロードが長くなり、Playストアからのユーザーのダウンロードと更新にかかる時間が長くなることに注意してください。
メディアがかなり静的で数メガバイトを超える場合は、サイドでダウンロードされ、ユーザーが選択できる別のフォルダーに保存されるzipファイルにします。そうすれば、アプリケーションの更新とは別にメディアを更新できます。
zipファイルのルートをたどる場合は、GooglePlayが提供するAPK拡張ファイルのサポートを確認する必要があります。http://developer.android.com/google/play/expansion-files.html
拡張機能を使用する場合でも、他のストア(Amazon、Nookなど)では、アプリでzipファイルのダウンロードをサポートする必要があることに注意してください。
-ジェームズ