Android 项目 目录结构文件分析以及在版本控制中需忽略的文件

Android项目目录结构文件分析

AndroidStuidio新建一个项目后会生成各种文件,了解各个文件的作用更好的帮助自己理解和纠错能力,所以记录下
在project视图,一个新项目可看到如下项目结构


project.png

1、.gradle 和 .idea
这两个目录存放Android Stuido自动生成的文件,无需关心,不需要编辑
2、app
该目录下存放项目中的代码、资源文件等,开发工作也主要是在该目录下
3、build
该目录包含一些编译时自动生成的文件
4、gradle
该目录包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好而是会自动根据本地缓存情况决定是否联网下载gradle。
5、.gitgnore
该文件主要用来指定目录或文件排除在版本控制之外
6、build.gradle
该文件是项目全局的gradle构建脚本,通常不需要修改

build_gradle.png

repositories的闭包中声明了jcenter(), jcenter()是一个代码托管仓库,Android开源项目很多都托管在该库中,声明了配置后,我们的项目就可以引用jcenter上的开源项目。然后dependencies闭包中使用classpath声明了一个Gradle插件,为什么声明该插件??因为Gradle不是专门为Android项目而开发的,因此需要生命该插件来构建Android项目。

7、gradle.properties
该文件是全局gradle配置文件,该文件中配置的属性会影响项目中所有的gradle编译脚本
8、gradlew 和 gradlew.bat **
这两个文件用来在命令行界面中执行gradle命令
9、
XXX.iml**
iml文件是所有IntelliJ IDEA项目自动生成的文件,用于标识这是一个IntelliJ IDEA项目,无需修改该文件的任何内容
10、local.propertoes
该文件用于指定本机中的Android SDK路径,通常是自动生成的,不要需要修改。如果Android SDK路径发生了改变,也需要在该文件中进行修改。
11、setting.gradle
该文件用于指定项目中所有引入的模块,

接下来,看下开发目录app中的内容


app.png

1、build 该目录包含编译时自动生成的文件,不过内容更多,我们无需关心
2、libs 该目录存放项目中用到的第三方jar包,系统会自动把该目录下的jar包添加到构建路径中
3、src
androidTest
该目录是用来写测试用例的,可对项目进行一些自动化测试

main 开发中主要用到的文件目录

java 该目录存放项目的java代码
res 该目录存放项目中用到的图片、布局等所有资源文件。
AndroidManifest,xml
该文件是项目的配置文件,程序中所有的四大组件都要在该文件中进行注册,给应用程序的权限声明也在该文件中。

4、test
该文件下用来编写Unit Test 测试用例,是对项目自动化测试的另一种方式
5、.gitgnore
该文件用于将app模块内的指定目录文件排除在版本控制之外
6、app.iml
IntelliJ IDEA 项目自动生成的文件
7、build.gradle
app模块的gradle构建脚本,该文件会在很多项目构建相关的配置

build_gradle.png

第一行应用了一个插件,一般有两个之可选:'com.android.application'表示这是一个应用模块,'com.android.library'表示这是一个库模块。

然后一个android闭包,配置项目的各种属性,

defaultConfig闭包对项目进行更多的细节配置。
buildTypes闭包用于指定生成安装文件的相关配置,通常只会有两个闭包debug和release,debug闭包用于生成测试版安装文件的配置,release闭包用于省城正式版安装文件的配置。minfyEnabled 用于指定是否对项目进行混淆 proguardFiles用于指定混淆时使用的规则文件,默认指定了两个proguard-android.txt是Android SDK目录下的,里面编写当前项目通用的混淆规则。proguard-rules.pro是当前项目根目录下的,里面编写的是当前项目特有的混淆规则,

最后dependencies闭包,用来指定当前项目的依赖关系,通常AndroidStudio项目有三种依赖方式:本地依赖、库依赖、远程依赖。
本地依赖:对本地jar包或目录添加依赖关系
库依赖:对项目的库模块添加依赖关系
远程依赖:对jcenter库开源项目的依赖

8、**proguard-rules.pro **
该文件用于指定项目代码的混淆规则

在Github上提交代码需要忽略的文件

需要忽略的文件
1、.idea文件夹
2、.gradle文件夹
3、所有的build文件夹
4、所有的.iml文件
5、local.properties文件。

方式一:使用Settings添加

在File--Settings--Version Control-- Ignored Files中进行相关的配置,


settings_ignored.png
方式二:配置.gitgnore文件(项目根目录和moudle下均配置)
image.png

image.png

配置好后,提交项目就会自动忽略该文件了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容