在我的Android应用程序中,我对名为library.cfg
的文本文件中的库进行了一些配置。此文件位于我的Android Studio项目中的assets\library
。 (应用程序和库都是专有的,所以我不能透露更多细节。)
我在我们的目标设备上安装了应用程序(运行2.3.4 Gingerbread,如果相关的话)。 library.cfg
文件正确显示。
我编辑library.cfg
文件以包含新的设置值。
然后我使用相同的签名配置再次安装应用程序,但增加的版本名称/代码。新APK包含资产文件中的新设置。
如果我只安装该应用,则library.cfg
的更改不会反映/data/data/com.myapp.package/library/library.cfg
上的文件副本。该文件与原始安装中的文件相同。
如果我卸载应用程序,然后使用更新的配置文件安装应用程序的第二个版本,/data/data/com.myapp.package/library/library.cfg
包含添加的值。
为什么升级应用时不更新文件而不是卸载/重新安装?我需要做些什么来确保在升级期间更新文件?
答案 0 :(得分:3)
在应用程序的每次启动时使用Context.getAssets()
打开文件,升级应用程序时,首先启动它,然后检查文件是否有更改。
似乎在您访问该文件之前,它不会从apk中提取到/data/data/<your-package>/