1. ホーム
  2. android

[解決済み] Androidアプリをアップデートすると、SharedPreferencesはどうなりますか?

2023-03-22 03:49:57

質問

アプリのSharedPreferencesにユーザー設定を保存しています。Google Play ストア経由でアプリを新しいバージョンに更新した場合、SharedPreferences はどうなりますか。

アップデート後もSharedPreferncesは存在するのでしょうか、それとも削除されるのでしょうか。

今のところ、Web や Stackoverflow では回答が見つかりませんでした。

このプロセスを説明するいくつかのリンクを紹介してもらえますか?

編集してください。 一方、私は他の答えも見つけました。 アップデート/アンインストール時の SharedPreferences の挙動

編集2: 最初にこの質問をしたときはかなり時間が経っていたので、最近、Android 6.0 (API 23) 以降、自動バックアップ機能を使用して、次のことも可能であることを知りました。 セキュア で説明されているように、共有されたプリファレンスを Googleはこちら .

を追加するだけです。 allowBackup="true" を追加するだけです。 AndroidManifest.xml ファイルに記述します。

どのように解決するのですか?

クリスティアン ここで says: ユーザがアップデートをインストールすると、アプリケーションのデータは残ります。

しかし、それは同じ package name でないと、以前のアプリのアップデートとして検出できません。

のエボマイク アプリのアップデートにより、古いアプリのデータが失われる可能性があることをAndroidユーザーに警告する? が言っています。

率直に言って、アップグレードによるデータの損失は受け入れがたいものです。

編集 :

通常 の場合、SharedPreferences (および他のユーザーデータ) はアップデート処理中も保持されますが、時々、何らかの理由で " 不明 の問題で、データが失われることがあり、それはあなたのコントロールの及ばないところだと思います。そこで、SharedPreferences が保持されることを単純に信じることができます ( こちらをご覧ください ).

もし、アップグレード中にユーザーのデータが消去されるのを避けたいなら、メインデータを外部ストレージ(SDカードなどの取り外し可能なストレージメディアや、取り外し不可能な内蔵ストレージなど)に保存し、アプリのプライベートデータにはしない必要があります。

もし、あなたが アプリをアップグレードすると、どんなことが起こるのでしょうか? これは、複雑で相対的なものです。 Android Security , Application signing , copy protection などがあります。つまり、上記のフィールドでアプリの状態を変更すると、異なる結果になるということです。

例えば CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON とすると、アプリは更新されますが、共有されている設定がすべて失われ、ファイルへのアクセスが不可能になり、...。

といった具合で、アプリの更新には注意が必要です。 being considered を更新した場合( 変更できないもの ).

また、データベースのデータを削除してしまう可能性があるため、コードには注意が必要です( プリロードされたSQLiteでアプリを更新する ).

しかし、最終的には、注意深くすれば、言うことができます。

<ブロッククオート

更新プロセスは apk ファイルを置き換えるだけです (そして、その中にあるもの、たとえば描画ファイルなど)。 を置き換えるだけで、データベース、共有設定、および実行時に生成されたその他のファイル (おそらくこの場合) は変更されません。 などの実行時に生成されるファイルは変更されません(おそらくこの場合 この場合、新しいアプリは前のアプリのUIDと等しいUIDでインストールされます)。 と同じUIDでインストールされます)。

詳しくはこちらのページをご覧ください。

助けてください! アプリケーションをアップデートすると、保存されているSharedPreferencesが削除されてしまいます。

マーケットでのコピー防止機能により、更新後にファイルへのアクセスが完全に中断される

どなたか、アプリの更新プロセスを説明していただけませんか?