AndroidStudio右侧Gradle里边的build(工程下的)是可以生成未签名的debug和release的apk包生成前可以先clean一下工程
app下的build.gradle里边的
lintOptions{
abortOnError false
}
是用来取消检查错误直接打包
buildTypes {
//设置为true进行混淆proGuard
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
是用来混淆 默认是false
//配置软件包打包的时候 准备不同的渠道
productFlavors {
//渠道的名称 生成不同的包
baiduMarket {
minSdkVersion 10
applicationId ‘com.ceshi.updateadapter.baidu.app‘
}
qihoo {
minSdkVersion 10
applicationId ‘com.ceshi.updateadapter.qihoo.app‘
}
}
对应于不同渠道由于appid不同所以生成了不同的版本的apk文件
还有就是可以在src下建立free paid文件夹建立不同的AndroidManifest.xml文件修改入口即可运行一个程序的不同版本如果没有的资源会去找main文件夹下的资源(类似国际化) 在Build Variants 修改运行的程序
以上都是放在android 下
Build菜单里生成keystore文件一般放在工程目录下 之后签名时需要选择目录就是cd../ 上级目录里选 最后在buildtype左边小栏选择release版本 ok
apply plugin: ‘com.android.application‘ android { //数字签名证书以及密钥温家的配置 可以在以后不同的渠道设置 signingConfigs { mykeystore { keyAlias ‘my_release_key‘ keyPassword ‘a524125‘ storeFile file(‘../release.jks‘) storePassword ‘a524125‘ } } compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.ceshi.updateadapter" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { //设置为true进行混淆proGuard release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ signingConfig signingConfigs.mykeystore } debug { } } lintOptions { abortOnError false } //配置软件包打包的时候 准备不同的渠道 productFlavors { //渠道的名称 生成不同的包 baiduMarket { minSdkVersion 10 applicationId ‘com.ceshi.updateadapter.baidu.app‘ } qihoo { minSdkVersion 10 applicationId ‘com.ceshi.updateadapter.qihoo.app‘ } paid{ minSdkVersion 10 applicationId ‘com.ceshi.updateadapter.paid.app‘ } free{ minSdkVersion 10 applicationId ‘com.ceshi.updateadapter.free.app‘ } } } dependencies { compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) testCompile ‘junit:junit:4.12‘ compile ‘com.android.support:appcompat-v7:22.2.0‘ }
原文:http://www.cnblogs.com/bimingcong/p/4970229.html