gpt4 book ai didi

android - Expansion Files 是否将所有文件都存储到我手机的 res/drawable 文件夹中?

转载 作者:行者123 更新时间:2023-11-29 00:15:36 25 4
gpt4 key购买 nike

我是 android 扩展文件的新手。我不确定它是如何工作的或如何(逐步构建)扩展文件。据我所读,如果我没有错请指正;扩展文件可以是存储在 Asset 文件夹或 Res 文件夹中的文件。我不明白的是,如果我的应用程序依赖于存储在两个文件夹中的文件,而我将它们取出,不会导致构建错误吗?扩张究竟是如何运作的?此外,如果我成功地从 res 文件夹(示例)创建了一个扩展文件,扩展文件会将它存储在手机的 res 文件夹中吗?或者我必须将引用 res/drawable 文件夹的所有代码更改到适当的位置?如果是这样,那么我需要将代码更改为的正确路径是什么?

我的应用程序目前大约有 600 MB,并且还在继续增长。在我的应用程序中,核心依赖项是本地存储在 asset 文件夹中的数据库和 res\drawable 文件夹中的一些图像。有些图像不直接依赖于应用程序,这使得剩余的 550mb。然而,这些图像是必需的,因为数据库引用了这些图像(只是名称),然后我使用数据库中的引用填充 ImageView 。我想将所有这些图像存储到一个扩展文件中,但我不确定这些图像是存储在手机的 res/drawable 文件夹中还是存储在其他文件夹中?如果是这样,会导致错误吗?

最佳答案

扩展文件不应保存在您的 res 文件夹中。 Res 文件夹是 APK 的一部分,因此如果您将额外的图像保存在 res 文件夹中,您的 APK 仍将超过 50MB 的限制。

在 Google 开发者页面上,它指出“扩展文件保存到设备的共享存储位置(SD 卡或 USB 可安装分区;也称为“外部”存储)您的应用程序可以访问它们的位置。在大多数设备上,Google Play 会在下载 APK 的同时下载扩展文件,因此您的应用程序在用户首次打开时拥有所需的一切。在某些情况下,但是,您的应用程序必须在启动时从 Google Play 下载文件。”

因此,您的扩展文件应保存在 SD 卡中。您可以将图像压缩到一个 zip 文件中,将 zip 文件存储在您的 SD 卡中,并在您的应用程序启动时读取它们。

您可以使用 APK 扩展 Zip 库并从 zip 中读取文件。来自 Google 开发者页面的示例代码:

// Get a ZipResourceFile representing a merger of both the main and patch files
ZipResourceFile expansionFile =
APKExpansionSupport.getAPKExpansionZipFile(appContext,
mainVersion, patchVersion);

// Get an input stream for a known file inside the expansion file ZIPs
InputStream fileStream = expansionFile.getInputStream(pathToFileInsideZip);

您可以阅读 this documentation有关 APK 扩展文件的更多信息。您还可以从 Android developer blog about the APK Expansion file 中找到一些提示。 .或者您可以访问this APK Expansion file tutorial .

关于android - Expansion Files 是否将所有文件都存储到我手机的 res/drawable 文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27109196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com