Android的资源文件大致可以分为两类:
1,res目录下存放的可编译的资源文件。
该资源文件会以相应的ID被映射到R.java文件,通过对应的资源ID:R.id.name可实现对该资源的访问。
使用方式:
InputStream is=context.getResources().openRawResource(R.id.name);
2,assets目录文件,该目录下的文件可以有自己的文件目录,同时系统在编译时是不会编译的该目录的文件,访问的时候需要使用AssetManager类,通过I/O流的方式对该目录中的文件进行读写。
InputStream is = context.getAssets().open("config/ui.txt"); //实际路径--> /assets/config/ui.txt
注意:
1.res和assets目录下资源文件只能以InputStream方式读取
2.所有资源文件都是只读的,运行时无法修改
3.所有资源文件夹assets、res也都是只读的,不可写入,Apk在编译后无法修改
4.如果想对资源文件进行修改,可对文件进行copy建立temp(临时文件),对临时文件进行修改,再使用,用到了java Io流的方法 File.createTempFile();
5.对于资源文件大小限制的说明Android系统对资源文件(res/raw和assets文件夹下)的大小有限制,2.3之前默认最大仅支持1M的文件,2.3之后貌似<=10M
6,存放在res和asset目录下的文件都会被打包到发布包中。
7,assets目录下的文件在打包成apk时是不会进行压缩的;res下的文件在打包成apk时会进行小内存的优化。