Android Studio -> Android Studio 获取release模式和debug模式的APK

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代码(可以使用dex2jarJD-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
相关推荐
寰宇星城3 小时前
AppActuator - 让 AI Agent 直接理解并操作运行中的 Android App
android
波罗丁牌3 小时前
uni-app 实现视频聊天、屏幕分享,支持Android、HarmonyOS、iOS
android·uni-app·音视频
峥嵘life3 小时前
Android WiFi 热点 Channel 信道 和 Frequency 频率 转换总结
android·开发语言
jieyucx4 小时前
【高级利用】条件竞争与逻辑漏洞:与服务器赛跑的艺术
android·运维·服务器·web安全·文件上传
叶辞树6 小时前
死锁问题分析
android
TimeFine6 小时前
让 Codex “用上”Android Studio:JetBrains MCP Server 接入与实践
android
__Witheart__8 小时前
3568 Android 设置首次烧录后 usb otg 口模式
android·adb·rockchip
AFinalStone8 小时前
Android 7系统编译与刷机(三)从编译产物到高通刷机包
android·系统编译
AFinalStone8 小时前
Android 7系统编译与刷机(四)QFIL刷机工具详解
android·系统编译
plainGeekDev9 小时前
JUnit 4 → JUnit 5 + Kotlin
android·java·kotlin