android studio命令打包(gradle)
来源:互联网 发布:东吴证券软件 编辑:程序博客网 时间:2024/05/17 02:56
android studio命令打包(gradle)
1、前提
2、步骤
3、总结
一:前提
1、已经有jks签名文件,如果没有可以通过android studio build生成一个
2、本文是建立在umeng多渠道打包的基础上
3、本文介绍内容为在android studio 终端使用./gradlew进行打包
4、我的项目中是把jks签名文件放在项目中,对应module目录下,即app目录下,下面可能涉及到路径问题
二:步骤
1、在module的根目录下新建signing.properties文件
STORE_FILE = ./keystore.jks
STORE_PASSWORD = your password
KEY_ALIAS = your password
KEY_PASSWORD = your password
注意:此处没有”“
2、在module的build.gradle中创建
android { signingConfigs { release { storeFile storePassword keyAlias keyPassword } } //调用配置文件 getSigningProperties()}buildTypes { debug { minifyEnabled true zipAlignEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled true //混淆 zipAlignEnabled true //Zipalign优化 shrinkResources true // 移除无用的resource文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' **//注意要添加签名 signingConfig signingConfigs.release** //自定义apk名字 applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File( output.outputFile.parent, "应用前缀${variant.buildType.name}-${defaultConfig.versionName}-${releaseTime()}-${variant.productFlavors[0].name}.apk".toLowerCase()) } } } }
如果需要时间的话,需要增加一个函数releaseTime()
//获取时间def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}注意:函数需要放在android{}外面
3、读取配置文件
//读取签名配置文件 这个需要放在android{}外面def getSigningProperties(){ def propFile = file('signing.properties') if (propFile.canRead()){ def Properties props = new Properties() props.load(new FileInputStream(propFile)) if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) { android.signingConfigs.release.storeFile = file(props['STORE_FILE']) android.signingConfigs.release.storePassword = props['STORE_PASSWORD'] android.signingConfigs.release.keyAlias = props['KEY_ALIAS'] android.signingConfigs.release.keyPassword = props['KEY_PASSWORD'] } else { println 'signing.properties found but some entries are missing' android.buildTypes.release.signingConfig = null } }else { println 'signing.properties not found' android.buildTypes.release.signingConfig = null }}
4、命令打包
//这个是打包所有渠道release版本
./gradlew assembleRelease//如果你只要打某个渠道的
./gradlew assembleBaiduRelease
三:总结
1、打包后的apk文件在app–>build–>outputs—>apk中
2、使用gradlew时可能出现没有找到该命令,需要chmod 755 gradlew
参考链接
1 0
- android studio命令打包(gradle)
- android studio gradle 打包
- android studio gradle 打包
- android studio gradle打包
- Android Studio通过Gradle命令来编译生成打包APK
- Android Studio Gradle 多渠道打包
- Android Studio--Gradle多渠道打包
- Android Studio--Gradle多渠道打包
- Android studio gradle 多渠道打包
- Android Studio Gradle多渠道打包
- Android studio gradle 多渠道打包
- Android Studio--Gradle多渠道打包
- Android Studio Gradle多渠道打包
- android studio gradle 多渠道打包
- Android Studio Gradle多渠道打包
- 【Android Studio】gradle多渠道打包
- Android studio下gradle打包
- Android Studio gradle打包配置
- 关于OC和Swift混编的基本使用
- Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
- 嵌入式编程之模块化编程
- C# String进行Url编码,Url编码解码生成String
- JAVA的静态变量、静态方法、静态类
- android studio命令打包(gradle)
- 我是个不爱说话的产品经理,不爱说话就代表不能沟通吗?
- Cocos2dx 3.x C++人员过渡Lua的常用代码总结
- Jimoshi_Spring 框架学习(一)--Spring实现IOC思想、javabean对象、Spring对象和对象之间关系
- Android getSystemService获取系统相应的服务
- 深入理解Java的接口和抽象类
- 基于ZooKeeper的分布式Session实现
- CSS:<ul>的左边为什么有40px的默认距离呢?
- 堆排序(C++实现)