Android Studio
上鼠标修改构建类型
Release
版本
- 激活路径:
More tool windows->Build Variants->Active Build Variant->release
APK
路径:Project\app\build\intermediates\apk\app-release.apk
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/040f4aa60c4b49dba62c4ca9cf94a4f2.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2400e07e11964c13a311512dde446de0.png)
Debug
版本
- 激活路径:
More tool windows->Build Variants->Active Build Variant->debug
APK
路径:Project\app\build\intermediates\apk\app-debug.apk
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/01116aacc8974122a029568c2ad5013d.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6aee5e416fa048e8a927e9faae7fe481.png)
build.gradle(:app)
文件中代码修改构建类型
Release
版本
keytool -genkey -v -keystore yang_release_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_release_key_name
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
}
}
./gradlew assembleRelease
Debug
版本
keytool -genkey -v -keystore yang_debug_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_debug_key_name
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
signingConfig signingConfigs.debug
}
}
./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
包