Android Studio上鼠标修改构建类型
Release版本
- 激活路径:
More tool windows->Build Variants->Active Build Variant->release APK路径:Project\app\build\intermediates\apk\app-release.apk


Debug版本
- 激活路径:
More tool windows->Build Variants->Active Build Variant->debug APK路径:Project\app\build\intermediates\apk\app-debug.apk


build.gradle(:app)文件中代码修改构建类型
Release版本
- 生成
Release签名密钥的密钥库
bash
keytool -genkey -v -keystore yang_release_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_release_key_name
- 配置
Release包的签名属性和构建属性
groovy
signingConfigs {
release {
keyAlias 'yang_release_key_name' // 密钥别名,和密钥密码成为一组
keyPassword 'yang.guo' // 密钥密码
storeFile file('../build_store/yang_release_store.jks') // 密钥库文件路径
storePassword 'yang.guo' // 密钥库密码
}
}
buildTypes {
release {
minifyEnabled true // 启用代码混淆和优化
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 启用代码混淆和优化的默认配置文件
signingConfig signingConfigs.release // 使用release签名配置
}
}
Gradle指令打Release包
groovy
./gradlew assembleRelease
Debug版本
- 生成
Debug签名密钥的密钥库
bash
keytool -genkey -v -keystore yang_debug_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_debug_key_name
- 配置
Debug包的签名属性和构建属性
groovy
signingConfigs {
debug{
keyAlias 'yang_debug_key_name' // 密钥别名,和密钥密码成为一组
keyPassword 'yang.guo' // 密钥密码
storeFile file('../build_store/yang_debug_store.jks') // 密钥库文件路径
storePassword 'yang.guo' // 密钥库密码
}
}
buildTypes {
debug {
applicationIdSuffix ".debug" // 打包后缀
debuggable true // 启用debug模式的包
signingConfig signingConfigs.debug // 使用debug签名配置
}
}
Gradle指令打Debug包
groovy
./gradlew assembleDebug
如何区分当前APK文件是Release包还是Debug包
检查APK中的BuildConfig文件
- 解压
APK文件:- 查找
BuildConfig类:在解压后的目录中,找到classes.dex文件,将其反编译为Java代码(可以使用dex2jar和JD-GUI工具) - 查看
BuildConfig类:在反编译后的Java代码中,找到BuildConfig类,查看其中的DEBUG字段 - 如果
DEBUG字段为true,则表示是Debug包 - 如果
DEBUG字段为false,则表示是Release包
- 查找
检查APK的调试字段
- 解压
APK文件:- 查找调试属性:在解压后的目录中,查找
AndroidManifest.xml文件,查看其中的android:debuggable属性 - 如果
android:debuggable属性为true,则表示是Debug包 - 如果
android:debuggable属性为false,则表示是Release包
- 查找调试属性:在解压后的目录中,查找