首页 > 移动平台 > 详细

android res与assets资源的区别

时间:2015-02-08 16:51:33      阅读:258      评论:0      收藏:0      [点我收藏+]

android应用可以将资源存储在两个目录:res和assets。其中res目录中的资源只能存储在相应的
子目录(如res/layout、res/values等)中,不能直接将资源存储在res目录中。assets目录中的
资源可以任意存放,也可以建立任意层次的子目录。res和assets资源的主要区别如下。
1、引用资源的方式不同
     res目录中的所有资源都会在R类的相应子类中生成对应的int类型变量,需要使用这些变量
来引用资源。例如res/layout/main.xml是布局文件资源,会在R.layout类中生成一个名为main的
变量,所以需要使用R.layout.main来引用main.xml。
     assets目录中的资源需要直接使用文件名来引用,例如assets/xyz.xml、assets/abc/test.db是
assets目录中的两个资源文件,其中abc是assets中的子目录。可以使用如下的代码引用这两个资源文件,
并返回与资源文件对应的InputStream对象,剩下的操作就是普通的Java代码输入流操作了。

InputStream is1=getResources().getAssets().open("xyz.xml");
InputStream is2=getResources().getAssets().open("abc/test.db");


2、处理方式不同
    res目录中的资源子目录除了raw外,其他资源目录中的资源文件都会被编译,这也是为什么
将APK文件解压后无法直接查看XML格式资源文件内容的原因。而assets与res/raw目录中的资源
文件不会做任何处理,所以将APK解压后,这两个目录中的资源文件都会保持原样.

3、子目录不同
     res目录只能有一层子目录,而且这些子目录必须是预定义的,如res/layout、res/values等都是
合法的,而res/abc,res/xyz并不是合法的资源目录,在assets目录中可以建任意层次的子目录(只受操作系统的限制)

android res与assets资源的区别

原文:http://blog.csdn.net/xiang462042190/article/details/43638299

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!