在安装完成Android studio,进行开发之前,对于工程目录结构的了解是必不可少的。
APP工程结构工程目录说明
Android studio的工程目录分为两个层级:
第一层是通过File—>New—>New project创建的新的工作空间(就是新的工程项目)
第二层是通过File—>New—>Module创建的新模块(一个单独的APP工程,运行在工作空间中)
以下是一个工程项目的目录结构图
该工程结构主要由两大结构构成:app和Gradle Scripts。
app
app目录下有3个子目录,功能说明如下:
(1)manifests子目录,下面只有一个xml文件,为AndroidManifest.xml,是App运行的配置文件
(2)java子目录,下面有3个com.example.myapplicationtest3的包(以com.example.项目名称为后缀的),其中第一个包存放的是APP的工程的java源代码,后面两个包存放的是测试用的java代码。
(3)res子目录,存放的是APP工程的资源文件。下面默认有4个子目录:
drawable目录:存放的是图形描述文件与用户上传的图片 layout目录:存放的是APP页面的布局文件。 mipmap目录:存放是的启动图标等图标类文件。 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,配置哪些模块在一起编译。初始内容为inclue’:app’,表示只编译APP模块。
(5)local.properties,项目的本地配置,一般无须改动。该文件是在工程编译时自动生成的,用于描述开发者本机的环境配置,如SDK的本地路径等。
配置文件build graddle
项目(Project)级别的build gradle文件一般无须改动,只需要关注模块(Module)级别的build graddle文件。这里对build graddle文件进行相关参数的文字注释。
apply plugin: 'com.android.application'
android {
//编译指定的SDK版本号。如29表示使用Android 10编译
compileSdkVersion 29
//指定编译工具的版本号。具体版本号可在SDK安装目录查询。这里的头两位数字必须与编译SDK版本号一致
buildToolsVersion "29.0.3"
defaultConfig {
//指定该模块的应用编号,也是APP的包名。自动生成,无需修改
applicationId "com.example.myapplicationtest3"
//指定APP适合运行的最小SDK版本号
minSdkVersion 22
//指定目标设备的SDK版本号,即最优版本号
targetSdkVersion 29
//指定APP的应用版本号
versionCode 1
//指定APP的应用版本名称
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
//指定是否开启代码混淆功能,true表示开启,false表示无需
minifyEnabled false
//指定代码混淆规则文件的文件名
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
//指定APP的版本依赖信息
dependencies {
//指定引用jar包的路径
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
//指定单元测试编译用的junit版本号
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.mediarouter:mediarouter:1.0.0'
}
小结
对于工程目录结构的熟悉度直接决定了开发的效率,比如如何进行配置,如何存放图片等资源,所以要时时加深印象。
作者:Maverlous Zhao