忘梨 發表於 2020-6-6 08:53:00

Android开发环境使用工具Android Studio工程目录结构

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