当 Android 应用程序升级到新版本时,资源会发生什么变化?

3

我的应用程序有很多assets资源,一些raw资源和一些用户在使用应用程序时创建的其他对象(包括SharedPreferences)。

我无法理解当我安装新版本的应用程序时这些资源会发生什么。它们被覆盖还是保留在先前的状态(如果是,我该如何更改)?

1个回答

4

SharedPreferences是XML文件,不随APK捆绑而是在应用程序安装并使用SharedPreferences API时生成的。这些文件在应用程序的数据文件夹中创建,并且对应用程序私有(除非您另行指定)。它们在应用程序更新期间保持不变。删除/覆盖它们的唯一方法是通过以下方式之一:

a)用户卸载/重新安装应用程序

b)用户在系统设置中的应用程序设置页面内清除存储器(应用程序数据)

c)您可以通过SharedPreferences API或备份/还原API将它们删除

资源是与您的APK(或应用程序包)一起提供的。基本上,所有位于res/文件夹中的样式、字符串、可绘制项、资产等都会在安装后被新APK的res文件夹的内容所替换。


1
不错的答案。再补充一点:如果我在res/中创建了本地数据库来存储一些用户值,那么在更新我的应用程序时如何保留它? - Arcyno
1
你能解释一下你的数据库具体在哪里吗?你可以分享一些代码吗?你不应该能够写回 res 文件夹,它是只读的。 - peshkira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接