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 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!