在很多时候,我们需要访问android中的资源文件,这些资源文件主要分为两类,一种出于asset目录下,称为原生文件,这类文件在被打包成apk文件时是不会进行压缩的;另一类则是res下的文件,这类文件在打包成apk文件时,会进行小内存优化的哦。


两种不同类型的文件,对应着不同的访问模式。我们先来看看asset文件的访问:

android中有一个专门的类来处理应用对asset文件的访问,这个类就是AssetManager。其内有一个open()方法可以根据用户提供的文件名,返回一个InputStream对象供用户使用。

我们截图看下api中的方法:

这里我们可以看到open方法以及其他的相应方法,对于其中有一个参数accessMode,则指定了系统获取资源的模式。主要值有以下几种:

ACCESS_BUFFER :加载文件到内存中,这种方式适合小文件的读取;

ACCESS_RANDOM:可以随意的向前或者向后的读取数据块

ACCESS_STRAMING:顺序的读取内容

ACCESS_UNKNOWN:当没有明确指定时,使用默认模式


这里我们一定要注意,open(String fileName)默认的使用ACCESS_STREAMING模式进行读取!!

那么我们如何获得一个AssetManager对象呢,在activity中我们可以通过以下的代码获取:


如何访问res目录下的文件呢?

我们在activity中可以通过如下方法进行访问:

api中是这样描述的:


最后,我们一定要注意一下三点:

存放在res/raw下的文件,会相应的生成ID,而在assets下的文件,不会生成ID;

asset和res下的文件都是只能读不能写的;

在AssertManager中不能处理单个超过 1MB的文件,不然会报异常,而第二种raw没这个限制。

更多相关文章

  1. Android Studio:10分钟教会你做百度地图定位!并解决SDK22中方法报
  2. Android——Json和Gson分别是什么,以及Json 数据的解析方法
  3. Android中建造者模式自定义Dialog
  4. Android 共享内存实现跨进程大文件传输(设计思路和Demo实现绕过B
  5. android开发打印票据或文档的方法:android打印文档的类
  6. android下自定义字体的使用方法
  7. [Android Studio系列(三)]Android Studio 编译、同步慢的解决方

随机推荐

  1. android framework 层服务 分析
  2. Android(安卓)Studio中设置ButterKnife、
  3. android panellistview 圆角实现代码
  4. Android如何在java代码中设置margin
  5. suse linux android sdk 下载.安装.配置
  6. 安卓巴士Android开发神贴整理
  7. android 状态栏 时间 错误 adb连接
  8. Android(安卓)Studio 初体验
  9. android 自定义attr 详解
  10. Android内存管理、监测剖析