Android assets目录与res目录的区别

导读

  • 移动开发知识体系总章(Java基础、Android、Flutter)
  • assets目录与res目录的区别

assets目录与res目录的区别

assets res/raw res/drawable
获取资源方式 文件路径+文件名 R.raw.xxx R.drawable.xxx
是否被压缩 NO NO YES(失真压缩)
能否获取子目录资源 YES NO NO
  1. res会在R.java生成索引ID,在打包的时候判断资源有没有用到,没用到的时候不会被打包进apk中(res/raw文件夹除外),而assets不会。
  2. res用getResource()访问,assets用AssetsManager访问。
  3. res/raw与assets里的文件在打包的时候都不会被系统二进制编译,都被原封不动打包进APK,通常用来存放游戏资源、脚本、字体文件等。但res/raw不可以创建子文件夹,而assets可以。
  4. res/xml会被编译成二进制文件。res/anim存放动画资源。

assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中。与res/raw不同点在于,assets支持任意深度的子目录。这些文件不会生成任何资源ID,必须使用/assets开始(不包含它)的相对路径名。

res:用于存放应用程序的资源(如图标、GUI布局等),将被打包到编译后的Java中。不支持深度子目录.

在android开发中,我们离不开资源文件的使用,从drawable到string,再到layout,这些资源都为我们的开发提供了极大的便利。

资源文件

/res/drawable

存放布局文件

/res/layout

存放动画资源

/res/anim

存放基于XML的菜单描述

res/menu

存放通用的文件, 该文件夹内的文件将不会被编译成二进制文件,按原样复制到设备上。

res/raw

存放字符串、尺寸值

res/values

存放通用的XML文件

res/xml

你可能感兴趣的:(Android assets目录与res目录的区别)