导航:首页 > 程序命令 > gradle打包apk命令

gradle打包apk命令

发布时间:2023-11-16 20:19:59

㈠ 如何使用gradle构建工具打包groovy脚本成jar文件

准备工作安装 gradle, groovy。
要使用gradle的groovy plugin 来打包groovy 脚本,项目结构。
目录 含义
src/main/java Java 代码
src/main/resources Java需要的资源文件
src/main/groovy Groovy代码,也可以包含Java代码
src/test/java Java 测试代码
src/test/resources 测试需要的资源文件
src/test/groovy Groovy测试需要的资源文件
src/sourceSet/java Java代码源
src/sourceSet/resources 资源文件源
src/sourceSet/groovy Groovy代码源
我们只需要编译打包groovy脚本 所以只需要创建 src/main/groovy目录结构。例子:
gradle_groovy_archive项目 结构是:
gradle_groovy_archive

创建helloWorld.groovy脚本,代码如下:
package hello
println 'Gradle compile groovy'

创建Gradle构建文件:
apply plugin: 'groovy'
apply plugin: 'maven'

group = 'com.hello'
archiveBaseName = 'hello'
version = '0.1-SNAPSHOT'

defaultTasks 'clean', 'jar'

configurations {
deployerJars
}

repositories {
mavenCentral()
}

dependencies {
//使用本地groovy环境
groovy localGroovy()
//groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'
compile fileTree( dir: 'lib', include: ['*.jar'])

deployerJars 'org.apache.maven.wagon:wagon-webdav-jackrabbit:1.0-beta-7'
}

sourceSets {
main {
groovy {
srcDir 'src/main/groovy'
}
}
}

uploadArchives {
repositories.mavenDeployer {
uniqueVersion = false
configuration = configurations.deployerJars
repository(id : repositoryId, url : repositoryUrl) {
authentication (userName : 'deployment', password : 'deployment')
proxy()
}
}
}

创建构建文件属性文件:
//根据不同情况修改
repositoryId=ND
repositoryUrl=ND
systemProp.http.proxyHost=ND
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=ND
systemProp.http.proxyPassword=ND

命令行中 敲 gradle 运行,会自动运行 defaultTasks,clean 和 jar,会把 所有groovy下的脚本打成jar包。

android gradle打包生成两个包,怎么去掉debug版本

Gralde 打包参数详解

上面说了一大堆东西,其实并不吸引人去使用gradle,如果只是构建项目的话,adt不是更合适吗?如果,你看完以下内容还是这么觉得的话,你就没必要折腾gradle了。。。。。。

打签名包

看附录 默认输出 release apk 是没有签名的,那么我们需要签名的很简单,只需要在android{}里面补充加上加上即可。完整build.gradle 请点击我的gist

build.gradle

signingConfigs {
myConfig{
storeFile file("gradle.keystore")
storePassword "gradle"
keyAlias "gradle"
keyPassword "gradle"
}
}

buildTypes{
release {
signingConfig signingConfigs.myConfig
}
}

然后,运行gradle clean gradle build ,这次在build/apk 你看到了多了一个[项目名]-release-unaligned, 从字面上面我就可以知道,这个只是没有进行zipAlign 优化的版本而已。而[项目名]-release 就是我们签名,并且zipAlign 的apk包了. ###打混淆包### 只需要在原来的基础上加上,完整的proguad.gradle 代码 build.gradle

gradle clean

gradle build

打多渠道包(Proct Flavor)

现在来解释一下上一节的问题,apk目录下的两个apk 的含义

为什么产生了两个apk?

默认的android gralde 插件定义了两种apk 的类型debug, release,这两种类型的详细对比看附录。

这个是android gralde 插件 buildTypes{} 方法产生的,默认配置好了两个默认模板,当然你也可以修改,前面我们就是在修改默认的release 的配置,让输出release类型的的apk,具有签名和混淆。

对于多渠道包,android 插件提供了一个名为Proct Flavor{} 的配置,用于进行多渠道打包。

例如,我的android应用有海外版,和国内版本,而且这两个版本的包名是不一样的!!(我就举两个市场的例子安装这个思路,你要打包100个不同的市场只是几行代码的事情。)。

你只需要在android{} 补充上

build.gradle

proctFlavors {
playstore {
packageName='com.youxiachai.androidgradle.playstore'
}
hiapk {
packageName='com.youxiachai.androidgradle.amazonappstore'
}
}
仅此而已?然后gradle clean,gradle build,在build/apk 下面你会看到一堆的包,命名格式[项目名]-[渠道名]-release

Proct Flavor{} 不只是能改包名那么简单,还能够对编译的源码目录进行切换。

什么意思? 不知道各位有没有用过友盟做用户统计,如果,你用的是分发渠道分析,你需要修改AndroidManifest.xml 添加上

如果,你很多渠道,,然后你就会很痛苦,现在用gradle 就非常舒服,你只需要在android.sourceSets指定我们的渠道名就行,android gradle 插件,会自动打包!!!例如

build.gradle

sourceSets {
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')

}

然后运行gradle clean,gradle build,省下的时间去喝杯咖啡,睡个觉什么的都好。。。 ###外部依赖### android gradle 对于外部jar 包的应用支持maven/ivy 管理的包,也支持指定具体文件,前面已经在上文说过。上面演示的完整 build.gradle gist 里面也有写。你需要加上如下代码即可: build.gradle

阅读全文

与gradle打包apk命令相关的资料

热点内容
有什么好用的小众app吗 浏览:116
芋道app源码 浏览:447
计算机程序员怎么找 浏览:280
智联发pdf 浏览:236
c语言编译错误变黑 浏览:72
手机软件加密了怎么解开 浏览:887
linux中的ln命令例子 浏览:142
为什么玩cf第一次进入服务器很慢 浏览:967
工作单源码 浏览:619
安卓如何关闭app自动升级 浏览:137
new文件夹怎么打开 浏览:633
安卓51如何优化 浏览:177
活塞式压缩机原理图 浏览:846
水环式压缩机工作原理 浏览:716
阿里云服务器安装后怎么使用 浏览:934
去做APP开户有什么危险没得啊 浏览:697
8分之1乘58算法 浏览:172
php提交过滤 浏览:358
豪斯曼检验stata命令 浏览:771
云看地是什么APP 浏览:887