Android的res与assets资源的使用

Android应用可以将资源保存在两个目录:res和assets目录。其中res目录只能将资源存在相应的目录中,如res/layout、res/values等,不能直接将资源存储在res目录里。assets目录中的资源可以任意存放,也可以建立任意的子目录。他们的主要区别如下:

1.资源的引用方式不同

res目录中的所用资源都会在R类的相应子类中生成对应的int类型变量,在使用时需要引用:R.string.XXXX。

assets目录中的资源需要直接使用文件名来引用,例如assets/text.txt、assets/data/data.db是assets目录中的两个文件,可以使用以下代码引用这两个文件,并返回与资源文件对应的InputStream对象:

InputStream s1 = getResources().getAssets().open("text.txt");

InputStream s2 = getResources().getAssets().open("data/data.db");


2.处理方式不同

res目录中的资源子目录除了raw外,其他资源子目录的资源文件都会被编译,编译成机器码等资源。而assets中的资源文件与res/raw中的资源文件不会做任何处理,所以将apk解压后,这两个目录中的资源文件都会被保持原样。

3.子目录不同

res目录只能有一层子目录,而且这些子目录都是预定义好的,如果你自己定义一个res/abc目录,这是不合法的。而在assets目录中可以建立任意层次的资源文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值