Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android中asset文件夹和raw文件夹区别

Android中asset文件夹和raw文件夹区别

作者头像
凌川江雪
发布于 2018-09-13 05:08:25
发布于 2018-09-13 05:08:25
1.2K0
举报
文章被收录于专栏:李蔚蓬的专栏李蔚蓬的专栏

转载自:CSDN博客

这阵子有位同学在一个命名非“raw”的文件夹中放置mp3文件,导致R文件报错,故此研究,寻得此篇文章,特做分享。


摘自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html

Android中asset文件夹和raw文件夹区别

*res/raw和assets的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

*res/raw和assets的不同点:

1.res/raw

中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

*读取文件资源:

1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

·        InputStream is =getResources().openRawResource(R.id.filename);

2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

·        AssetManager am =null;

·        am = getAssets();

·        InputStream is = am.open("filename");

注意1:Google的Android系统处理Assert有个bug,在AssertManager中不能处理单个超过1MB的文件,不然会报异常,raw没这个限制可以放个4MB的Mp3文件没问题。

注意2:assets 文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像 xml, java 文件被预编译,可以存放一些图片,html,js, css 等文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.06.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Assets和res目录的区别
立一个Android项目后会产生assets与res的两个文件夹,理论上他们都是存放资源的文件夹,那么他们到底有什么区别呢?
包子388321
2020/06/16
2.3K0
A011-Raw资源
前面的笔者介绍过了assets资源,这节课介绍的是在res目录下的raw资源,路径为res/raw。处理assets资源外,我们程序中涉及到的资源文件都在res目录下,比如前面介绍过的drawable资源、menu资源,后面会陆续介绍其他资源类型。 ---- 我们要如何获取raw下的资源,它跟assets目录的资源有什么异同,这个是我们Android开发者需要去关注的。 共同点 两者都不会被编译成二进制文件,也就是说它们是会原封不动打包到apk文件中的 不同点 assets不会被映射到R文件中,而r
巫山老妖
2018/07/20
5270
A007-assets资源
本节课开始讲Android中所用到的一些资源,首先来讲assets资源,它是Android的其中一种资源,跟raw和drawable资源有点不同,我们获取这个目录下的文件需要指定文件的路径,它里面的文件不会映射到R.java文件中,而res目录下的资源文件时会自动映射到R.java中,我们打包成apk的时候,assets目录下的文件不会被编译成二进制文件,而是直接打包到apk文件中。我们可以打包项目成apk,然后更改它的后缀名为.zip,再进行解压,可以看到assets目录的文件。
巫山老妖
2018/07/23
6770
A007-assets资源
Android开发笔记(二十五)assets目录下的文件读取
assets目录用于存放应用程序的资产文件,该目录下的文件不会被系统编译,所以无法通过R.*.*这种方式来访问。Android专门为assets目录提供了一个工具类AssetManager,通过该工具,我们能够以字节流方式打开assets下的文件,并将字节流转换为文本或者图像。 AssetManager提供了如下方法用于处理assets: 1、 String[] list(String path); 列出该目录下的下级文件和文件夹名称 2、 InputStream open(String fileName); 以顺序读取模式打开文件,默认模式为ACCESS_STREAMING 3、 InputStream open(String fileName, int accessMode); 以指定模式打开文件。读取模式有以下几种: ACCESS_UNKNOWN : 未指定具体的读取模式 ACCESS_RANDOM : 随机读取 ACCESS_STREAMING : 顺序读取 ACCESS_BUFFER : 缓存读取 4、 void close() 关闭AssetManager实例
aqi00
2019/01/18
11.2K0
Android 读写文件的N种写法
Android 读写文件的N种写法(待续。。。) 读取raw文件 // 读取raw文件 private void rawRead(){ String ret = ""; try { InputStream is = getResources().openRawResource(R.raw.my_raw); int len = is.available(); byte []buffer = new byte[len]; is.read(buff
阳光岛主
2019/02/19
3.2K0
Android插件化学习之路(四)之使用插件中的R资源
res里的每一个资源都会在R.java里生成一个对应的Integer类型的id,APP启动时会先把R.java注册到当前的上下文环境,我们在代码里以R文件的方式使用资源时正是通过使用这些id访问res资源,然而插件的R.java并没有注册到当前的上下文环境,所以插件的res资源也就无法通过id使用了。
老马的编程之旅
2022/06/22
6420
Android 常见问题之Assets文件大小限制
Android中有个很恶心的潜规则,就是当assets或是raw目录下单个压缩文件大小超过1024K之后,编译期appt会去强行处理此文件,使得我们运行期读取的时候会收到一个
战神伽罗
2019/07/24
3.2K0
开心档之Java 流(Stream)、文件(File)和IO
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
爱学iOS的小麦子
2023/02/15
4760
Android网络与数据存储——File存储(实现SD卡文件浏览器)
AndroidManifest.xml中manifest标签下有一个属性android:installLocation,用于指定应用程序安装在什么地方,该属性有三个可选值:
trampcr
2018/09/28
1.7K0
Android网络与数据存储——File存储(实现SD卡文件浏览器)
Android APK编译流程
apk 是Android Package的简写, 在平时的开发过程中,通过点击Run app 按钮 或者 在命令行中输入
艳龙
2021/12/16
2K0
Android APK编译流程
Android中的资源
Android中的资源是一种非常优秀的、高效的解耦设计,通过使用资源文件,Android应用可以把各种字符串、图片、颜色、界面布局等交给XML文件管理,可以避免在Java代码中以硬编码的方式直接定义这些内容。本章中我们就针对Android中的各种资源,包括字符串资源、尺寸资源、样式和主题资源、图片资源、布局资源等以及国际化和资源自适应等知识进行深入讲解。
用户9184480
2024/12/17
1260
Android中的资源
Android读写assets、raw、sdard和工程文件的方法
  Android开发离不开对文件的操作,前面的文章“Android简易数据存储之SharedPreferences”和“Android数据存储之SQLite的操作”,分别讲解了简单的数据的存储和数据库数据的操作。然而,前面的两篇文章都未涉及具体文件的操作。下面来看下Android是怎么操作其内置目录文件及外部sdcard数据的。
