assets vs raw

248 阅读1分钟

assets与res/raw不同

assets目录是Android的一种特殊目录,用于放置APP所需的固定文件,且该文件被打包到APK中时,不会被编码到二进制文件。 res下的raw目录是Android的另一种特殊目录,该目录与assets目录不同。 注意点: 1、 assets目录不会被映射到R中,因此,资源无法通过R.id方式获取,必须要通过AssetManager进行操作与获取;res/raw目录下的资源会被映射到R中,可以通过getResource()方法获取资源。 2、 多级目录:assets下可以有多级目录,res/raw下不可以有多级目录。 3、 编码(都不会被编码):assets目录下资源不会被二进制编码(转换为二进制格式);res/raw也不会被编码。

assets简单应用: 1、结合WebView加载assets目录下的网页: //加载assets/win8_Demo/目录下的index.html网页 webView.loadUrl("file:///android_asset/helloworld.html"); 说明:可加载assets目录下的网页,css,js,图片等文件也会的加载。

如果需要原文件名以及文件目录结构,则应使用assets

raw的应用:

InputStream is = getResources().openRawResource(R.id.fileNameID) ;

![img](assets vs raw/9012320-3f83b5c727cc2eb1.webp)

String rawPath = "android.resource://" + getPackageName() + "/" + R.raw.video;
videoview.setVideoPath(rawPath);
videoview.start();