📜  Android Studio中的素材资源文件夹

📅  最后修改于: 2021-05-10 14:08:32             🧑  作者: Mango

可以注意到,与Eclipse ADT(应用程序开发工具)不同, Android Studio不包含Assets文件夹,我们通常在其中保存HTML之类的Web文件。资产提供了一种在应用程序中添加文本,XML,HTML,字体,音乐和视频等任意文件的方法。如果有人尝试将这些文件添加为“ resources ”,则Android会将它们视为其资源系统,您将无法获取原始数据。如果要访问未更改的数据,则资产是一种处理数据的方法。但是出现的问题是为什么在资产文件夹中?我们可以通过创建Resource Raw Folder来做同样的事情。那么,让我们讨论一下Assets文件夹与Resource Raw文件夹有何不同?

资产文件夹与Resource Raw文件夹有何不同?

在Android中,可以将原始资产文件(如JSON,文本,mp3,HTML,pdf等)存储在两个可能的位置:

  1. 资产
  2. res /原始文件夹

资产和原始文件夹

两者看起来是相同的,因为它们可以读取文件并生成InputStream,如下所示

但是什么时候使用哪个文件夹?

以下是一些可能有助于选择的指导

1.灵活的文件名:(资产更好)

  • 资产:开发人员可以以任何方式命名文件名,例如使用大写字母(fileName)或使用空格(文件名)。
  • res / raw:在这种情况下,文件名受到限制。基于文件的资源名称只能包含小写的az,0-9或下划线。

2.存储在子目录中:(可能在资产中)

  • 资产:如果开发人员想要将文件分类到子文件夹中,则他/她可以在如下所示的资产中进行操作。

资产文件夹

  • res / raw:在这种情况下,文件只能位于根文件夹中。

3.编译时检查:(可能在res / raw中)

  • 资产:这里,将其读入InputStream的方法如下。如果文件名不存在,那么我们需要捕获它。
  • res / raw文件夹:在这里,将其读入InputStream的方式是:

因此,将文件放在res / raw文件夹中将在编译时检查期间确保提供正确的文件名。

4.在运行时列出文件名:(可能在资产中)

  • 资产:如果开发人员想要列出资产文件夹中的所有文件,则他/她已使用list()函数并在根文件夹上提供了文件夹名称或“” ,如下所示。
  • res / raw:在此文件夹中无法执行此操作。开发人员必须在开发过程中而不是运行时知道文件名。

因此,在资产中,人们可以在运行时读取文件名,列出它们并动态使用它们。在res / raw中,可能需要在字符串资源文件中编写好代码。

5.可从XML访问的文件名:(可能在res / raw中)

  • 资产:开发人员可以简单地安排XML文件(例如AndroidManifest.xml)以指向资产文件夹中的文件的简单方法。
  • res / raw:在Java等任何XML文件中,开发人员都可以使用@ raw / filename轻松访问res / raw中的文件

因此,如果您需要以任何XML访问文件,请将其放在res / raw文件夹中。让我们做一个表格来轻松记住整个场景。

Scenario

Assets Folder

Res/Raw Folder
Flexible File Name

YES

NO

Store in subdirectory

YES

NO

Compile-time checking

NO

YES

List filenames at runtime

YES

NO

Filename accessible from XML

NO

YES

如何在Android Studio中创建资产文件夹?

现在让我们讨论如何在android studio中创建资产文件夹。以下是在Android Studio中创建资产文件夹的分步过程。

步骤1:建立 Android Studio中的资产文件夹首先以Android模式打开您的项目,如下图所示。

添加本地HTML文件

步骤2:转到应用>右键单击>新建>文件夹>资产文件夹,然后创建资产文件夹。

添加本地HTML文件

步骤3: Android Studio将打开一个对话框。将所有设置保留为默认值。在目标源集下,应选择选项main 。然后单击完成按钮

添加本地HTML文件

步骤4:现在打开app文件夹,您将在资产文件夹中找到名为“ assets ”的名称,如下图所示。

资产文件夹

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!