Android应用程序框架讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshunli/article/details/83018478

在我们的android的程序中会有很多的文件,那么这些文件到底是有什么作用呢?

我们编译android项目,可以使用eclipse和AS,首先介绍一下eclipse中的框架

1、src文件:存放的是应用程序使用到的java文件

2、gen文件:系统自动生成的目录。不需要程序员进行修改,包含了重要的R文件。该文件中包含了程序中使用到的资源文件对应生成的唯一的资源id。需要注意的是,如果R文件发生错误,一般都是资源文件出现了问题。

3、assets文件:存放应用程序使用的资源,在这个文件夹存放的资源需要读取时需要使用的是二进制流的形式进行读取,存放在这个文件夹中的文件会被原封不动的打包进入apk,

4、bin文件:主要是边编译生成的目录,主要是获取里面生成的apk文件。

5、libs文件:存放第三方的jar文件的目录

6、res文件:资源存放的目录

drawable中存放的是图片,他有很多的drawable文件,存放不同分辨率对应使用的图片资源,按照分辨率的有效到大存放。

layout文件中是我们的我们的activity,通俗讲就是我们要显示的界面。

然后是我们的AS的框架结构

1.gradle和.idea
这两个目录下放置的都是AS自动生成的一些文件,我们无需关心,也不要去修改他们
2.app
项目中的代码、资源等内容几乎都是放在这个目录下的。
app目录下又有很多的东西。
    2.1build
    这个目录和外层的build目录类似,主要也是包含了一些自动生成的一些目录。
    2.2libs
    如果你想要使用第三方jar包,那么就需要把这些包放到这个文件夹的下面。
    2.3androidTest
    此处是用来编写androidTest测试用例的,可以对项目进行自动化测试。
    2.4java
    java文件就是用来放我们的java代码的,打开,你就会发现我们的最初的HelloWorldActivity文件
    2.5res
    这里是我们的资源文件,里面的定西很多,包括图片,布局,字符串,等
    2.6AndrioidManifest.xml
    这里是你整个android项目的配置,你在程序中定义的四大组件都要在这个文件里注册。
    2.7test
    处是迎来编写Unit Test测试用例的。
    2.8.gitignore
    和外层的作用相似
    2.9app.iml
    IntelliJ IDEA自动生成的文件,不用关心
    2.10build。gradle
    APP模块的构建脚本
3.build
这里主要是包含了一些在编辑时自动生成的一些文件。
4.gradle
这个目录包含了gradle wrapper 这个文件,使用gradle wrapper这个文件
不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要下载gradle
、AS默认没有启动gradle wrapper的方法,如果想要打开,点击导航栏,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是在window中使用的。
9.HelloWorld.iml
iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(AS是基于IntelliJ IDEA开发的),用于标识这是一个IntelliJ IDEA项目,我们不需要修改里面的内容。
10.local.properties
这个文件用于指定本机中的Android SDK路径,通常内容都是自动生成的,我们并不需要修改,除非你的SDK的路径变了。
11.setting.gradle
这个文件用于指定项目中所有引入的模块。

下面详细说一下app内部的build.gradle

apply plugin: 'com.android.application'//应用了一个插件,一般有两种选择,com.android.application和com.android.library前者表示应用程序,后者表示一个库模块

android {
    compileSdkVersion 28//项目的编译版本,28表示用的是android9.0的sdk进行编译
    defaultConfig {
        applicationId "com.example.sunshunli.ssl"//项目的包名
        minSdkVersion 28//项目最低兼容的android版本
        targetSdkVersion 28//
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false//是有对项目的代码进行混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}//这是一个大的android闭包,

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

猜你喜欢

转载自blog.csdn.net/sunshunli/article/details/83018478