timg (1).jpg

开发一个Android项目不仅仅需要你会写java/kotlin代码,而且你还要了解各种配置文件。例如。AndroidManifest.xml,混淆文件,build.gradle等。这里面最难理解也是最重要的非build.gradle莫属了,接下来我们就讲一讲一个成熟的项目的build.gradle文件是怎么样的:

首先我们建立一个新工程并打开build.gradle文件

apply plugin: 'com.android.application'

android {

compileSdkVersion 25

buildToolsVersion "26.0.0"

defaultConfig {

applicationId "com.example.ljw.basedemo"

minSdkVersion 15

targetSdkVersion 25

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

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'

testCompile 'junit:junit:4.12'

compile 'com.android.support.constraint:constraint-layout:1.0.2'

}

这是AS默认给我们生成的build.gradle,我们需要对它进行一个改造:

如果你不需要单元测试我们可以删掉这些文件:

// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

//androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

// exclude group: 'com.android.support', module: 'support-annotations'

//})

// testCompile 'junit:junit:4.12'

ok,删完了以后我们就可愉快的开始我们build.gradle的建立了,

首先,一个项目想要发布,签名是必要的东西,所以我们要配置一下签名文件:

signingConfigs {

storeFile file('../key/yourname.jks') //你的jks文件路径

storePassword "youstorepassword"

keyAlias "youAlias"

keyPassword "yourpassword"

}

如果你的项目够大那这句话是必须的

// dex突破65535的限制

multiDexEnabled true

接下来是配置我们的buildTypes,具体解释见注释

buildTypes {

debug {

// 显示Log

buildConfigField "boolean", "LOG_DEBUG", "false"

//混淆

minifyEnabled false

//Zipalign优化

zipAlignEnabled false

// 移除无用的resource文件

shrinkResources false

signingConfig null

}

release {

// 不显示Log

buildConfigField "boolean", "LOG_DEBUG", "true"

minifyEnabled true

zipAlignEnabled true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

if (outputFile != null && outputFile.name.endsWith('.apk')) {

// 输出apk名称为ljw_v1.0__baidu.apk

def fileName = "ljw_v${variant.productFlavors[0].versionName}_${variant.name}.apk"

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

}

}

为gradle添加UTF-8支持

tasks.withType(JavaCompile) {

options.encoding = "UTF-8"

}

最后就是多渠道打包了

productFlavors {

liuliang {//这里你可以给不同渠道的包设置不同的版本号,名称,甚至applicationId,若是你设置不同的applicationId了,那你的不同渠道的包就可以同时存在在一个手机上。 }

xiaomi { }

wandoujia {}

OPPO {}

Lenovo { }

Unicom {}

qh360 { }

VIVO { }

sougou { }

anzhi { }

leshi { }

ppzhushou { }

_91zhushou { }

yingyonghui { }

baidu {}

yingyongbao { }

huawei { }

meizu { }

}

ok,基本上一个项目的build.gradle文件差不多就配置好了,如果有特殊需要你们在自己加东西。

下一篇文章预告-Android 项目开发必备-为你的项目选择优质框架

android 建立工程文件,Android 项目开发必备-建立属于你的build.gradle文件相关推荐

  1. 浅谈Android项目中的build.gradle文件

    一.gradle简介 gradle是基于groovy语言的. Android Studio是采用Gradle来构建项目的.Gradle是一个非常先进的项目构建工具,使用了一种基于Groovy的领域特定 ...

  2. android build获取ext,顶级build.gradle文件中的ext属性

    我正在开发一个android应用程序.我在根项目中有一个"dependencies.gradle"文件: ext { // Android kotlinVersion = '1.2 ...

  3. Android build.gradle文件详解(转述自《Android第一行代码》第二版)

    Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...

  4. Gradle build.gradle 文件

    build.gradle 是一个 gradle 的构建脚本文件,支持 java.groovy 等语言. 每个 project 都会有一个 build.gradle 文件,该文件是项目构建的入口,可配置 ...

  5. Android Studio 4.0.+NDK项目开发详细教学

    JNI开发系列目录 JNI开发必学C++基础 JNI开发必学C++使用实践 Android Studio 4.0.+NDK项目开发详细教学 Android NDK与JNI的区别有何不同? Androi ...

  6. android studio 工程管理,Android Studio 导入项目并上传管理

    这是导入他人安卓项目时的两个关键配置文件(如果不进行修改的话,有时会因为版本问题和配置上的差异导致无法正常运行) 我们可以手动创建一个空的 HelloWorld 的项目,然后对这两个文件进行修改 这里 ...

  7. Android 中 build.gradle 文件详解

    一.简介 一般来说一个新创建的项目中,有两个 build.gradle 文件,一个是工程目录下的,一个是 app 目录下的,这两个 build.gradle 文件对 Android Studio 项目 ...

  8. Android studio中2种build.gradle文件介绍

    根目录下的build.gradle通常不需要修改这个文件中的内容,除非需要添加一些全局的项目构建配置 buildscript {repositories {google() //声明代码托管仓库Goo ...

  9. linux android build tools,build.gradle 文件中的 Android SDK Build Tools version

    build.gradle 文件中的 Android SDK Build Tools version Android,Gradle,SDK 2018.07.17 在 Android Gradle Plu ...

最新文章

  1. Redis与Jedis排序
  2. C++学习之路 | PTA乙级—— 1064 朋友数 (20 分)(精简)
  3. ip中继对接_朗视IPPBX为桃源居中澳实验学校打造IP语音校园!
  4. 王者荣耀AI即将上线,队友再也不用担心你掉线了
  5. “春风又绿江南岸”真正的关键是什么?
  6. 「python自动化运维」之自动生成配置文件并上传到目标服务器指定的位置
  7. Android5.0更新内容简介
  8. 单继承、多继承、菱形继承的虚函数表
  9. 根据经纬度查找附近的人计算公式
  10. IDEA学生授权申请方式(免费)
  11. Django 之 Models(Models 模型 数据表关系)
  12. 自定义 C++ 和 CUDA 扩展
  13. DBA高效入职指南学习笔记
  14. 洛谷 P2656 采蘑菇
  15. 一个程序员的工作总结
  16. 解决百度文库及其他网站无法复制现象
  17. 外包公司“混”了2年,我只认真做了5件事,如今顺利拿到阿里 Offer。
  18. 集成阿里推送SDK中的问题:Duplicate zip entry UTDevice.class
  19. 平衡球游戏开发教程(四)--深入了解WP7游戏底层原理
  20. 如何才能写出优秀作文?猿辅导:生活的观察与感受非常重要

热门文章

  1. MFC exe替换大、中、小图标方法
  2. 数据库基础的试题汇总 下
  3. 文件共享及磁盘管理_01
  4. mac+usb安装linux系统安装,Mac OS X下制作安装Linux系统的USB启动盘
  5. Unity3D优化技巧系列二
  6. Jpeg图片属性读取EXIF
  7. 2017年牛客网校招模拟二
  8. html不知道高文字垂直居中,css实现固定高度及未知高度文字垂直居中的完美解决方案...
  9. 【链塔DApp日报】BDI指数增长10%,以太坊24h交易额增长13%
  10. 简单易用的运动控制卡(十):连续插补和小线段前瞻