android 工程res文件夹目录结构及命名方法

android工程 res目录结构

 

res目录是存放工程内资源文件的,目录结构如下,资源一般包括9种

  1. animator 属性动画资源
  2. anim 帧动画资源
  3. color 颜色资源
  4. drawable 图片资源
  5. layout 布局资源
  6. menu 菜单资源
  7. raw 其他资源
  8. values 值资源
  9. xml 任意的xml资源。

 

 

一、animator

定义属性动画

 

二、anim

定义帧动画(属性的动画也可以保存在这个目录,但animator/目录是首选的属性动画来区分这两种类型。

 

三、color

定义颜色状态列表的XML文件。查看颜色状态列表资源

 

四、drawable

可以存放位图文件(png、.9.png、jpg、gif 等)、编译成以下drawable文件的XML文件。

  • Bitmap files 位图文件
  • Nine-Patches (re-sizable bitmaps) .9 图片
  • State List 状态列表
  • Shapes 形状
  • Animation drawables 动画图片
  • Other drawables 其他drawables

 

五、layout

布局资源文件

 

六、menu

菜单资源文件

 

七、raw

任意文件,可以保留原始形式。

  • 系统会为res目录下所有资源生成相应的资源id,raw中的文件也不例外。。
  • 目录下不允许存在目录结构。

 

八、values

值资源文件。

  • arrays.xml 数组资源文件
  • colors.xml 颜色资源文件
  • dimens.xml 尺寸资源文件
  • strings.xml 字符资源文件
  • styles.xml 样式资源文件

 

九、xml

存放任意的xml文件,可以通过Resources.getXML()来获取资源。

 

 

 

Android res目录 文件命名规则

 

参考官方文档Providing Resources | Android中文API

配置限定符名称,有以下几个配置。

  • MCC and MNC
  • Language and region
  • smallestWidth
  • Available width
  • Available height
  • Screen size
  • Screen aspect
  • Screen orentation
  • UI mode
  • Night mode
  • Screen pixel density(DPI)
  • Touchscreen type
  • Keyboard availability
  • Primary text input method
  • Navigation key availability
  • Primary non-touch navigation method
  • Platform Version(API level)

 

MCC and MNC

MCC: 移动国家代码

MNC: 移动网络代码

MNC 和 MCC 来自SIM 卡

例如:mcc310、mcc310-mnc004、mcc208-mnc00.

 

Language and region

语言和地区。语言由1到2个字母的ISO 639-1码组成,后面跟一个1到2个字母的ISO 3166-1-alpha-2 地区代码(前面的小写字母 "r")

例如: en、fr、en-rUS、fr-rFR、fr-rCA、等等。

 

samallestWidth

屏幕的基本大小,可用屏幕区域的最短尺寸。

例如:sw320dp、sw600dp、sw720dp、等等。

 

Available width

指定最小可用屏幕宽度,当应用程序提供多个不同值的资源目录时,使用最接近但不超过设备的当前屏幕宽度。与多屏幕开发相关

例如:w720dp、w1024dp、等等。

 

Available height

指定最小可用屏幕高度,当应用程序提供多个不同值的资源目录时,使用最接近但不超过设备的当前屏幕高度。与多屏幕开发相关。

例如:h720dp、h1024dp、等等。

 

Screen size

使用大小限定符不意味着这些资源仅用于该大小的屏幕。如果不提供替代资源,系统会使用默认资源做最佳匹配。如果资源的规模大于当前屏幕,系统不会使用他们,可能会导致程序崩溃。

例如:small、normal、large、xlarge。

 

Screen aspect

屏幕的长度。

例如:long、notlong。

 

Screen orientation

屏幕的方向。如果用户旋转屏幕,可能会影响程序的生命周期。

例如:land (horizontal)、port (vertical)。

 

UI mode

用户可以通过UiModeManager来启动或禁用这些模式。

例如:car、desk、television、appliance。

television在api13添加,其他在api4添加

 

Night mode

用户可以通过UiModeManager来启用或禁用该模式。

例如:night、notnight。在api8添加

 

Screen pixel density (dpi)

屏幕的像素密度。

nodpi:可用于位图资源,不想被缩放来匹配设备密度。

使用这些限定符不意味着这些资源仅用于该密度的屏幕。如果不提供替代资源,系统会自动匹配最佳资源。

例如:ldpi、mdpi、hdpi、xhdpi、x*hdpi、nodpi、tvdpi、等等。

 

Touchscreen type

屏幕是否可以触摸。

例如:notouch、finger。

 

KeyBoard availability

是否支持硬键盘

keysexposed : 设备有键盘可用

keyshidden : 设备的硬键盘可用

keyssoft : 软键盘可用

例如:keysexposed、keyshidden、keyssoft。

 

Primary text input method

设备的输入方式。

nokeys:设备没有硬件输入

qwerty:设备使用qwerty键盘

12key:设备使用12键的键盘

可以在键盘配置字段配置。

例如:nokeys、qwerty、12key。

 

Navigation key availability

导航键的可用性

navexposed:导航键可供用户使用。

navhidden:导航键是不可用的(比如封闭的盖子)

navigationHidden 配置显示导航是否可用。

例如:navexposed、navhidden。

 

Primary non-touch navigation method

原发性非触摸导航方法。

nonav:设备没有导航设施除非利用触摸屏

dpad:设备有一个方向键导航

trackball:设备有一个轨迹球导航

wheel:设备有一个方向盘用于导航

navigation 配置显示导航方式

例如:nonav、dpad、trackball、wheel。

 

Platform Version (API level)

平台版本。

由设备支持的接口级别。

例如:v3、v4、v7、等等。

 

使用配置限定符名称的规则

  • 可以为一组资源使用多个限定名,由短线分隔。如drawable-hdpi、drawable-en-rUS-land。
  • 限定符的使用顺序必须按照上面的顺序。(参照android官方文档Providing Resources 中表2中顺序)
  • 替代资源不可以嵌套使用,即文件夹不存在目录结构。
  • 值是不区分大小写的,一般只使用小写字符
  • 每个限定类型的只有一个值被支持。(可使用别名)

 

android 工程目录结构

android工程建立完成后会有以下几个目录(基于android6.0创建工程)

  1. src 文件夹 (source code) 该文件夹存放项目源代码
  2. gen 文件夹 该文件夹下面的R.java文件是项目自动生成的,开发者不应该对其修改。里面存放的是项目中资源的索引。
  3. assets 文件夹 系统需要用到的、并且不希望编译的文件,如MP4等
  4. 一些库文件(Android6.0、Android Private Libraries、Android Dependencies等等。)
  5. bin 文件夹
  6. res 文件夹
  7. AndroidManifest.xml 文件 项目的配置文件。
  8. default.properties 文件 项目中所需要的环境信息
  9. proguard-project.txt 文件
  10. project.properties 文件
  11. ic_launcher-web.png 文件
  12. 这里缺少一 libs 文件夹 存放项目的第三方库

 

uploading.4e448015.gif正在上传…重新上传取消正在上传…重新上传取消

 

 

一、 src 文件夹

src 文件夹下存放项目的源代码,该目录下应该只含有 *.java 文件。

 

二、 gen 文件夹

gen 文件夹下的文件是系统自动生成的,开发者不应该对该文件夹内的文件进行修改。R.java 文件是工程自动生成的文件,里面存放工程中资源文件的索引。

有时候会遇到工程中R.java 文件丢失的情况。一般会分为两种情况。

  • 资源文件包含错误
  • 文件丢失

第一种情况将错误修复即可,R.java 文件会自动生成

第二种情况有两种解决方式

  • 右键点击项目 --> Android Tools --> Fix Project Properties
  • 右键点击项目 --> Properties --> Android --> 选择目标Target,点击Apply 。

 

三、assets 文件夹

存放项目需要的其他资源,该目录下的资源文件不会在R.java 文件夹中生成ID。可以存放一些小于1M的文件(Android2.3 之前的要求),这些文件将被打包到apk中。

  • 目录中文件将不做任何处理被打包
  • 目录中的文件不会被映射到R.java 文件中,即系统不会自动为其生成ID
  • 目录需要借助AssetManager去访问
  • 目录允许下面有多级目录结构

 

四、库文件

android 工程需要的开发库

 

五、bin 文件夹

存放自动生成的二进制文件、资源打包文件、dalvik虚拟机的可执行文件。在eclipse下编译完的工程会在该目录下生成apk文件,可以直接安装到手机中。

 

六、res 文件夹

存放项目的各种资源文件,资源一般包括9种

  1. animator 属性动画资源
  2. anim 帧动画资源
  3. color 颜色资源
  4. drawable 图片资源
  5. layout 布局资源
  6. menu 菜单资源
  7. raw 其他资源
  8. values 值资源
  9. xml 任意的xml资源

 

七、AandroidManifest.xml 文件

项目的配置文件,里面包括项目的名称、图标、包名、activity、权限、service、recevier等等。

 

八、default.properties 文件

九、proguard-project.txt 文件和 project.properties 文件

这两个文件是代码混淆时需要用到的参考http://http://www.cnblogs.com/0616--ataozhijia/p/3730746.html

 

十、libs 文件夹

存放项目的第三方库

 

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值