一、总项目的目录结构
我们使用Android Studio创建安卓项目成功后,就会出现以下这个文件结构:
.idea是自动生成的文件,无需理会。
app为最重要的文件,里面放置的便是项目的代码文件和资源文件。
gradle,顾名思义,就是构建项目的gradle。为了使得构建你的app项目方便管理,使用gradle是最好的。而gradle文件里面包含gradlewrapper配置文件,使用gradle wrapper方式会自动联网下载gradle,,当然AndroidStudio会首先检查本地是否有缓存gradle,没有就会自动联网下载gradle,这样就不用自己先下载gradle。
.gitignore文件,将指定的文件排除在版本控制之外。
build.gradle,项目全局的gradle构建脚本,也是重要的文件之一。
gradle.properties,全局的gradle配置文件,这里配置的属性能影响到项目所有的gradle编译脚本。
gradlew和gradlew.bat,用于在命令行界面下执行gradle命令,gradlew在linux和mac中执行,gradlew.bat则在windows下执行。
local.properties,本机中AndroidSDK的路径,一般自动生成,除非发生变化,则要修改。
setting.gradle,用于指定项目中所有引入的模块。一般可自动生成,也可自行设置,比如引入flutter模块时,可在此文件上设置该模块路径等。
二、app目录下的结构
app该目录是最重要的,因为它就是项目源码的所在地方,它的目录结构如下:
libs,如项目需用到第三方jar包(比如百度地图,极光推送等),则需要将这些jar包放到此目录下。
src,有三个目录,androidTest目录用来编写Android Test测试用例的,进行自动化测试用的。test目录则用来编写Unit Test测试用的,也是进行自动化测试用的。main目录中的java目录则是存放所有你的项目源代码,res目录则存放资源文件,资源文件是什么,就是你的布局文件,字符串文件,图片文件等,都放此目录,当然布局文件存放在layout目录,字符串文件等放在values目录,图标则放在mipmap目录下,图片则放在drawable目录下。最后,还有一个文件AndroidManifest.xml文件,它是注册四大组件的,还可以添加应用权限。
.gitignore,将app中的文件和目录排除在版本控制之外。
build.gradle文件,app模块的gradle构建脚本,指定项目构建相关的配置。
proguard-rules.pro,是混淆文件,指定项目代码的混淆规则,为了防止apk文件被别人破解时采取混淆代码。
三、最外层目录下的build.gradle文件和app目录下的build.gradle文件
最外层目录下的build.gradle文件,它的代码如图所示:
buildscript意思构建描述,repositories里声明的google()和jcenter()分别表示添加Google自己的官方扩展依赖库。一些第三方的开源库声明了这两个库,那么项目中就可以轻松引用这些仓库中的依赖库了。Dependencies里声明的是Gradle插件,因为Gradle插件不仅仅为构建Android项目服务的,它还可以构建java项目和C++项目的,所以要声明Gradle插件是构建Android项目的,版本号跟Android Studio的版本号一致。allprojects里的声明同上,不解释了。
app目录下的build.gradle文件,它的代码如图所示:
第一行,apply是引用了com.android.application这个插件,代表它是一个应用程序模块,还可以apply另外一种模块,就是com.android.library模块,它表示库模块。两个模块的区别在于应用程序模块是可以直接运行,库模块是依附于应用程序模块的。
接下来就是android闭包,compileSdkVersion为指定项目的编译版本。29是表示使用Android 10.0系统的SDK编译。buildToolsVersion,指定构建项目工具的版本。
defaultConfig里的applicationId,指定项目的包名,包名是唯一性,是应用的唯一标识。minSdkVersion指定最低的兼容的Android系统版本,targetSdkVersion则指定目前使用到最高的Android系统版本。versionCode指定项目版本号,versionName则指定项目版本名。
buildType里则是指定了项目生成安装文件的相关配置,其中可指定release和debug。debug表示生成的是测试版安装包,可以不写上去,而release则是指定正式版安装文件的。minifyEnabled表示是否使用混淆,而它的下一行则是设置使用的混淆文件。这里补充一点,凡是在Android Studio运行生成的都是测试版安装文件。正式版需Bild—Generate Signed Bundle/Apk里产生。
dependencies闭包里则指定了项目所有的依赖关系:本地依赖,库依赖和远程依赖。
本地依赖,对本地的jar包和目录添加依赖关系,implementationfileTree声明,将libs中的.jar文件都添加到构建目录中。
远程依赖,对jcenter仓库的上的开源项目添加依赖关系,也就是平时我们在github上添加的第三方开源库,也是直接implementation,先检查本地是否有缓存,没有就直接联网下载到构建路径。
库依赖,对项目中的库模块进行依赖,implementation project声明,通常格式为implementation project(‘:库名’)
来源地址:https://blog.csdn.net/qq_57260499/article/details/129491004