android assets资源使用——深入浅出

0 前置知识点

  • 每个app安装后,会在/data/data/<apk package name>/路径下生成一个安装目录,这个位置对于当前apk来说是可以读写的,不过对于没有root的设备,用户看不到
  • app安装后,原apk安装包,会在/data/app/*.apk有备份
  • app删除时,其安装目录和相关备份都会被删除

1 android有两种资源文件:

  • res目录下的、可编译的资源文件,可以通过R.xxx.id访问
  • assets目录中的、不能被编译的、原生的资源文件。存在于apk中。因为apk安装之后会放在/data/app/**.apk目录下,以apk形式存在,asset被绑定在apk里,并不会解压到/data/data/YourApp目录下去,所以我们无法直接获取到assets的绝对路径,因为它们根本就没有。

那么我们该怎么访问assets中的资源呢?

2 通过AssetManager类访问asset中的资源

2.1 概述

提供对应用程序的原始资源文件进行访问;这个类提供了一个低级别的API,它允许你以简单的字节流的形式打开和读取和应用程序绑定在一起的原始资源文件。通过getAssets()方法获取AssetManager对象。

2.2 常用方法
Public Methods
final String[] list(String path)
返回指定路径下的所有文件及目录名。
final InputStream open(String fileName)
使用 ACCESS_STREAMING模式打开assets下的指定文件。
final InputStream open(String fileName, int accessMode)
使用显示的访问模式打开assets下的指定文件.
2.3 应用实例
1.访问assets目录下的资源文件:

返回的是一个InputSteam类型的字节流,这里的filename必须是文件比如(aa.txt;img/semll.jpg),而不能是文件夹。

AssetManager.open(String filename)
2.获取assets的文件及目录名:

获取assets目录下的所有文件及目录名,content(当前的上下文如Activity,Service等ContextWrapper的子类的都可以)

String fileNames[] =context.getAssets()
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值