当前位置: 首页 > news >正文

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签名密钥的密钥库
keytool -genkey -v -keystore yang_release_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_release_key_name
  • 配置Release包的签名属性和构建属性
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
./gradlew assembleRelease

Debug版本

  • 生成Debug签名密钥的密钥库
keytool -genkey -v -keystore yang_debug_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_debug_key_name 
  • 配置Debug包的签名属性和构建属性
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
./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
http://www.lryc.cn/news/437041.html

相关文章:

  • 基于 SpringBoot 的实习管理系统
  • vmware workstation 17 linux版
  • Windows环境本地部署Oracle 19c及卸载实操手册
  • MapStruct介绍
  • 35天学习小结
  • 【iOS】UIViewController的生命周期
  • ELK在Linux服务器下使用docker快速部署(超详细)
  • unity导入半透明webm + AE合成半透明视频
  • 力扣: 四数相加II
  • 径向基函数神经网络RBFNN案例实操
  • Java-数据结构-二叉树-习题(一) (✪ω✪)
  • js 时间戳转日期格式
  • 基于人工智能的自动驾驶系统项目教学指南
  • [Linux#49][UDP] 2w字详解 | socketaddr | 常用API | 实操:实现简易Udp传输
  • 期权组合策略有什么风险?期权组合策略是什么?
  • 从Zotero6到Zotero7的数据迁移尝试?(有错勿喷,多多指教!)
  • 快速排序(分治思想)
  • JAVA相关知识
  • 详解TCP的三次握手
  • Java面试篇基础部分-Java创建线程详解
  • Ubuntu 20.04/22.04无法连接网络(网络图标丢失、找不到网卡)的解决方案
  • 《MDTv2- Masked Diffusion Transformer is a Strong Image Synthesizer》
  • 算法 - 二分查找
  • Python知识点:如何使用Python进行图像批处理
  • 数据结构实验1
  • 使用Postman+JMeter进行简单的接口测试
  • 基于 SpringBoot 的车辆充电桩管理系统
  • centos7.9安装clamav教程
  • 产品经理如何转型为AI产品经理,如何理解AI产品工程化
  • TiDB从0到1学习笔记(精华篇)