5

Android 提供以下数据存储选项:

Shared Preferences - 将私有原始数据存储在键值对中。

内部存储- 将私人数据存储在设备内存中。

外部存储- 将公共数据存储在共享的外部存储上。

SQLite 数据库- 将结构化数据存储在私有数据库中。

缓存- 在应用程序运行期间缓存数据。(可能会在空间不足时清除)

我想知道的是这些存储的寿命。

  1. 应用程序关闭时清除哪些存储(显然是缓存)
  2. 重新安装应用程序时清除哪些存储
  3. 应用程序更新时清除哪些存储
  4. 卸载应用程序时清除哪些存储
  5. 哪些存储清除了应用程序清除数据
  6. 手机恢复出厂设置会清除哪些存储
  7. ROM 升级/更改会清除哪些存储

这个问题的扩展是,使用哪种存储我的数据在丢失未经授权的资源(用户、root 应用程序)访问方面更安全。

4

3 回答 3

5

应用程序关闭时清除哪些存储(显然是缓存)

缓存

重新安装应用程序时清除哪些存储

缓存

应用程序更新时清除哪些存储

缓存

卸载应用程序时清除哪些存储

缓存、SQLite、共享首选项

哪些存储清除了应用程序清除数据

缓存、SQLite、共享首选项

手机恢复出厂设置会清除哪些存储

它会清除所有数据,但不会清除外部存储数据

这个问题的扩展是,使用哪种存储我的数据在丢失和未经授权的资源(用户,root 情况下的应用程序)访问方面更安全。

最好将数据以加密形式存储在 SQLite 中。如果您的设备已植根,则意味着您甚至可以访问 SQLite。

于 2014-03-03T14:57:40.893 回答
3

应用程序关闭:应用程序关闭后缓存文件不会被删除。

根据 android 文档,

When the device is low on internal storage space, Android may delete these cache files to recover space. However, you should not rely on the system to clean up these files for you. You should always maintain the cache files yourself and stay within a reasonable limit of space consumed, such as 1MB. When the user uninstalls your application, these files are removed.

应用程序重新安装和卸载 : Cache, Shared Preferences,卸载应用程序Internal StorageDatabases将被删除。

应用程序更新:通常您在以前版本中的所有内容都会恢复。文档也不清楚这一点。

应用程序清除数据:除此之外的所有内容都External Storage将被永久删除。

恢复出厂设置:恢复出厂设置将清除除预装应用程序之外的所有应用程序及其数据。您可以使用 google 帐户恢复您的应用程序,但不能使用数据(如果数据未使用BackUp Api.

对于您的最后一个问题,如果您将数据存储在设备中,则没有安全的数据存储。甚至可以使用 USB 文件选项删除外部数据存储。对于安全数据,您应该在服务器上维护用户数据并按需获取。

希望我很清楚。

于 2014-03-03T14:56:54.793 回答
1

在回答您的问题时,默认情况下,持久存储(SQL、内部\外部存储、SharedPreferences)的行为基本相同,而缓存的行为不同。

持久化存储 - 在以下情况下不会被清除: 1、2、3 - 在其他情况下将被清除。

内部\外部存储 - 可以在应用程序删除后继续存在(如果配置得当),因此,如果您专门处理此问题,则有可能不会在 4 和 5 上被删除。

缓存 - 在所有情况下都将被清除(在某些情况下,您可能能够在应用程序关闭后访问缓存,但不可靠)。

7*(ROM 更新可以使用备份解决方案保留应用程序数据,否则,将与 6 相同)

于 2014-03-03T14:54:29.760 回答