android assets和raw,Android工程的assets和res/raw目录解析

在安卓工程目录下面经常会有assets和res/raw这两个文件目录,而且我们都知道在这两个文件夹中存放的资源一般不要大于1M;

这两个文件目录里的文件都会直接在打包apk的时候直接打包到apk中,携带在应用里面供应用访问,而且不会被编译成二进制;

他们的不同点在于:1、assets中的文件资源不会映射到R中,而res中的文件都会映射到R中,所以raw文件夹下的资源都有对应的ID;2、assets可以能有更深的目录结构,而res/raw里面只能有一层目录;3、资源存取方式不同,assets中利用AssetsManager,而res/raw直接利用getResource(),openRawResource(R.raw.fileName),很多人认为是R.id.filename,其实正确的是R.raw.filename,就像R.drawable.filename一样,整体表示一个ID值,并非是R.id.filename;

示例代码如下:

1、res/raw:

StringBuilder sb = new StringBuilder();

InputStream in = null;

in = getResources().openRawResource(R.raw.introduction);

if (in != null) {

InputStreamReader isr = new InputStreamReader(in);

BufferedReader br = new BufferedReader(isr);

char [] buf = new char[1024];

int len = 0;

while ((len = br.read(buf)) > 0) {

sb.append(buf, 0, len);

}

} else {

Log.e(TAG, "Read introduction file error");

return;

}

2、assets:

AssetManager assetManager = getAssets();//获取AssetManager

InputStream in = assetManager.open(fileName);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值