Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何覆盖android资产?_Java_Android_File_Overwrite_Download Manager - Fatal编程技术网

Java 如何覆盖android资产?

Java 如何覆盖android资产?,java,android,file,overwrite,download-manager,Java,Android,File,Overwrite,Download Manager,我的资产文件夹中有一个小XML(KB)文件。我的应用程序从中提取数据。但是我已经下载了文件的更新版本,我需要以某种方式替换它,但我不知道如何替换? 因为我是在更高的API上开发的,所以我可以使用DownloadManager类。您不能替换资产——资产(如资源)是只读的 相反,您需要调整应用程序以检测是否下载了替换文件,并在可用的情况下使用该文件而不是资产。我的解决方案是:在使用资产文件之前,我删除路径--/data/data/com.yourpackagename.xxx中的所有缓存文件,当然,

我的资产文件夹中有一个小XML(KB)文件。我的应用程序从中提取数据。但是我已经下载了文件的更新版本,我需要以某种方式替换它,但我不知道如何替换?

因为我是在更高的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!