当前位置:首页 > 软件开发 > Android Studio里项目的各目录与文件

Android Studio里项目的各目录与文件

N31年前 (2023-09-17)软件开发695

该系列主要分析Android Studio里各目录与文件及其作用,以及在工作中会遇到的坑与解决方法,特别是拉取项目到自己的AS里时,会遇到各种各样的问题,都是需要理解这些目录与文件是干什么,才能让你有思路可寻,然后去解决,不然只会百度或google来复制别人的答案来解决,只会不求甚解。

今天先来说说这些目录与文件以及他们的作用。

一、总项目的目录结构

我们使用Android Studio创建安卓项目成功后,就会出现以下这个文件结构:

v2-de9c6550f5ded5de1ee348448c568fdc_720w.webp

1).idea(还有个.build)都是自动生成的文件,无需理会,无需手动编辑。

2)app,最重要的文件,里面放置的就是项目的代码文件和资源文件。(下文会详细讲它里面的文件)

3)build,编译时自动生成的文件,无需关心。

4)gradle,顾名思义,就是构建项目的gradle,为了使得构建你的app项目方便管理,使用gradle是最好的。而gradle文件里面包含gradlewrapper配置文件,使用gradle wrapper方式会自动联网下载gradle,,当然AndroidStudio会首先检查本地是否有缓存gradle,没有就会自动联网下载gradle,这样就不用自己先下载gradle,当然如果要使用离线模式,也可以自己setting:File---Settings---Build,Execution,Deployment---Gradle,如图所示:

v2-4b195082c091c9f241e57a4546f7b5f1_720w.webp


5).gitignore文件,将指定的文件排除在版本控制之外。

6)build.gradle,项目全局的gradle构建脚本,也是重要的文件之一。

7)gradle.properties,全局的gradle配置文件,这里配置的属性能影响到项目所有的gradle编译脚本。

8)gradlew和gradlew.bat,用于在命令行界面下执行gradle命令,gradlew在linux和mac中执行,gradlew.bat则在windows下执行。

9)local.properties,本机中AndroidSDK的路径,一般自动生成,除非发生变化,则要修改。

10)XXX.iml,表示该项目是IntelliJIDEA项目。

11)setting.gradle,用于指定项目中所有引入的模块。一般可自动生成,也可自行设置,比如引入flutter模块时,可在此文件上设置该模块路径等。


二、app目录下的结构

app该目录是最重要的,因为它就是项目源码的所在地方,它的目录结构如下:


1)libs,如项目需用到第三方jar包(比如百度地图,极光推送等),则需要将这些jar包放到此目录下。

2)release,该目录并不是非得有,也可以在外面项目层路径下,它是存放你打包后的apk文件,你在打包的时候是可以设置它的路径的。

3)src,有三个目录,androidTest目录用来编写Android Test测试用例的,进行自动化测试用的。test目录则用来编写Unit Test测试用的,也是进行自动化测试用的。main目录中的java目录则是存放所有你的项目源代码,res目录则存放资源文件,资源文件是什么,就是你的布局文件,字符串文件,图片文件等,都放此目录,当然布局文件存放在layout目录,字符串文件等放在values目录,图标则放在mipmap目录下,图片则放在drawable目录下。最后,还有一个文件AndroidManifest.xml文件,它是注册四大组件的,还可以添加应用权限。

4).gitignore,将app中的文件和目录排除在版本控制之外。

5)app.iml,IntelliJIDEA自动生成的文件,不用关心。

6)build.gradle文件,app模块的gradle构建脚本,指定项目构建相关的配置。(非常重要,下文会详细讲解)

7)proguard-rules.pro,是混淆文件,指定项目代码的混淆规则,为了防止apk文件被别人破解时采取混淆代码。


三、最外层目录下的build.gradle文件和app目录下的build.gradle文件

1)最外层目录下的build.gradle文件,它的代码如图所示:


结构非常清晰,buildscript意思构建描述,repositories里声明的google()和jcenter()分别表示添加Google自己的官方扩展依赖库,还有一些第三方的开源库,声明了这两个库,那么项目中就可以轻松引用这些仓库中的依赖库了。Dependencies里声明的是Gradle插件,因为Gradle插件不仅仅为构建Android项目服务的,它还可以构建java项目和C++项目的,所以要声明Gradle插件是构建Android项目的,版本号跟Android Studio的版本号一致。allprojects里的声明同上,不解释了。

2)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(‘:库名’)

今天就分享到这里,之后会不定时更新此系列,下篇将讲解平时工作会遇到的问题,它们的解决方法分别与在这些目录与文件里的设置有关。


扫描二维码推送至手机访问。

文章内容摘自网络,如有侵权请联系本站删除。

本文链接:http://i.net3c.com/post/241.html

相关文章

开发中常用消息系统对比

开发中常用消息系统对比

RabbitMQ Erlang编写,支持多协议 AMQP,XMPP,SMTP,STOMP。支持负载均衡、数据持久化。同时 支持Peer-to-Peer和发布/订阅模式;Redis 基于Key-Valu...

Gradle sync failed: Could not GET 'https://dl.google.com/dl/android/

Gradle sync failed: Could not GET 'https://dl.google.com/dl/android/

2023/8/27 002722:12 * daemon not running; starting now at tcp:503722:12 * daemon started successfull...

tomcat服务器怎么启动

tomcat服务器怎么启动

 启动Tomcat服务器可以分为使用命令行启动和使用图形界面启动两种方法。一、使用命令行启动Tomcat服务器步骤如下:  1. 打开命令行窗口或终端。  2. 进入Tomcat服务器的bin目录。例...

Java 环境变量配置

Java 环境变量配置

1、系统变量→新建 JAVA_HOME 变量 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_1912、系统变量→寻找 Path 变量→编辑(Win10系统)...

Android官方建议关于Android APP UI界面设计的一些参考原则

Android官方建议关于Android APP UI界面设计的一些参考原则

  下面是来自于Android官网给出了关于Android APP UI界面设计的一些参考原则,希望对广大ui设计师能带来帮助,尤其是在进行Andriod相关界面设计的时候。  Android安卓手机...

Android studio怎么修改重命名文件名

Android studio怎么修改重命名文件名

使用的Android studio的很多的项目的文件都是通过自己进行创建成功的,创建的完成之后项目的名称或者是文件,都需要填写入文件名称,但是创建完成之后的文件名觉得不合适了,就想需要对文件名重新命名...