Android开发环境使用工具Android Studio工程目录结构
一、Android Studio新建Android工程项目后的界面
二、.gradle目录:.gradle目录是Android Studio自动生成的目录,一般情况不做修改。
三、.idea目录:.idea目录是Android Studio自动生成的目录,一般情况不做修改。
四、module(app)目录
1、module(app)目录下的build目录:module(app)目录下的build目录包含编译时自动生成的内容,其中在outputs文件夹下存放打包好的apk文件(debug和release)。
2、module(app)目录下的libs目录:如果项目中使用了第三方的jar包,就需要把jar包放到module(app)目录下的libs目录中,然后jar包会被自动添加到构建路径(如集成百度地图sdk,把jar包放到libs目录下,可以在build.gradle(app)文件中查看当前项目依赖)。
3、module(app)目录下的src目录
(1)、module(app)目录下的src目录下的android Test文件:用来编写android test 测试用例的,可以对项目进行一些自动化测试。
(2)、module(app)目录下的src目录下的java文件:存放Java代码的地方
(3)、module(app)目录下的src目录下的res文件:存放资源的目录 图片存放在drawable(根据不同的分辨率可以有多个文件夹,有的app会根据不同分辨率显示分辨率不一样的图片,如果你只有一套图片想适用在各个分辨率下,建议放置在drawable-xxhdpi文件夹下,之前读过一篇文章分析放在该文件夹下资源消耗最小)、布局文件在layout、字符串在values、mipmap文件夹主要存放图标(引导页的图片也建议放在这里,之前在写一个引导页的demo开始图片放在了drawable下,滑动的时候卡的一批,后来发现放到mipmap下就不会卡了)。
(4)、module(app)目录下的src目录下的AndroidManifest.xml文件:整个项目的配置文件,四大组件都需要在这里注册才能正常的运行。
(5)、module(app)目录下的src目录下的test文件:用来编写Unit Test测试用例的,是对项目进行自动化测试的另一种方式。
4、module(app)目录下的.gitignore文件:用于将app模块内指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。
5、module(app)目录下的app.iml文件:intellij IDEA项目都会自动生成的,Android Studio是基于IDEA开发的,iml文件是Android Studio识别项目的配置文件
6、module(app)目录下的build.gradle文件:app模块的gradle构建脚本(会经常接触所以注释下)
apply plugin: 'com.android.application'
//两种可选 application和library,application表示这是个应用程序模块,library表示这是个库模块,他要依赖于别的用用程序模块来运行 android
{ compileSdkVersion 26 //指定项目编译版本 defaultConfig
{ applicationId "com.example.time" //应用包名 minSdkVersion 23 //最低兼容的版本 targetSdkVersion 26 //表示在该版本做了充分的测试 versionCode 1 //指定项目版本号 versionName "1.0" //指定项目版本名 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes
{ release
{ minifyEnabled false //是否开启混淆 false不开启 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 混淆的配置文件路径,默认给了我们两个配置文件。 // proguard-android.txt在<sdk目录>/tools/proguard下面,里面已经包含了基本的混淆声明,有兴趣的可以去看下。 // proguard-rules.pro是在module根目录下面,我们可以根据项目去添加。 } } sourceSets
{ main
{ jniLibs.srcDir 'libs' //说明so的路径为该libs路径,关联所有so文件 } } } dependencies
{ implementation fileTree(include: ['*.jar'], dir: 'libs') //本地依赖声明 implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' compile 'com.ashokvarma.android:bottom-navigation-bar:2.0.4' compile 'com.google.code.gson:gson:2.7' //在使用开源库时在此做依赖声明 }
7、module(app)目录下的proguard-rules.pro文件:用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被别人破解,通常会将代码混淆,从而让破解者难以阅读。
五、build目录:build目录编译时自动生成的目录,一般情况不做修改。
六、gradle目录:工程项目对gradle的配置信息,简单看下gradle-wrapper.properties里的内容,里边声明了gradle的目录与下载路径以及当前项目使用的gradle版本。
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
七、.gitignore文件:用于将指定的目录或文件排除在版本控制之外,作用和内层的.gitignore文件类似。
八、build.gradle文件:工程项目的编译环境配置
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript
{ repositories
{ google() jcenter() } dependencies
{ classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects
{ repositories
{ google() jcenter() //中央远程仓库,兼容maven中心仓库 } } task clean(type: Delete)
{ delete rootProject.buildDir }
九、gradle.properties文件:全局的gradle配置文件,这里配置的属性将会影响到项目中所有的gradle编译脚本。
十、gradlew文件 & gradlew.bat文件:gradlew文件和gradlew.bat文件用来在命令行界面执行gradle命令,其中gradlew文件是在Linux或Mac系统中使用的,gradlew.bat文件是在Windows系统中使用的。
十一、local.properties文件:用来指定本机中的Android SDK的路径,一般是自动生成,除非自己的电脑SDK位置发生变化需要修改该文件的路径。
十二、setting.gradle文件:用于指定项目中所有引入的模块。由于工程项目中就只有一个app模块,因此该文件中也就只引入了app这一个模块。通常情况下模块的引入都是自动完成的,需要我们手动去修改这个文件的场景可能比较少。
1、单module项目的setting.gradle文件
include ':app'
2、多module项目的setting.gradle文件
include ':app' ,':app1',':app2'
总结:一般工作中经常接触的是app目录下的相关文件以及build.gradle等文件。以上就是是一个普通Android Studio项目目录简析