Android:将外部文件和文件夹存储为资产?资源?别的什么?

时间:2012-04-23 18:42:41

标签: android resources assets

在我的Android应用中,我加载了一个文件和一个包含大量文件的文件夹。我试图确定这些是否应该作为资产,资源或其他东西添加。

该文件是一个XML文件,其路径传递给类构造函数,该构造函数根据文件中包含的内容创建对象。如果需要,我可以访问构造函数代码。

该文件夹包含一堆特殊格式的非人类可读文件。文件夹的路径将传递给另一个知道文件夹结构的构造函数,并创建一个对象。我无法访问其代码。

哦,除了同一个应用程序需要它们之外,这两个没有任何关系。

那我应该怎么存储这些?我首先考虑将它们添加为资产,但显然我只能获得一个无效的资产输入流。如果我将文件夹添加为资源,是否必须进入res /下的特定子文件夹?哪一个? te XML文件是否必须放在res / xml下?无论是资产还是资源,是否存在我应该用来访问文件和文件夹的默认根路径?

THX!

1 个答案:

答案 0 :(得分:2)

我会将XML文件放在res/xml/下,仅出于性能原因。 res/xml/支持任意XML,并且解析所有XML编码资源的速度比解析普通文件快10倍。您的“根据文件中包含的内容创建对象的类构造函数”将使用您从XmlResourceParser对象获取的Resources

就文件夹而言,请使用assets/,因为您无法在资源(原始或其他)中使用文件夹结构。

  

我首先考虑将它们添加为资产,但显然我只能获得一个不起作用的资产的输入流。

如果您希望使用应用程序打包文件并直接使用它们,则无法选择。资源和资产都不能直接作为文件提供。将内容作为文件获取的唯一方法是让您自己使用流将它们复制到本地文件,这会增加它们占用的存储量,并且在XML的情况下,会降低解析性能。