Android中asset文件夹和raw文件夹区别
转载自:CSDN博客
这阵子有位同学在一个命名非“raw”的文件夹中放置mp3文件,导致R文件报错,故此研究,寻得此篇文章,特做分享。
摘自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html
*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 等文件。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
搞懂Java动态代理
前言 在日常开发中,我们经常接触到Spring AOP、Mybatis DAO接口映射、hsf consumer调用这些概念,而这些技术的实现又都绕不开动态代理。这篇文章,旨在彻底的搞懂动态代理是个什么鬼,JDK中如何实现动态代理这两个点。 java 静态代理 静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。 这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性。 一个典型的代理模式通常有三个角色,这里称之为代理三要素 共同接口 public interface Action { public void doSomething(); } 真实对象 public class RealObject implements Action{ public void doSomething() { System.out.p...
-
下一篇
Tensorflow快餐教程(13) - 程序员学深度学习快速入门五步法
程序员学深度学习快速入门五步法 作为一个程序员,我们可以像学习编程一样学习深度学习模型开发。我们以Keras为例来说明。 我们可以用5步 + 4种基本元素 + 9种基本层结构,这5-4-9模型来总结。 5步法: 构造网络模型 编译模型 训练模型 评估模型 使用模型进行预测 4种基本元素: 网络结构:由10种基本层结构和其他层结构组成 激活函数:如relu, softmax。口诀: 最后输出用softmax,其余基本都用relu 损失函数:categorical_crossentropy多分类对数损失,binary_crossentropy对数损失,mean_squared_error平均方差损失, mean_absolute_error平均绝对值损失 优化器:如SGD随机梯度下降, RMSProp, Adagrad, Adam, Adadelta等 9种基本
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL数据库在高并发下的优化方案
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Hadoop3单机部署,实现最简伪集群