Android Studio项目结构

Android Studio项目结构

一、project目录结构


1. .gradle和.idea

这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑。

2. app

项目中的代码、资源等内容都放置在这个目录下。

3. build

包含在编译时自动生成的文件。

4. gradle

这个目录包含了gradle wrapper的配置文件,其中的.properties文件中的distributionUrl表示整个项目的gradle版本。使用gradle wrapper会根据本地(Service directory path)是否有缓存,来决定是否要联网下载gradle。(也可以不使用gradle wrapper的方式直接指定项目要使用的gradle版本,可以选择setting-gradle中的user local gradle distribution)。

5. gitgnore

指定目录或文件排除在git版本控制之外的。

6. build.gradle

project的gradle构建脚本。

7. gradle.properties

全局gradle配置文件,这里配置的属性将会影响项目中所有的gradle。

8. gradlew和gradlew.bat

这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。

9. local.properties

用来指定本机的Android SDK路径。

10 .MyApplication.iml

iml文件是所有InteliJ  IDEA项目的标示文件。

11. setting.gradle

用来指定项目中引入的Moudle(模块)。

二、app目录结构


1. build

编译后生成的文件,包括APK文件。

2. libs

第三方jar包存放的目录,放在这个目录下的jar包都会被自动添加到构建路径里去。

3. androidTest

此处用来编写Android Test测试用例。

4. java

存放java代码的地方。

5. res

项目中使用的图片,布局,字符串等资源文件分类存放的地方。

6. AndroidManifest.xml

Module(当前是app)的配置文件,包括四大组件的定义和权限声明。

7. test

此处用来编写Unit Test测试用例。

8. gitgnore

指定目录或文件排除在git版本控制之外的。

9. app.iml

iml文件是所有InteliJ  IDEA项目的标示文件。

10. build.gradle

Module(当前是app)的gradle构建脚本。

11. proguard-rules.pro

项目代码的混淆规则。


Android Studio中的build.gradle

1.Project目录下的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
buildscript闭包表示的是gradle本身构建项目所需要的配置,包括repositories闭包中的代码托管库jcenter()和dependencies中的gradle插件。

allprojects闭包中的repositories表示的是Project中的所有Module中的gradle可以使用代码托管库jcenter中的开源项目依赖。

2.Module目录下的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "application.myapplication"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
}
apply plugin:" "中有两种声明,当双引号中间是com.android.application表示这是一个应用程序模块,当是com.android.library表示这是一个库模块。

compileSdkVersion指定项目的编译SDK的版本。

buildToolsViersion指定项目的构建工具的版本。

applicationId指定项目的包名。

minSdkVersion指定项目最低兼容的Android系统。

targetSdkVersion指定你在该版本上已经做过充分的测试,系统将会为你的应用程序启用一些最新的功能和特性。

versionCode和versionName指定项目的版本号和版本名。

buildType闭包指定生成APK文件的相关配置,通常有两个子闭包,一个是debug,一个是release。debug闭包指定生成测试版APK文件的配置,release指定生成正式版APK文件的配置。子闭包中的minifyEnabled用于指定是否对项目代码进行混淆,true表示混淆,false表示不混淆,proguardFiles用于指定混淆时使用的规则文件,指定了两个文件,第一个proguard-android.txt是Android SDK/tools/proguard目录下的,所有项目通用的混淆规则,第二个proguard-rules.pro是在当前Module特有的混淆文件。

dependencies闭包指定当前项目的所有依赖关系,共三种依赖方式:本地依赖,库依赖和远程依赖。本地依赖。本地依赖可以对本地jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcenter库上的开源项目添加依赖关系。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值