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
相关推荐
mygljx1 小时前
【MySQL 的 ONLY_FULL_GROUP_BY 模式】
android·数据库·mysql
冬奇Lab4 小时前
AudioTrack音频播放流程深度解析
android·音视频开发·源码阅读
青莲8436 小时前
查找算法详解
android·前端
青莲8436 小时前
排序算法详解
android·前端
zd2005726 小时前
用摩斯密码「听」时间:一款安卓报时应用的诞生
android
不会写代码的猴子7 小时前
Android17版本更新预览
android·android studio
用户41659673693558 小时前
记一次深坑:RecyclerView + FlexboxLayoutManager 导致 canScrollVertically 误判的剖析与修复
android
Be for thing9 小时前
Android 音频硬件(Codec / 喇叭 / 麦克风)原理 + 功耗与问题定位实战(手机 / 手表通用)
android·学习·智能手机·音视频
吉哥机顶盒刷机9 小时前
S905L3A/L3AB芯片迎来安卓14新纪元:Sicha移植版固件深度评测与刷机指南
android·经验分享·刷机