Android面试之assets和aw文件的使用

在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些多媒体文件或者文本信息,可以供我们在程序中使用。

      assets下面的文件不会被编译,通过路径可以去访问其中的内容。raw中文件会自动编译,我们可以在R.java文件中找到对应的ID。

     其中比较重要的是获取Assets和Raw中的资源方法 (对于文件test.txt)

     Assets:    InputStream inputStream = = getAssets().open(test.txt);

     Raw:        InputStream inputStream = getResources().openRawResource(R.raw.test); 

 

 

补充:

大家都知道建立一个Android项目后会产生assets与res的两个文件夹,理论上他们都是存放资源的文件夹,那么他们到底有什么区别呢?

1.assets:不会在R.java文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装包中

2.res:会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。

在res文件夹下其实还可以定义一下目录:

res/anim:这里存放的是动画资源。

res/xml:可以在Activity中使用getResource().getXML()读取这里的资源文件

res/raw:该目录下的文件可以直接复制到设备上,编译软件时,这里的数据不需要编译,直接加入到程序安装包中,使用方法是getResource().OpenRawResources(ID),其中参数ID的形式是R.raw.XXX.

补充一点:res下只能只能建立系统认可的目录,而且只能建立一级,下面不能有子目录;而assets下面可以放置放任意多级任意多个。【来自评论2楼】

原文地址:https://www.cnblogs.com/childhooding/p/4348831.html