Android Studio 文件类型及目录

Posted 滔 Roy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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闭包,指定了项目所有的依赖关系:本地依赖,库依赖和远程依赖。
    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\'
    compile project(\':SDKLibrary\')

//本地依赖,对本地的jar包和目录添加依赖关系,implementationfileTree声明,将libs中的.jar文件都添加到构建目录中。
//远程依赖,对jcenter仓库的上的开源项目添加依赖关系,也就是平时我们在github上添加的第三方开源库,也是直接implementation,先检查本地是否有缓存,没有就直接联网下载到构建路径。
//库依赖,对项目中的库模块进行依赖,implementation project声明,通常格式为implementation project(‘:库名’)

  

 

 

 

创建时间:2023.04.20  更新时间:

对Android Studio 中Android 类型的目录结构的解析

 

 app :创建项目后,自动创建一个名称为app的Module

manifests:保存配置文件

java:保存java源代码文件

res:保存资源文件

Gradle Scripts:保存Gradle构建和属性文件

 

manifests节点
manifests节点用于显示Android应用程序的配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" //manifest根节点,描述了package中的所有内容
//xmlns:android包含命名空间的声明
    package="com.example.androiduidemo">//声明应用程序包

    <application  //包含package中application级别组件声明的根节点
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"//应用程序图标
        android:label="@string/app_name"//应用程序标签,即为应用程序指定名称
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">//应用程序采用的主题
        <activity android:name=".MainActivity">//与用户交互的主要工具,它是一个用户打开一个应用程序的初始界面
            <intent-filter>//配置Intent过滤器
            //组件支持的Intent Action
                <action android:name="android.intent.action.MAIN" />
            //组件支持的Intent  Category
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

 

 前者存放Java源文件,后者是单元测试节点

 

默认生成MainActivity.java

package com.example.androiduidemo;//指定包

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
//导入类

public class MainActivity extends AppCompatActivity {
//该方法在创建Activity时被回调,用于对该Activity执行初始化
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.caculatur_layout);//调用layout中的布局文件运行
    }
}

 

 

 

drawable子目录

 drawable子目录通常用来保存图片资源,如PNG、JPEG、GIF图片,9-Patch或者Shape资源文件

 

layout子目录

layout子目录主要用来存储布局文件

 

mipmap子目录

主要用来保存项目中应用的启动图标

 

values子目录

values子目录通常用于保存应用中使用的字符串、样式和尺寸资源。

 

以上是关于Android Studio 文件类型及目录的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 项目文件及目录详解

对Android Studio 中Android 类型的目录结构的解析

Android studio初见及结构分析

Android Studio 怎么添加使用第三方jar包及无法编译的问题解决方法

Android Studio 怎么添加使用第三方jar包及无法编译的问题解决方法

Android Studio导入系统源码及配置