android studio 项目两个build.gradle的解析
android 有两个build.gradle一个在外层,一个在内层(app目录内),在Android项目构件中起到关键作用。
外层的build.gradle:
buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.4.1' }
}allprojects {repositories {google()jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}
解析:
1、在repositories {}中声明了两个库 google()和 jcenter()。
2、在 dependencies{}中声明了Gradle插件以及版本号(Gradle并不是仅仅用 于Android项目的开发。所以在此处需要声明)
内层的build.gradle:
apply plugin: 'com.android.application'android {compileSdkVersion 29defaultConfig {applicationId "com.example.myapplication"minSdkVersion 19targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test:runner:1.2.0'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
解析:
- 1、 apply plugin:
'com.android.application’表示应用了一个插件,此处的插件还可以是com.android.library两个插件区别为:com.android.application这是一个应用程序模块,能直接运行不需要依附于其他模块。而com.android.library这是一个库模块,需要依附于其他应用程序模块运行。 - 2、 android {}这个包包含了配置项目的各种属性: compileSdkVersion
29:用指定的编译版本来编译此文件。(这里29 为采用Android9.+系统的SDK 来编译。集体可参考
Android studio/file/setting/Appearance&Behavior/Systemsetting/Android ADK)
applicationId “com.example.myapplication”:用来指定项目的包名。 minSdkVersion
19:指定最低兼容的安卓版本。 targetSdkVersion
29:targetSdkVersion是指你在目标版本上已经进行了充分的测试。因为Android版本是向前兼容的,就是新发布的SDK版本是兼容老的SDK版本的,所以这个版本号的设置就是提供向前兼容的主要方式。比如在程序启用时启用程序对的新功能和特性。
versionCode 1:用于指定的项目号。 versionName “1.0”: 用于指定项目的版本名。 - 3、 buildTypes {}包用于指定生成安装文件的相关配置。
Debug和release。Debug时用于生成测试版安装文件的相关配置。Release是用于生成正式版安装文件的相关配置。其中Debug可以忽略不屑。
minifyEnabled false:用于对项目代码的混淆(用于防止反编译)。
proguardFiles:用于指定混淆时使用的规则。(这里指定了两个proguard-android-optimize.txt’是在Android
SDK 的根目录下。'proguard-rules.pro’是在当前项目文件的根目录下。) - 4、dependencies {}里面包含了项目所有的依赖关系。(通常Android的依赖关系有三种。—本地依赖,远程依赖和库依赖。)
android studio 项目两个build.gradle的解析相关推荐
- Android studio中2种build.gradle文件介绍
根目录下的build.gradle通常不需要修改这个文件中的内容,除非需要添加一些全局的项目构建配置 buildscript {repositories {google() //声明代码托管仓库Goo ...
- android 不同项目代码合并在一块,android - 是否可以将两个(正在积极开发中的)Android应用程序模块合并到同一个Android Studio项目中? - 堆栈内存溢出...
我有两个工作正常的Android应用程序模块A和B,与同一个Android Studio项目相同. 它们每个都可以单独构建和运行. 但是如果我通过指定将模块A添加为"模块依赖项" ...
- 浅谈Android项目中的build.gradle文件
一.gradle简介 gradle是基于groovy语言的. Android Studio是采用Gradle来构建项目的.Gradle是一个非常先进的项目构建工具,使用了一种基于Groovy的领域特定 ...
- 如何导入别人的android studio项目,解决gradle版本不兼容问题
如何导入别人的android studio项目,解决gradle版本不兼容问题 参考文章: (1)如何导入别人的android studio项目,解决gradle版本不兼容问题 (2)https:// ...
- Android Studio项目结构
我们创建了一个Android Project,打开就如下图所示: 我们选择Project视图,就会有以下的项目文档结构: 上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Ap ...
- Android Studio项目整合PullToRefresh的问题记录
PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章"A ...
- java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?
慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...
- 【错误记录】Android Studio 编译报错 ( Invalid Gradle JDK configuration found )
文章目录 一.报错信息 二.解决方案 一.报错信息 Android Studio 编译时提示 Invalid Gradle JDK configuration found 错误 ; 一般是打开一个新的 ...
- Android Studio项目转Eclipse项目
Android Studio项目的目录结构和Eclipse项目不同.如何转换? 以FloatingAction 项目为例:实现向上滑动隐藏悬浮按钮,向上滑动显示悬浮按钮. GitHub 地址:http ...
最新文章
- webpack打包发布
- jvm 参数-server_JVM选项:-client vs -server
- 牙齿间隙变大怎么办_牙齿之间的间隙越来越大怎么办?
- 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和
- NeurIPS | 谷歌使用机器学习如何做好分布外异常检测
- 如何查看redhat社区的solution(或者订阅);redhat内容不全
- EonerCMS——做一个仿桌面系统的CMS(十四)
- 测试中国地理常识(中文版)
- 数组、字符串、集合的相互转换
- DB9接口公头母头引脚区别
- msys2+mingw32环境搭建
- [Matlab-1]符号函数和数值函数
- java ajax教程_JAVA AJAX教程第一章—初识AJAX
- Android 中使用AlarmManager设置闹钟详解
- ios用xib实现三等分以及多等分思路
- html渐变生成,css gradient 在线渐变生成工具
- ASP.NET网站部署详细步骤
- 基于FFmpeg4.1的视频播放器的极简实现(音视频学习笔记四)
- PXE配置中ks.cfg文件介绍
- 详细解解读贴片电容:NP0、C0G、X7R、X5R、Y5V、Z5U的区别