全栈程序员站长
2022/07/05
1.3K0
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
在Android APP中,所有用户界面元素都由View和ViewGroup对象组成。视图是用户在屏幕上绘制时可以与之交互的对象。ViewGroup是用于存储其他View(和ViewGroup)对象的布局容器!Android为我们提供了View和ViewGroup子类的集合,其中提供了一些常见的输入控件(如按钮和文本字段)和各种布局模式(如线性或相对布局)
上进小菜猪
2022/12/22
6840
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
android 解决asset下面文件太大报错问题
Android 中对asset中存放文件 大小有一定限制,如果超过1M会报 Data exceeds UNCOMPRESS_DATA_MAX 这个错误
再见孙悟空_
2023/02/16
6170
android 解决asset下面文件太大报错问题
数据存储之文件存储
openFileOutput和openFileInput方法可以获得操作文件的OutputStream以及InputStream对象,而且可以通过流对象处理任何文件的数据,但是这两个方法同SharedPreferences一样,只能在手机内存卡的指定目录建立文件,因此在使用上仍然有一定的局限性。
小小工匠
2021/08/16
23.6K0
AssetManager asset的使用
Android 系统为每一个新设计的程序提供了/assets文件夹,这个文件夹保存的文件能够打包在程序里。/res 和/assets的不同点是,android不为/assets下的文件生成ID。假设使用/assets下的文件,须要指定文件的路径和文件名称。以下这个样例,显示怎样訪问/assets下的内容。
全栈程序员站长
2021/12/05
7300
Android开发 经验技巧汇总(基于Android Studio)(二)
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
cutercorley
2020/07/23
1.3K0
Android开发 经验技巧汇总(基于Android Studio)(二)
Android图片相关
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB8888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
码客说
2019/10/22
7330
你必须要懂的APK瘦身知识
作者:我是吸血鬼 链接:https://www.jianshu.com/p/5921e9561f5f 著作权归作者所有,欢迎投稿。 随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。 废话不多说了,开始正题。 1.APK结构的那些事 知己知彼,方能百
用户1269200
2018/06/22
7650
相关推荐
Assets和res目录的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文