2011-09-09 18 views
6

アプリケーション内にダウンロードしたコンテンツをどこに格納するかに関する別々の、しかし関連した多くの質問。Android - ダウンロードしたコンテンツを保存する場所、内部ストレージと外部ストレージ

セントラルサーバーからコンテンツをダウンロードするアプリケーションがあります。このコンテンツは時にはプレミアムコンテンツ、または少なくとも出版社が自由に配布したくないコンテンツです。私は、電話が根付いていない限り、「内部」ストレージが保護されているのに対し、「外部」ストレージは容易にアクセス可能であることを理解しています。

アプリケーションがSDCARDにインストールされている場合(私のように設定されている場合)、物理的にSDCARD上の「内部」ストレージですか?したがって、私のSDCARDインストールされたアプリケーションが、例えば100MBのコンテンツを内部ストレージにダウンロードすると、それは実際にSDCARDで終了するのですか、それともデバイスの物理的なオンボードストレージに終わるのでしょうか?

アプリケーションがSDCARDにインストールされていて、ダウンロードされたコンテンツを含む「内部」ストレージがSDCARDにある場合、それは物理的に開いた形式で保存されているか、暗号化されていますか?私は、SDCARDに保存されているアプリケーションは暗号化されているということを覚えているようです。これは「内部」ストレージにも適用されますか?

(Context.getDir(のように1つのディレクトリにファイルを格納について削除した質問は)、ディレクトリシステムは、内部ストレージに作成され、維持され得ることを意味する)

よりよい方法はありますか?

答えて

4

は、実験の束を行なったし、モトローラドロイド2でAndroid 2.2で、次の結論に達した:

アプリケーションがインストールされている
  • /それがで.asecファイルとして保存されているSDCARDに移動SDカード上の隠された/.android_secureディレクトリ。これは暗号化され圧縮されたファイルです。
  • アプリケーションが "内部ストレージ"にデータファイルを作成するとき、デバイスの内部メモリに格納されます。 SDCARDにありません。
  • アプリケーションの[設定/管理アプリケーションの詳細]ダイアログには、「データ」の値があります。これは、アプリケーションが内部ストレージ内で使用しているデータの量、つまりSDCARDにない内部メモリです。
  • 外部ストレージは/ Android/dataディレクトリの下のSDACRDで終了します
  • 設定/管理アプリケーションの詳細ダイアログからデータを消去すると、実際にすべてが消去されます。つまり、インストールされたアプリケーションには、 "データなし"の状況。

私のアプリはダウンロードコンテンツアプリです。

  • 電話で消費するストレージの大部分がデバイスの内部メモリに格納されるため、私の小さなアプリケーションをSDCARDに保存することはほとんど価値がありません。もちろん、アプリケーションがSDCARDにインストールできるようにすることは常に良いことを除いて。
  • インストールパッケージは、ユーザーがダウンロードしたコンテンツがユーザーによって消去された場合、それを復元する必要があります。
  • unique installation idを内部メモリに格納するというコンセプトは、ユーザーがアプリケーションのデータを削除して新しいインストールIDを計算するまでうまく機能します。したがって、デバイスにダウンロードされたコンテンツを覚えておくには、アプリケーションが最初から起動するたびに、ユーザーが作成/ログインする中央サーバー上のユーザーアカウントが必要です。
関連する問題