01. 工程结构目录

243 阅读2分钟

1. 工程目录结构

image.png

按照功能大致可以分为两个部分:一个是app部分,代表应用程序代码;另一个是Gradle Scripts,代表项目和当前模块的编译配置文件。

2.APP工程目录介绍

其中,app下面又有3个子目录,主要分为三个部分:APP的运行时配置文件,APP源代码,APP资源文件,其说明如下:

  1. manifests子目录,下面只有一个XML文件,即AndroidManifest.xml,它是App的运行时配置文件。

  2. java子目录,下面有2个com.example.myapp包,其中第一个包存放当前模块的Java源代码,另外一个包存放测试用的Java代码。如下图:我这里是kotlin+java,但是结构还是一样的。

image.png

  1. res子目录,存放当前模块的资源文件。res下面又有4个子目录:

    • drawable目录存放图形描述文件与图片文件。

    • layout目录存放App页面的布局文件。

    • mipmap目录存放App的启动图标。

    • values目录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。

3.Gradle Scripts

image.png

Gradle Scripts下面主要是工程的编译配置文件,主要有:

  1. build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则。
  2. config.gradle,管理sdk版本和库倚赖统一配置,可以在项目级build.gradle中引入,并在模块级build.gradle中使用其内部定义的变量,来统一集中管理库的倚赖。
  3. proguard-rules.pro,该文件用于描述Java代码的混淆规则。代码混淆的主要目的是通过重命名类、方法和字段的名称,使代码难以被反编译和理解,从而保护代码的安全性。
  4. gradle.properties,该文件用于配置Gradle 构建工具的一些全局选项,如,构建时堆的大小等,一般无须改动。
  5. gradle-wrapper.properties:用于配置自动下载并使用指定版本的 Gradle 构建工具。这对于确保团队成员和 CI 环境中使用一致的 Gradle 版本非常有用。
  6. local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等
  7. settings.gradle,该文件主要配置了需要编译哪些模块。初始内容为include ':app',表示只编译app模块。
  8. and_res_guard.gradle,用户自定义的gradle,用于配置AndResGuard,主要用于资源文件的混淆,功能类似proguard-rules.pro。参考:

这只是初步介绍,接下来我们会在后续的章节中展开进行详细的介绍。