生成的目录结构
1. .gradle 和.ideal 是Android Studio自动生成的,一般不需要修改,在项目完成后打包时,这两个文件可以删除,以减少文件代码量。
2. app 目录中:
存放项目的代码和资源,是工作中的核心目录。所有的开发工作都在这个app目录下进行。
其中
2.1 build目录
通过build菜单中的make project生成的各种文件,其中
在build/app/debug/apk目录中,存放生成的apk文件,可以直接拷贝到虚拟手机或者android系统上应用。
该build目录生成文件会很大,一般该目录也可以删除。从而将项目压缩保存和交流。
2.2 lib目录
当项目中使用到第三方jar包是,把jar包放到该 目录中。
2.3 src目录
(1) android Test:存放android测试用例
(2)main目录
Java:
Java代码
- res (资源文件):
* draw开头:是放置图片
layout:放置布局的
mipmap-xxx是放应用图标
value:放置颜色,样式,主题。
androidManifefst.xml:
是项目的清单文件,四大组件都要在该清单文件中注册。没有注册就没办法使用。
如:权限,等。
引用方式:@ + string/styles/colors/mimap +图标名字。
(3)test:单元测试
2.4 .gitignore
和外部.gitignore一样,只不过这个是管理这个app模块的,外边的是管理整个工程的。
2.5 build.gradle
管理这个app模块的构建脚本。如果用到第三方库的时候,可以在这边添加1个以来。
2.6 proguard-rules.pro
指定代码的混淆规则,在这里作处理。
3. gradle:
存放构建项目相关的配置,其中gradle-wrapper.properis是中会指定与当前android studio版本以及android sdk相对应的gradle的版本。AS如果发现该gradle的版本存在,则不需要再次下载,可以直接使用。如果没有,则会自动下载,可能第一次使用下载耗时较长。
4. .gitignore
是git版本控制文件,用于排除上传的文件。
5. build.gradle
是项目全局的gradle构建文件,如果需要修改也是可以修改。
6. gradle.prople
全局的gradle的配置文件。
7. gradlew和gradlew.bat
执行gradle命令的时候会执行上面的文件,win系统上使用gradlew.bat中使用。gradlew实在linux系统和mac系统上使用的。
8. local.properties
是指定系统上安装android sdk的路径,在项目创建的时候,会自动设置好对应的位置。
9. settings.gradle
用于指定项目中,所有引入的项目模块。
10 external
第三方配置以来的库以及android SDK中用到的库文件。其中包含了各种依赖的各种文件。
android SDK开发,讲究MVC原则,视图在layout进行定义,数据处理则在相应的activity类中进行。
在layout中:<TextView>是android sdk定义的视图空间,用于现实文本内容。
文件详解
1. app中的编译配置文件:app/build.gradle
plugins { id 'com.android.application' }
以上定义一个插件,表示应用程序模块。
android { namespace 'com.nh.myproject' compileSdk 33 defaultConfig { applicationId "com.nh.myproject" //应用程序ID minSdk 29 //最低兼容版本 targetSdk 33 // 目标的SDK,该版本下进行充分测试。 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //但单元测试 }
//以下指定构建特定相关的配置 buildTypes {
//以下是release版本安装文件 release { minifyEnabled false // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //指定混淆的规则,前者是SDK }
// debug忽略不写
} compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
以上,定义了android相关的编译闭包,如:编译SDK的版本,编译工具的版本。
//定义项目所有的依赖关系,一般分为三种依赖:本地依赖,库依赖,和远程依赖。
* 本地依赖:可以对本地的jar添加依赖关系
* 库依赖:对项目中的库模块添加依赖关系
*远程依赖:对远程开源仓库中的库添加依赖关系
dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' }
2. 在项目中的myproject/build.gradle构建文件
是最顶层的配置构建文件,可以把相同的配置选项在此输入,从而应用于所有的app或子项目模块
// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.4.1' apply false id 'com.android.library' version '7.4.1' apply false }