我知道res目录中的文件可以从R.class访问,而资产的行为就像一个文件系统,但我想知道,在一般情况下,什么时候最好使用一个和另一个。 谁能帮我了解一下资产和资产的真正区别?


当前回答

两者都很相似。两者之间真正的主要区别是,在res目录中,每个文件都有一个预编译的ID,可以通过R.id轻松访问。(res id)。这是有用的快速和轻松地访问图像,声音,图标…

assets目录更像一个文件系统,提供了更大的自由,可以在其中放置任何您想要的文件。然后,您可以访问该系统中的每个文件,就像通过Java访问任何文件系统中的任何文件一样。这个目录可以存放游戏细节、字典等等。

其他回答

Ted Hopp很好地回答了这个问题。我一直在使用res/raw为我的opengl纹理和着色器文件。我正在考虑将它们移动到一个资产目录,以提供一个分层组织。

这个帖子说服了我不要这么做。首先,因为我喜欢使用唯一的资源id。其次,使用InputStream/openRawResource或BitmapFactory读取文件非常简单。第三,在便携式图书馆中使用它是非常有用的。

两者都很相似。两者之间真正的主要区别是,在res目录中,每个文件都有一个预编译的ID,可以通过R.id轻松访问。(res id)。这是有用的快速和轻松地访问图像,声音,图标…

assets目录更像一个文件系统,提供了更大的自由,可以在其中放置任何您想要的文件。然后,您可以访问该系统中的每个文件,就像通过Java访问任何文件系统中的任何文件一样。这个目录可以存放游戏细节、字典等等。

资产提供了一种在应用程序中包含任意文件(如文本、xml、字体、音乐和视频)的方法。如果你试图将这些文件作为“资源”,Android会将它们处理到它的资源系统中,你将无法获得原始数据。如果您希望不加改动地访问数据,Assets是一种方法。

使用文件系统之类的资产来转储任何类型的文件。并使用分辨率来存储它所做的,布局,图像,值。

如果您需要在Java代码中的某个地方引用它们,那么您宁愿将文件放到“res”目录中。

res文件夹中的所有文件都将被索引到R文件中,这使得加载它们更快(也更容易!)