さまざまな場合に画面に表示される一連の小さな画像 (約 200 画像) (合計サイズ ~ 10MB) が付属するアプリがあります。ユーザーが何らかのボタンを押すと、これらの画像の 1 つが表示されます (いずれかの画像である可能性があります)。今後いつでも画像が追加される可能性があるため、アプリはサーバー上の xml ドキュメントをチェックします (チェックが最後に行われてから 24 時間以上経過している場合、このチェックはメイン アクティビティの onCreate() で行われます)。xml ドキュメントにはすべての画像が一覧表示されるため、ドキュメントが変更され、新しい画像が追加されたかどうかを簡単に確認できます。さらに画像が追加された場合、アプリはこれらの画像をサーバーからダウンロードし、デバイスに既に存在する画像と共に保存する必要があります。
私が最初に考えたのは、10MB の画像をアプリにバンドルしてアセット フォルダーに配置し、アプリを初めて起動したときに画像をアセット フォルダーから内部ストレージに移動することでした。その後、将来さらに画像が追加される場合は、それらもダウンロードされて内部ストレージに保存されるため、すべての画像がうまくまとめられていましたが、少し実験した後、多くの時間がかかることがわかりました。デバイスの時間 (Android 4.1 を搭載した HTC One S でのテスト) は、アセット フォルダー内の画像を一覧表示するだけで (1 分以上)、実際にそれらをコピーすることは気にしません。ユーザーが最初にアプリを体験するのに 1 分以上の待ち時間がかかることを望んでいないため、これは受け入れられません。
AssetManager クラスの list(String path) メソッドを使用してファイルを一覧表示しています。
だから私は私の質問は次のとおりだと思います:
ユーザーが最初の起動時に長時間待つ必要がなく、アプリがその場でより多くの画像をダウンロードできるように、これをどのように実装しますか?