我在我的Android研究的中间,我只是涵盖了资产和原始资源。我试图理解使用原始资源与资产。1.它们都提供了一个未编译的资源输入流。1.看起来Assets比Raw资源提供了更多的灵活性和功能。a.您可以在assets下创建文件夹结构,但不能在raw下创建B.您可以在assets文件夹中动态列出所有资源,但不能在raw文件夹中列出所有资源。为什么要在Android中使用Raw资源?
assets
raw
6yjfywim1#
raw文件夹和assets文件夹之间的主要区别。
ID
R class
ee7vknir2#
根据Android文档,***raw/目录用于:以原始形式保存的任意文件。要使用原始 InputStream 打开这些资源,请使用资源ID(即 R.raw.filename)调用 Resources.openRawResource()。但是,如果您需要访问原始文件名和文件层次结构,则可以考虑将一些资源保存在assets/目录 (而不是res/raw/) 中。assets/ 中的文件没有资源ID,因此只能使用 AssetManager 读取。在一行中,raw/目录中的文件是not compiled by the platform, 被分配了一个资源ID, 不能被分组到子文件夹中 *,而如果您想要,则使用assets/目录。
raw/
assets/
h6my8fg23#
加上上面给出的答案……
**/res/strings、/res/layout、/res/xml文件等都被编译成二进制格式。但是如果你把文件(包括XML文件)放在/res/raw/目录中,它们就不会被编译成二进制格式。
与原始资源相比,使用资产的一大优势是file:///android_asset/***Uri***前缀。这对于将资产加载到WebView中非常有用。例如,要访问项目中assets/foo/index.html中的资产,可以调用loadUrl("file:///android_asset/foo/index.html")将该HTML加载到WebView中。
file:///android_asset/
loadUrl("file:///android_asset/foo/index.html")
p3rjfoxz4#
当你需要访问原始文件名和文件层次结构时,你可以使用assest文件,比如直接使用音频,视频,文本文件。
4条答案
按热度按时间6yjfywim1#
raw
文件夹和assets
文件夹之间的主要区别。ID
。然后,这个ID
存储在R class
中,该R class
将充当文件的引用,这意味着可以从其他Android类和方法甚至Android XML文件中轻松访问它。使用自动生成的ID是在Android中访问文件的最快方式。assets
文件夹为**“appendix”目录。R类不会为放置在那里的文件生成ID,这与某些Android类和方法不太兼容。assets
文件夹中的文件访问速度较慢,因为您需要基于String获取句柄**。但是,通过将文件放置在此文件夹中,可以更轻松地完成某些操作,例如将数据库文件复制到系统内存中。没有(简单的)方法来创建对Assets文件夹中文件的Android XML引用。ee7vknir2#
根据Android文档,***
raw/
目录用于:以原始形式保存的任意文件。要使用原始 InputStream 打开这些资源,请使用资源ID(即 R.raw.filename)调用 Resources.openRawResource()。
但是,如果您需要访问原始文件名和文件层次结构,则可以考虑将一些资源保存在
assets/
目录 (而不是res/raw/) 中。assets/ 中的文件没有资源ID,因此只能使用 AssetManager 读取。在一行中,
raw/
目录中的文件是not compiled by the platform, 被分配了一个资源ID, 不能被分组到子文件夹中 *,而如果您想要,则使用assets/
目录。h6my8fg23#
加上上面给出的答案……
**/res/strings、/res/layout、/res/xml文件等都被编译成二进制格式。但是如果你把文件(包括XML文件)放在/res/raw/目录中,它们就不会被编译成二进制格式。
与原始资源相比,使用资产的一大优势是
file:///android_asset/
***Uri***前缀。这对于将资产加载到WebView中非常有用。例如,要访问项目中assets/foo/index.html中的资产,可以调用loadUrl("file:///android_asset/foo/index.html")
将该HTML加载到WebView中。p3rjfoxz4#
当你需要访问原始文件名和文件层次结构时,你可以使用assest文件,比如直接使用音频,视频,文本文件。