assets与res/raw资源目录的区别
1.简介
assets和res/raw工程目录下都可以放一些小于1M的文件(2.3版本以前要求,否则将不能读出数据。),这些文件将被原样打包到APK中应用使用。
2.不同
- assets目录下的文件将原样打包,而res/raw目录下的文件,有些文档说会编译为二进制,有些文档说不会。一个原则那就是最好不要将过大的文件打包到APK中,如果你的资源很大,例如视频等等,应该单独存储在文件系统中。
- 可以通过ID去访问res/raw目录中的任何文件,系统会为res目录下的所有资源生成相应的资源ID,而assets目录中的文件就需要借助AssetManager。
- assets目录允许下面有多级子目录,而res/raw下不允许存在目录结构。
3.读取文件举例
3.1 assets目录
AssetManager a = getAssets() ;
//fileName为assets目录下需要访问的文件的名称
InputStream is = a.open(fileName) ;
//然后就可以通过输入流来读取fileName的内容了。
a.openFd(fileName)得到的AssetFileDescriptor对象来获得fileName文件的信息,例如长度等。
a.list(“”)得到assets目录下的所有文件和子目录名称的数组,
a.list(SubFolderName), 得到assets/SubFolderName下所有的文件和子目录名称的数组。
3.2 res/raw目录
InputStream is = getResources().openRawResource(R.id.fileNameID) ;
//R.id.fileNameID为需要访问的文件对应的资源ID.接着我们就可以通过输入流来读取相应文件的内容了。
4.补充
如果必须要将大于1M的文件打包到APK中,如果当前Android OS版本有1M容量的限制那怎么办?这种情况下我们可以将这些大文件事先分割成多个小于1M的文件,然后打包。在程序需要读取的时候,可以将这些分割文件依次读出,然后合并。这样非常麻烦。总之,APK中不建议打包Size很大的文件。
assets与res/raw资源目录的区别的更多相关文章
- Android中的asserts和res/raw资源目录
1.assets目录 assets目录下称为原生文件,无法通过R资源清单类访问,这类文件在被打包成apk文件时是不会进行压缩的: (1)使用方法 AssetManager assets = this. ...
- android资源目录---assets与res/raw区别
android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0 字号:大中小 订阅 assets:用于存放需要打包到应用程 ...
- AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文 ...
- 【转】android资源目录---assets与res/raw区别
blog.csdn.net/hshm20517/article/details/6461890 assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中.与res/raw不同点在于,ASS ...
- android assets与 assets与res/raw 的相同、不同点
1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过 //也可以放置图片等资源,获取方式相同 Conte ...
- 【Android】资源系列(二) -- 文件原样保留的资源assets和res/raw文件夹
这两个文件夹都能够存放文件.而在打包的时候被原样保留. 那用这两个文件夹可以做什么事呢? 1.放一个apk,要用的时候调出来.免得去下载server下载. 2.放一个sql,当app数据库非常大的时候 ...
- assets raw 资源 AssetManager
assets raw 目录简介 assets核心特性:不会被编译成二进制,支持子目录(可以分类,这是相对raw目录最大的好处),通过文件名访问,调用getAssets通过AssetManager访问 ...
- Android的xml/assets/raw资源使用具体解释
一.assets/xml/raw资源介绍 1.assets资源文件夹:assets文件夹下存放的资源代表应用无法直接訪问的原生资源,这些文件将原封不动的存储到设备上,不会被编译为二进制形式,訪问方式是 ...
- Android资源目录结构
资源目录结构 res为资源目录,主要以xml语法编写静态的资源. 资源的命名标准:小写字母和数字,且以小写字母开头. 资源的生成,为了和java语法沟通,资源文件会自动的生成在[gen]目录的R.ja ...
随机推荐
- css 滤镜之Gradient
CreateTime--2017年12月26日11:09:14 Author:Marydon ie滤镜特效之Gradient 作用: 用于设置渐变背景色 使用条件: IE9及以下版本不支持属性ba ...
- UVA 10288 - Coupons(概率递推)
UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&p ...
- Hadoop之中的一个:Hadoop的安装部署
说到Hadoop不得不说云计算了,我这里大概说说云计算的概念,事实上百度百科里都有,我仅仅是copy过来,好让我的这篇hadoop博客内容不显得那么单调.骨感.云计算近期今年炒的特别火,我也是个刚開始 ...
- 解决GitHub加载和下载慢问题
1. 修改HOSTS文件: 在“C:\Windows\System32\drivers\etc” 下的HOSTS文件,添加以下地址: 151.101.44.249 github.global.ss ...
- 2016/2/24 1,dotctype有几种? 2,了解html的发展历史
1,dotctype有几种?DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本. 其中的DTD(例如上例中的xhtml1-transition ...
- LiveWriter插入高亮代码插件介绍 基于SyntaxHighighter
Codeint main() { int i; printf("%d",i); } 插件介绍 辛苦了两人小时写日志不小心浏览器崩溃了,发誓以后一定记得用Word先写好. 将Word ...
- 代理ip proxy
import requestsimport timefrom selenium import webdriverfrom selenium.webdriver.chrome.options impor ...
- USACO44 TimeTravel 时间旅行(链表)
第一眼看到这题,woc,这不是主席树!?旁边HZ也表示同意,然后cGh队长就慢悠悠的过来:“想什么,USACO会有主席树!?” ↓打脸不解释,大家可以去%ta的博客(这样ta就不会D飞我了~)http ...
- YTU 2983: 小明的生机!
2983: 小明的生机! 时间限制: 1 Sec 内存限制: 128 MB 提交: 16 解决: 2 题目描述 小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的指定位置即可离开这处绝境 ...
- 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题
1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. ...