1

ユーザーがダウンロードしたデータを処理(表示、再生...)する簡単なアプリケーションがあります。つまり、ユーザーがアプリケーションを(無料で)ダウンロードすると、アプリケーションは空になるか、サンプルデータだけで埋められますが、ユーザーは好みの実際のコンテンツをダウンロードできます(Androidの課金システムを介して支払う可能性があります)。各アイテムは、xmlファイルといくつかのサブフォルダー(オーディオや画像など)を含むフォルダーです。開発フェーズでは、データはアセットディレクトリに保存されます。

現時点では、支払い自体は問題の対象ではありません。私は実際に次のことに興味があります。

  • ダウンロードしたデータを電話に保存して、アプリケーションからアクセスできるようにすることができますが、ユーザーが手動で(たとえば別の電話に)コピーすることはできません。ダウンロードしたデータをアセットディレクトリに保存できれば理想的ですが、apkファイルが生成されると、アセットは「ロック」され、簡単に拡張できなくなります(またはできますか?)。カード(または内蔵メモリ内)を使用すると、メディアプレーヤーやギャラリーなどの他のアプリケーションからもアクセスできるようになりますね。
  • パッケージを単一の単一ファイルとしてダウンロードできれば素晴らしいと思います-組み込みの方法でパッケージをupackし、upackされた(したがって読み取り可能な)サブフォルダーとファイルを含むフォルダーとして保存することは可能ですか?
  • アプリケーションをダウンロードすると、apkファイルになります。したがって、後でダウンロードされるデータと同じ場所にサンプルデータ(つまり、アプリケーションとともにダウンロードされる)を配置できる必要があります。どうすればこれを確認できますか。
  • データはかなり大きくなる可能性があるため、ダウンロード直後にすべてのデータをアセットフォルダーに含め、ユーザーのアクションに基づいてロックを解除することはできません。
  • データがダウンロードされたら、オフラインで動作する必要があります(つまり、ユーザーはインターネットにアクセスせずにデータを表示できる必要があります。したがって、サーバー上でユーザーのIDを確認することはできません。以前にダウンロードしたものはすべて表示できます。 )。

例(説明のため):レシピを表示できるアプリケーションを用意します。インストール後は、何も含まれていません。サーバーからレシピを(1つずつ)ダウンロードできるはずです(それぞれが別のディレクトリに保存されている特定のファイル構造を持っています)。ダウンロードすると、アプリケーションの不可欠な部分になり、携帯電話の機内モードを使用している場合でも、ユーザーはいつでもアクセスできます。

それが少なくともある程度意味があることを願っています(そうでない場合は、質問をさらに明確にすることができます)。アセットに保存されているデータの操作方法とSDカードのデータの処理方法に関するチュートリアルをいくつか見つけましたが、この特定のトピックに関するチュートリアルはありません。

4

1 に答える 1

2
  1. 日付はアプリケーションデータフォルダに保存できます。基本的には、アプリケーションでのみ使用できます。データが別の電話にコピーされないようにする場合は、最初の実行時にランダムなUUIDを生成し、それを使用してデータフォルダーに保存されているデータを暗号化します。別の電話は異なるUUIDと異なる暗号化キーを持っているため、暗号化されたデータをコピーしようとしても意味がありません。非対称暗号化を使用して、生成された(公開)キーをサーバーに送信し、サーバーにデータをエンコードして暗号化された形式で返送させることもできます。これにより、データがまったく公開されなくなります。

  2. フォルダはassets/通常読み取り専用であり、ビルドステップ中にのみデータをそこに置くことができます。

  3. ファイルを.zipファイルにします。これらはコンパクトで、ファイルやフォルダなど、必要なものを簡単に読み取ることができます。java.util.zip.ZipFile

  4. サンプルデータはassetsフォルダに入れられます。最初の実行時にデータフォルダにコピーできます。

  5. データをダウンロードしてデバイスに保存すると、アプリケーションがオフラインで動作しない理由がわかりません。

于 2012-11-13T11:03:07.937 に答える