4.Android项目之文件结构

说到Android项目的文件结构,用Eclipse开发和用Android Studio开发会有些许差别,鉴于目前Google已经放弃Eclipse,本文只讲解用Android Studio开发Android项目时的文件结构

各目录功能

最外层Project下面

  • .idea:主要存放该项目在IDE编译运行时的一些必要配置文件
  • .gradle:主要存放构建工具Gradle运行时产生的一些文件
  • gradle:主要存放构建工具Gradle软件包
  • build:主要存放编译之后生成的文件

Module下面

  • src:存放源码和资源的地方
  • libs:存放着Module需要引用的第三方库的jar
  • build:存放编译之后生成的文件,例如编译完成生成的apk安装包就存在这里
  • src/androidTest:存放instrumentation单元测试相关代码
  • src/test:存放本地测试相关代码
  • src/main:存放应用源码和资源
  • src/main/java:存放应用的Java源码
  • src/main/res:存放应用的资源
  • src/main/res/drawable:存放和分辨率无关的图片、9Patch图片、9Patch类型xml文件、selector类型xml文件、shape类型xml文件、layer-list类型xml文件、scale类型xml文件、animation-list类型xml文件、bitmap类型xml文件、rotate类型xml文件、transition类型xml文件、level-list类型xml文件、inset类型xml文件、clip类型xml文件、color类型xml文件、vector类型xml文件等等
  • src/main/res/anim:存放补间动画和帧动画文件
  • src/main/res/animator:存放属性动画文件
  • src/main/res/layout:存放布局文件
  • src/main/res/values:存放项目用到的包含各种数值的xml文件
  • src/main/res/xml:存放其他类型的xml文件
  • src/main/res/raw:可以存放任意文件,该目录下的文件会直接封装到apk中,不会进行编译,一般存放各类音频、视频、文档等文件
  • src/main/res/mipmap-xxdpi:官方建议只用来存放各种dpi下不同大小的应用启动图标
  • src/main/res/drawale-xxdpi:存放各种dpi下的图片资源
  • src/main/assets:可以存放任意文件,类似raw文件目录,会将其下的文件都直接封装到apk中,与raw不同的是,还能使用文件系统的URL机制来读取该目录下的文件,例如使用AssetManager类来读取一个字节流
  • src/main/res/menu:存放定义菜单的xml文件

各文件功能

Project下面

  • .gitignore:主要用于配置使用版本控制工具Git时需要忽略的各种目录和文件
  • build.gradle:编译Project的配置信息
  • gradle.properties:构建Project的配置信息
  • local.properties:Project用到的sdk或者ndk的目录配置信息
  • settings.gradle:定义项目包含哪些模块
  • gradlew:编译脚本,可以在命令行执行打包
  • xxx.iml:项目的配置文件

Module下面

  • .gitignore:主要用于配置使用版本控制工具Git时需要忽略的各种目录和文件
  • xxx.iml:Module的配置文件
  • build.gradle:编译Module的配置信息
  • proguard-rules.pro:Module的proguard(混淆)配置文件

资源文件夹命名

大家可能有时候会发现一个Module下会有很多种类drawable名称的文件夹,目前主要使用的有以下几种

  • mdpi
  • hdpi
  • xhdpi
  • xxhdpi
  • xxxhdpi

这些目录的划分依据是设备的分辨率,如下是他们两者之间的对应关系

  • mdpi:HVGA(320x480)
  • hdpi:WVGA(480x800)、FWVGA(480x854)
  • xhdpi:720P(720x1280)
  • xxhdpi:1080P(1080x1920)
  • xxxhdpi:4K(2160x3840)

当然,也许你也发现过类似drawable-land-hdpi名称的目录,这种目录其实是带两个属性的drawable,下面我们先来看看资源文件夹的命名方法

命名规则:
资源名-属性1-属性2-属性3-属性4-属性5…..

其中,资源名就是资源类型名,包括:drawable, values, layout, anim, raw, menu, color, animator, xml;
属性的种类就更多了,而且属性之间还有优先级之分,命名的时候,属性排列的顺序必须是优先级从高到低,不然的话会编译不过

下面举个例子来看看所有可以使用的属性有哪些(优先级从高到低)

  • mcc310:sim卡运营商
  • en:语言
  • sw320dp:屏幕最小宽度
  • w720dp:屏幕最佳宽度
  • h720dp:屏幕最佳高度
  • large:屏幕尺寸
  • long:屏幕长短边模式
  • port:当前屏幕横竖屏显示模式
  • car:dock模式
  • night:白天或夜晚
  • ldpi:屏幕最佳dpi
  • notouch:触摸屏幕类型
  • keysexposed:键盘类型
  • nokey:硬按键类型
  • navexposed:方向键是否可用
  • nonav:方向键类型
  • v7:android版本
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值