gradle怎么指定个资源文件不被优化
展开全部
Gralde打包参数详解上面说了一大堆东西,其实并不吸引人去使用gradle,如果只是构建项目的话,芦漏adt不是更合适吗?如果,你看完以下内容还是这么觉得的话,你就没必要折腾gradle了。。。。。。打签名包看附录默认输出releaseapk是没有签名的,那么我们需要签名的很简单,只需要在android{}里面补充加上加上即可。完整build.gradle请点击我的gistbuild.gradlesigningConfigs{myConfig{storeFilefile("gradle.keystore")storePassword"gradle"keyAlias"gradle"keyPassword"gradle"}}buildTypes{release{signingConfigsigningConfigs.myConfig}}然后,运行gradlecleangradlebuild,这次在build/apk你看到了多了一个[项目名]-release-unaligned,从字面上面我就可以知道,这个只是没有渣瞎进行zipAlign优化的版本而已。而[项目名]-release就是我们签名,并且zipAlign的apk包了.###打混淆包###只需要在原来的基础上加上,完整的proguad.gradle代码build.gradlegradlecleangradlebuild打多渠道包(ProductFlavor)现在来解释一下上一节的问题,apk目录下的两个apk的含义为什么产生了两个apk?默认的androidgralde插件定义了两种apk的类型debug,release,这两种类型的详细对比看附录。这个是androidgralde插件buildTypes{}方法产生的,默认配置好了两个默认模板,当然你也可以修改,前面我们就是在修改默认的release的配置,让输出release类型的的apk,具有签名和混淆。对于多渠道包,android插件提供了一个名为ProductFlavor{}的配置,用于进行多渠道打包。例如,我的android应用有海外版,和国内版本,而且这两个版本的包名是不一样的!!(我就举两个市场的例子安装这个思路,你要打包100个不同的市场只是几行代码的事情。)。你只需要在android{}补充上build.gradleproductFlavors{playstore{packageName='com.youxiachai.androidgradle.playstore'}hiapk{packageName='com.youxiachai.androidgradle.amazonappstore'}}仅此而已?然后gradleclean,gradlebuild,在build/apk下面你会看到一堆的包,命名格式[项目名]-[渠道名]-releaseProductFlavor{}不只是能改包名那么简单,还能够对编译的源码目录进行切换。如哗空什么意思?不知道各位有没有用过友盟做用户统计,如果,你用的是分发渠道分析,你需要修改AndroidManifest.xml添加上如果,你很多渠道,,然后你就会很痛苦,现在用gradle就非常舒服,你只需要在android.sourceSets指定我们的渠道名就行,androidgradle插件,会自动打包!!!例如build.gradlesourceSets{main{manifest.srcFile'AndroidManifest.xml'java.srcDirs=['src']resources.srcDirs=['src']aidl.srcDirs=['src']renderscript.srcDirs=['src']res.srcDirs=['res']assets.srcDirs=['assets']}hiapk{manifest.srcFile'hiapk/AndroidManifest.xml'}playstore{manifest.srcFile'hiapk/AndroidManifest.xml'}instrumentTest.setRoot('tests')}然后运行gradleclean,gradlebuild,省下的时间去喝杯咖啡,睡个觉什么的都好。。。###外部依赖###androidgradle对于外部jar包的应用支持maven/ivy管理的包,也支持指定具体文件,前面已经在上文说过。上面演示的完整build.gradlegist里面也有写。你需要加上如下代码即可:build.gradle
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询