介绍
apply plugin: 'com.android.application'//说明module的类型,com.android.application为程序,com.android.library为库
android {
compileSdkVersion 22//编译的SDK版本
buildToolsVersion "22.0.1"//编译的Tools版本
defaultConfig {//默认配置
applicationId "com.nd.famlink"//应用程序的包名
minSdkVersion 8//支持的最低版本
targetSdkVersion 19//支持的目标版本
versionCode 52//版本号
versionName "3.0.1"//版本名
}
sourceSets {//目录指向配置
main {
manifest.srcFile 'AndroidManifest.xml'//指定AndroidManifest文件
java.srcDirs = ['src']//指定source目录
resources.srcDirs = ['src']//指定source目录
aidl.srcDirs = ['src']//指定source目录
renderscript.srcDirs = ['src']//指定source目录
res.srcDirs = ['res']//指定资源目录
assets.srcDirs = ['assets']//指定assets目录
jniLibs.srcDirs = ['libs']//指定lib库目录
}
debug.setRoot('build-types/debug')//指定debug模式的路径
release.setRoot('build-types/release')//指定release模式的路径
}
signingConfigs {//签名配置
release {//发布版签名配置
storeFile file("fk.keystore")//密钥文件路径
storePassword "123"//密钥文件密码
keyAlias "fk"//key别名
keyPassword "123"//key密码
}
debug {//debug版签名配置
storeFile file("fk.keystore")
storePassword "123"
keyAlias "fk"
keyPassword "123"
}
}
buildTypes {//build类型
release {//发布
minifyEnabled true//混淆开启
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'//指定混淆规则文件
signingConfig signingConfigs.release//设置签名信息
}
debug {//调试
signingConfig signingConfigs.release
}
}
packagingOptions {
exclude 'META-INF/ASL2.0'//排除一些文件
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/MANIFEST.MF'
}
lintOptions {
abortOnError false//lint时候终止错误上报,防止编译的时候莫名的失败
}
}
dependencies {
compile fileTree(dir: 'libs', exclude: ['android-support*.jar'], include: ['*.jar']) //编译lib目录下的.jar文件
compile project(':Easylink')//编译附加的项目
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'//编译来自Jcenter的第三方开源库
}
介绍
直接执行gradle build会生成debug包和release包如果不想要debug包可以使用gradleasR命令。
上面大家接触了一些命令如./gradlew -v./gradlew clean./gradlew build, 这里注意是./gradlew,./代表当前目录,gradlew代表 gradlewrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle,即gradle wrapper,在9GAG/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本。只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。z理解了gradlewrapper的概念,下面一些常用命令也就容易理解了。
·./gradlew-v版本号
·./gradlewclean清除9GAG/app目录下的build文件夹
·./gradlewbuild检查依赖并编译打包
这里注意的是./gradlew build命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令assemble,如
·./gradlewassembleDebug编译并打Debug包
·./gradlewassembleRelease编译并打Release的包
除此之外,assemble还可以和productFlavors结合使用,具体在下一篇多渠道打包进一步解释。
·./gradlewinstallRelease Release模式打包并安装
·./gradlewuninstallRelease卸载Release模式包