android工程中assets文件夹是干什么用的

android工程中assets文件夹是干什么用的,第1张

存放资源文件,系统在编译的时候不会编译assets下的资源文件。

Android是一种基于Linux的自由及开放源代码的 *** 作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大昌卖陆地区较多人使用“安卓”或“安致”。

Android *** 作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与耐明逗84家硬件制造商、槐尺软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。

2017年3月,Android全球网络流量和设备超越Microsoft Windows,正式成为全球第一大 *** 作系统。2017年8月,Android O发布。

系统编迟坦译候编译assets资源文件所我能通R.XXX.ID式访问我能能通该资源绝路径访问呢拍御apk安装放/data/app/**.apk目录apk形式存asset/res绑定apk并解压/data/data/YourApp目录袭旦岩所我直接获取assets绝路径根本没

立一个Android项目后会产生assets与res的两个文件夹,理论上他们都是存放资源的文件夹,那么他们到底有什么区别呢?

1.assets:不会在R.java文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装包中

2.res:会在R.java文件下生成标记,这里的资源会在运行打包 *** 作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。

在res文件夹下其实还可以定义一下目录:

res/anim:这里存放的是动画资源。

res/xml:可以在Activity中使用getResource().getXML()读取这里的资源文件

res/raw:该目录下的文件可以直接复制到设备上,编译软件时,这里的数据不需要编译,直接加入到程序安装包中,使用方法是getResource().OpenRawResources(ID),其中参数ID的形式是R.raw.XXX.

*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 等文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12302484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存