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
相关推荐
louisgeek6 分钟前
Android OkHttp Interceptor
android
大王派来巡山的小旋风11 分钟前
Kotlin基本用法三
android·kotlin
Jerry说前后端1 小时前
Android 移动端 UI 设计:前端常用设计原则总结
android·前端·ui
bytebeats1 小时前
Jetpack Compose 1.9: 核心新特性简介
android·android jetpack
Icey_World1 小时前
Mysql笔记-错误条件\处理程序
android
大王派来巡山的小旋风2 小时前
Kotlin基本用法之集合(一)
android·程序员·kotlin
用户2018792831672 小时前
智能广播系统(RemoteCallbackList)的诞生
android
用户2018792831673 小时前
Binder 同应用内(本地)通信是否存在 1MB 大小限制?
android
一条上岸小咸鱼3 小时前
Kotlin 基本数据类型(四):String
android·前端·kotlin
Onion_994 小时前
学习下Github上的Android CICD吧
android·github