App工程分为两个层次,一个层次是项目,另一个层次是模块
模块依附于项目,每个项目至少有一个模块,也能拥有多个模块
一般所言的"编译运行App",指的是运行某个模块,而非运行某个项目,因为模块才对应实际App
App项目下面有两个分类:app(代表app模块)、Gradle Scripts
app下面有3个子目录,Gradle Scripts下面主要是工程的编译配置文件
app下面3个子目录:
(1)manifests:下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文件。
(2)java:下面有3个com.example.myapp包,其中第一个包存放当前模块的java源代码,后面两个包存 放测试用的java代码。
(3)res:存放当前模块的资源文件。res下面又有4个子目录
- drawable:存放图形描述文件与图片文件
- layout:存放app的页面的布局文件
- mipmap:存放app的启动图标
- values:存放一些常量定义文件,例如字符串常量string.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。
Gradle Scripts下面主要主要文件有:
(1)build.gradle:该文件分为项目级与模块级两种,用于描述app工程的编译规则。
(2)proguard-rules.pro:该文件用于描述java代码的混淆规则。
(3)gradle.properties:该文件用于配置编译工程的命令行参数,一般无需改动。
(4)settings.gradle:该文件配置了需要编译哪些模块。初始内容为include:'app',表示只编译app模块。
(5)local.properties:项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。
Gradle是一个项目自动化构建工具,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作