Android开发基础知识(一):Assets和Res目录
创建一个新的Android项目后会产生assets和res两个文件夹,虽然二者都是存放资源的目录,但是二者有着很大的区别。
res目录
这个目录下的文件会在R.java里自动生成该资源的ID,所以访问这种资源文件比较简单,通过R.XXX.ID
assets目录
该目录下的文件在系统的编译的时候不会参与编译,所以我们无法同像R.XXX.ID
的方式来访问它们。同时我们也不能通过绝对路径去访问它们,因为apk安装之后会放在/data/app/**.apk目录下,assets被绑定在qapk里,以apk形式存在,并不会解压到/data/data/YourApp目录下面。
res/raw和assets区别
相同点:
- 两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
不同点:
- res/raw中文件可以用
R.XXX.ID
访问;assets文件夹则需要使用AssetManger
类 - res/raw不可以有目录结构,而assets可以有目录结构
- assets目录下的文件尽可能不要超过1M,否则会有bug;而res/raw则可以不受限制
访问assets目录文件
- webview.loadUrl("file:///android_asset/demo/index.html")
- AssetManager.open(String filename) 返回的是一个
InputStream
类型的字节流。