Java 如何覆盖android资产?
我的资产文件夹中有一个小XML(KB)文件。我的应用程序从中提取数据。但是我已经下载了文件的更新版本,我需要以某种方式替换它,但我不知道如何替换?Java 如何覆盖android资产?,java,android,file,overwrite,download-manager,Java,Android,File,Overwrite,Download Manager,我的资产文件夹中有一个小XML(KB)文件。我的应用程序从中提取数据。但是我已经下载了文件的更新版本,我需要以某种方式替换它,但我不知道如何替换? 因为我是在更高的API上开发的,所以我可以使用DownloadManager类。您不能替换资产——资产(如资源)是只读的 相反,您需要调整应用程序以检测是否下载了替换文件,并在可用的情况下使用该文件而不是资产。我的解决方案是:在使用资产文件之前,我删除路径--/data/data/com.yourpackagename.xxx中的所有缓存文件,当然,
因为我是在更高的API上开发的,所以我可以使用DownloadManager类。您不能替换资产——资产(如资源)是只读的
相反,您需要调整应用程序以检测是否下载了替换文件,并在可用的情况下使用该文件而不是资产。我的解决方案是:在使用资产文件之前,我删除路径--/data/data/com.yourpackagename.xxx中的所有缓存文件,当然,当应用程序版本高于旧应用程序版本时。(我在应用程序首次运行时保存了一个SharedReferences,以便比较应用程序版本)。 我不知道为什么新应用的资产资源是存在的,但解决方案是为我工作
ps:我的应用程序主页是一个网络视图,资源中的文件,因此,每次应用程序更新我都需要将其替换!我对该主题有更多的了解,并发现资源被压缩到.apk文件中,但如果创建了具有特定扩展名的文件夹,则该文件不会被压缩。我是否可以替换该文件夹中的文件并使用它来获取数据?你知道吗请看,我真的不需要这两个文件,下载可以作为更新。只是我不知道不必要地更新所有应用程序。@BestBeast:“我可以替换这样一个文件夹中的文件并使用它来获取数据吗?”--没有。那么没有合理的方法更新包含文件的信息吗?@BestBeast:在运行时,从Android SDK的角度来看,资产和资源不是文件。它们是APK文件ZIP存档中的条目。该ZIP文件及其内容是只读的。您仍然可以下载替换文件,并且仍然可以使用它替换,但您的工作是检测替换是否存在,并在可用时使用它,否则使用资产。我知道新应用的资产资源在哪里!如果您的手机是root用户,您可以在以下路径中找到它:/system/app/com.yourpackagename.xxx/,它是一个重命名为base.apk的apk!