我是靠谱客的博主 俊逸飞鸟,最近开发中收集的这篇文章主要介绍Android项目构建之构建流程与目录结构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、构建流程

Android的构建流程

先把Java文件编译成.class文件,然后将.class文件和所依赖的第三方文件打包成classes.dex文件(),然后再打包资源文件,之后将dex文件和资源文件打包成未签名的包。最后通过签名打包成完整的包。

Jenkins持续集成构建

自动化构建apk,需要配置一些gradle文件

二、目录结构

使用Android Studio创建的项目的工程Test目录如下:

Test
.gradle
.idea
app
gradle
.gitignore
build.gradle
gradle.properties
gradlew
gradlew.bat
local.properties
setting.gradle
Test.iml

1、.gradle目录
运行时自动生成的目录,一般情况不做修改,不需要纳入项目源代码管理中。

2、.idea目录
Intellij IDEA 运行时候生成的文件目录,一般情况不做修改,不需要纳入项目源代码管理中。

3、 app (module模块)
每一个module可看成在Eclipse中的一个Project,里面的文件结构与父类差不多。里面也能包含build.gradle、gradle.properties、setting.gradle 等相关gradle文件,若没有定义,则在项目中使用父类的设置。

4、 gradle 目录
里面wrapper目录下有两个文件。里面有一些项目对gradle的配置信息,其中gradle-wrapper.properties里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本。

5、 .gitignore文件

git对项目文件管理,可以在里面添加你不希望纳入git管理的文件。比如:

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

6、 build.gradle文件
项目的编译环境配置,是整个project的配置文件。是最顶层的配置。在module中同样有一个build.gradle文件,是对module的配置,如果module里没有进行配置,将使用这里的配置信息。
默认有一个是声明仓库的源jcenter(), jcenter是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本

7、 gradle.properties文件
配置gradle运行环境的文件,比如配置gradle运行模式,运行时jvm虚拟机的大小。

8、 gradlew & gradlew.bat 文件
分别是linux下的shell脚本和windows下的批处理文件,它们的作用是根据gradle-wrapper.properties文件中的distributionUrl下载对应的gradle版本。这样就可以保证在不同的环境下构建时都是使用的统一版本的gradle

9、 local.properties文件
配置android NDK,SDK的路径

10、setting.gradle文件
声明当前项目中含有什么module。如果有多个module会以‘,’分开,如:include ‘:app’, ‘:app2’

11、Test.iml文件
编译项目时生成的文件,其名为‘项目名.iml’,iml文件是Android Studio识别项目的配置文件

三、app(module模块)

build module: 编译时所生成文件的目录
lib: 第三方依赖库所在目录
src: module源码所在目录
srcandrroidTest: android Studio生成的测试模块,可删除
srcmain: module代码目录,结构和Eclipse中的差不多了
srctest: 单元测试模块,可删除
.gitignore: module中的git管理文件
app.iml: module中的IDEA 项目文件
build.gradle: module自动编译的配置文件
proguard-rules.pro: module代码混淆配置文件

在Android Studio工程目录结构可以看到,Test项目中有两个build.gradle文件,一个是在最外层目录下的,一个是在app目录下的。

四、project下的build.gradle

该文件下的代码都是自动生成的,主要有两部分。第一是声明了jcenter()。第二Gradle插件版本的声明

五、app下的的build.gradle

默认配置:

apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "com.test.demo.test"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
flavorDimensions "versionCode"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
}

apply plugin: 声明是Android应用程序还是库模块

android 闭包,配置项目构建的各种属性,compileSdkVersion用于指定项目的编译SDK版本,buildToolsVersion用于指定项目构建工具的版本。

defaultConfig闭包:默认配置,应用程序包名,最小 sdk 版本,目标 sdk 版本,版本号,版本名

buildTypes闭包:指定生成安装文件的配置,是否对代码进行混淆

dependencies 闭包,指定当前项目的所有依赖关系,本地依赖,库依赖以及远程依赖

最后

以上就是俊逸飞鸟为你收集整理的Android项目构建之构建流程与目录结构的全部内容,希望文章能够帮你解决Android项目构建之构建流程与目录结构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部