Android Studio 文件类型及目录

Android Studio 文件类型及目录
Android Studio创建安卓项目成功后,就会出现以下这个文件/目录结构:

  • 1、.idea(或.build) //系统自动生成的文件,无需手动编辑。
  • 2、app //项目的代码文件和资源文件。
    • 2.1 libs //项目用到的第三方jar包(比如百度地图,极光推送等),将jar包放到此目录。
    • 2.2 release //存放打包后的apk文件,可在打包的时候是设置它的路径的。该目录并非必要有,也可在外面项目层路径下。
    • 2.3 src //有三个目录。
      • 2.3.1 androidTest目录 //编写Android Test测试用例,进行自动化测试用。
      • 2.3.2 test目录 // 编写Unit Test测试用,进行自动化测试用的。
      • 2.3.3 main目录 //中的
        • 2.3.3.1 java目录 //存放所有的项目源代码,
        • 2.3.3.2 res目录 //存放资源文件。例如:布局文件、字符串文件、图片文件等.
          • 2.3.3.2.1 layout目录 //布局文件
          • 2.3.3.2.2 values目录 //字符串文件等.
          • 2.3.3.2.3 mipmap目录,//图标
          • 2.3.3.2.4 drawable目录 //图片
          • 2.3.3.2.5 AndroidManifest.xml文件 //注册四大组件,添加应用权限等。
    • 2.4 .gitignore,将app中的文件和目录排除在版本控制之外。
    • 2.5 app.iml,IntelliJIDEA自动生成的文件,不用关心。
    • 2.6 build.gradle文件,app模块的gradle构建脚本,指定项目构建相关的配置。(非常重要,下文会详细讲解)
    • 2.7 proguard-rules.pro,是混淆文件,指定项目代码的混淆规则,为了防止apk文件被别人破解时采取混淆代码。
  • 3、build //编译时自动生成的文件
  • 4、gradle //构建项目的gradle,方便管理你构建的app项目。gradle包含gradlewrapper配置文件,使用gradle wrapper方式会自动联网下载gradle, 首先检查本地是否有缓存gradle,没有就自动联网下载gradle,这样就不用自己先下载gradle,如果要使用离线模式,可以自己设定 setting:File---Settings---Build,Execution,Deployment---Gradle
  • 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模块时,可在此文件上设置该模块路径等。

 

关于build.gradle文件(目录中有两个build.gradle文件,及以上的 2.6 和 6 项)

6项build.gradle文件:

//滔Roy 2023.04.20
// Top-level build file where you can add configuration options common to all sub-projects/modules.  顶级生成文件,您可以在其中添加所有子项目/模块通用的配置选项。
buildscript {   //构建描述
    repositories {
        jcenter()  //可添加Google的官方扩展依赖库,还有一些第三方的开源库
    }
    dependencies {   //Gradle插件。构建Android项目服务,还可构建java项目和C++项目,版本号跟Android Studio的版本号一致。
        classpath 'com.android.tools.build:gradle:2.3.2'

        // NOTE: Do not place your application dependencies here; they belong in the individual module build.gradle files
       //注意:不要在此处放置应用程序依赖项;它们属于单独的模块build.gradle文件
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

2.6项build.gradle文件:

//滔Roy 2023.04.20
apply plugin: 'com.android.application'   //引用 com.android.application 应用程序模块,还可以是com.android.library模块,表示库模块。两个模块的区别在于应用程序模块可以直接运行,库模块依附于应用程序模块。

android {
    compileSdkVersion 25    //指定项目的编译版本,25是表示使用Android 7.0系统的SDK编译。
    buildToolsVersion "25.0.0"   //指定构建项目工具的版本。

    defaultConfig {   
        applicationId "com.example.scanconfig"    //指定项目的包名,包名是唯一性,是应用的唯一标识。
        minSdkVersion 18   //指定最低的兼容的Android系统版本
        targetSdkVersion 25   //指定目前使用到最高的Android系统版本。
        versionCode 1  //指定项目版本号
        versionName "2.3.406"   //指定项目版本名。
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res', 'src/main/res', 'src/main/res/values-zh-rCN']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['jniLibs']
        }
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    buildTypes {   //指定了项目生成安装文件的相关配置,其中可指定release和debug,debug表示生成的是测试版安装包,可以不写,而release则是指定正式版安装文件的。
                   //注意:凡是在Android Studio运行生成的都是测试版安装文件。正式版需Bild—Generate Signed Bundle/Apk里产生。
        release {
            minifyEnabled false   //是否使用混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'   //设置使用的混淆文件
        }
    }
}
dependencies {  //dependencies闭包,指定了项目所有的依赖关系:本地依赖,库依赖和远程依赖。
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:preference-v7:26.+'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation files('libs/platform_sdk_v3.1.0326.jar')

    //compile fileTree(include: ['*.jar'], dir: 'libs')
    //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'
    //compile 'com.android.support.constraint:constraint-layout:1.0.2'
    //testCompile 'junit:junit:4.12'   //testImplementation
    //compile project(':SDKLibrary')
}
//本地依赖,对本地的jar包和目录添加依赖关系,implementationfileTree声明,将libs中的.jar文件都添加到构建目录中。
//远程依赖,对jcenter仓库的上的开源项目添加依赖关系,也就是平时我们在github上添加的第三方开源库,也是直接implementation,先检查本地是否有缓存,没有就直接联网下载到构建路径。
//库依赖,对项目中的库模块进行依赖,implementation project声明,通常格式为implementation project(‘:库名’)

 

 

  

 

 

 

创建时间:2023.04.20  更新时间:

posted on 2023-04-20 14:52  滔Roy  阅读(268)  评论(0编辑  收藏  举报

导航