Android 将应用程序与位于内部存储目录而不是资产目录中的文件绑定?

Android 将应用程序与位于内部存储目录而不是资产目录中的文件绑定?,android,android-file,android-storage,Android,Android File,Android Storage,我正在构建一个应用程序,其中包含与应用程序捆绑的媒体文件。 用户还可以在运行时下载其他媒体文件 我想将下载的文件存储在应用程序的内部存储目录中。 是否可以“捆绑”初始文件,使其也存储在内部存储目录中,或者我需要将其放置在资产中,从而有两种不同的方式访问我的媒体文件 是否可以将初始文件“捆绑”到内部存储目录中 如果您希望将它们自动放置在那里,那么不,没有此选项 我是否需要将它们放在资产中,从而有两种不同的方式访问我的媒体文件 欢迎您自己将资产复制到文件系统(请参见AssetManager)。您可以

我正在构建一个应用程序,其中包含与应用程序捆绑的媒体文件。 用户还可以在运行时下载其他媒体文件

我想将下载的文件存储在应用程序的内部存储目录中。 是否可以“捆绑”初始文件,使其也存储在内部存储目录中,或者我需要将其放置在
资产中,从而有两种不同的方式访问我的媒体文件

是否可以将初始文件“捆绑”到内部存储目录中

如果您希望将它们自动放置在那里,那么不,没有此选项

我是否需要将它们放在资产中,从而有两种不同的方式访问我的媒体文件


欢迎您自己将资产复制到文件系统(请参见
AssetManager
)。您可以将文件系统视为“记录系统”,只在需要时复制文件(例如,在用户“清除数据”后首次运行应用程序)。

好的,谢谢,我确实想知道这一点-但我的媒体文件非常大-因此,如果我理解正确,我实际上会有两个文件,一个在资产中,一个在内部存储中,将存储量增加一倍?@HPage:资产(通常)在APK中压缩,因此不会严格地将磁盘空间增加一倍。但是,它将占用比文件本身更多的空间,并且根据可压缩性,它可能会加倍(或大约加倍)。您可以将它们作为资产保留,而不复制文件系统,但这确实意味着需要一点增量代码。根据您的应用程序功能,我最多可以看到四种不同的媒体来源:资产、文件、内容(
ACTION\u PICK
ACTION\u OPEN\u DOCUMENT
)和Web。如果您要进入
rtsp
或其他方案,可能会更多。@HPage:因此,一个抽象层可能很有用,甚至在这个资产方案之外。将资产视为另一个媒体源,并使用您定义的某些API的其他实现。