raw和assets相同点
两者目录下的文件在打包后会直接保存在apk中而不被编译成二进制
raw和assets不相同点
-
/res/raw中的那文件被映射到R文件中,直接使用资源id进行访问R.raw.*
/assets中的文件不会被映射到R文件中,通过AssetManager类访问 -
/res/raw不可以有目录结构
/assets可以有 -
读取/res/raw中的文件方式
InputStream inputStream = getResources().openRawResource(R.raw.filename);
读取/assets中的文件
try { InputStream inputStream = getResources().getAssets().open("filename"); } catch (IOException e) { e.printStackTrace(); }
使用场景
- assets中可以存放一些图片,html,js, css 等文件
- raw中可以存放MP3和Ogg等文件,因为在Android中,使用ID是访问一个文件最快捷的方式