Android工程目录下,有assets和res/raw文件夹,它们是用来干嘛的呢?(英文asset:资产,资源;raw:未加工的,生的)。
两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
不同点:
1.assets文件夹可以包含目录结构,res/raw文件夹不可以包含目录结构。
2.assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename。
读取:
assets:
@Override
protected void onCreate(Bundle savedInstanceState) {
AssetManager am=getAssets();
InputStream is=am.open("filename");
//is.close();
//am.close();
}
res/raw:
@Override
protected void onCreate(Bundle savedInstanceState) {
InputStream is =getResources().openRawResource(R.id.filename);
}
另外:
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.my));
webView.loadUrl("file:///android_asset/html/index.html");
*这些可以查阅Android的URI和URL方面的知识。