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
相关推荐
陆业聪1 小时前
让 Android 里的 AI 真正「干活」:Function Calling 工程实现全解
android·ai·kotlin
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Android的服装搭配APP为例,包含答辩的问题和答案
android
qq_717410011 小时前
Add Baidu NLP for projects without GMS packages
android
AI-小柒2 小时前
DataEyes 聚合平台 + Claude Code Max 编程实战
android·开发语言·人工智能·windows·python·macos·adb
优选资源分享3 小时前
椒盐音乐 v11.1.0 丨安卓无广本地音乐播放器
android
xiangxiongfly9154 小时前
Android ArrayMap源码分析
android·arraymap
lishutong10065 小时前
直破 Android 17 大屏困局:Navigation 3 架构深度解析
android·架构
梦里花开知多少5 小时前
AOSP Android 14 壁纸架构深度分析
android
木子予彤5 小时前
直破 Android 17 大屏困局:Navigation 3 架构深度解析
android·android jetpack
用户41659673693556 小时前
记一次 Compose 文本排版填坑:为什么阿拉伯文案明明空间足够却强行换行?
android