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 类型的目录结构的解析
Android Studio 怎么添加使用第三方jar包及无法编译的问题解决方法