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

【Android】正式打包发布

在 Android 工程里,Debug 与 Release 是 Gradle 内置好的 Build Variant(构建变体),它们在编译器、签名、性能、安全以及发布等方面都存在差异。

Build Variant 是由 Build Type(debug / release / 你自定的 staging…)和 Product Flavor(如果有,例如 free / paid)组成的,默认工程没有任何 flavor,所以新建工程项目都只有 debug 和 release 两种变体。

一、Debug 与 Release 区别

1、用途

  • Debug 版本用于开发调试阶段。
  • Release 版本用于正式发布到应用商店(即“正式版本”)。

2、 签名秘钥

签名密钥是一个加密文件(通常为 .jks 或 .keystore 格式),包含私钥(用于签名)和公钥(用于验证)。

(1) Debug 版本(调试秘钥)

使用 Android Studio 自动生成的调试密钥签名(debug.keystore),有效期 30 年,所有人机器上一样,用于开发阶段临时签名,不可用于发布。

(2)Release 版本(发布秘钥)

使用开发者自己提供并保管的正式密钥(xxx.jks 或 .keystore),用于应用商店发布的 APK/AAB 签名,必须严格保密。


3、构建开关与编译器优化

(1)Debug 版本

  • isDebuggable = true (默认)
    进程可被 jdwp/lldb attach,断点、Profiler 全部可用。默认为true,BuildConfig.DEBUG = true。
  • isMinifyEnabled = false(默认)
    不跑 R8/ProGuard,代码保持原样,编译快。
  • isShrinkResources = false (默认)
    不删除未用资源,包体大。

(2)Release 版本

  • isDebuggable = false
    进程拒绝调试,Play 商店会拒绝带 isDebuggable = true 的 APK。
  • isMinifyEnabled = true,并配置 proguardFiles
    开启 R8 压缩、混淆、优化,体积减小 20~50%,也增加逆向难度。
  • isShrinkResources = true
    把未用图片、字符串一并裁掉。

4、性能

  • Debug 版本
    未启用代码优化(如 ProGuard/R8),运行时解释执行多,可能运行较慢、出现卡顿现象。

  • Release 版本
    经过代码优化,运行速度更快,内存占用更低。启用混淆后的代码更难以逆向工程。


5、调试与日志

  • Debug 版本
    包含完整的调试符号(如行号、变量名),方便断点调试。默认启用 Log.d()、Log.v() 等详细日志,方便排查问题(adb logcat 直接看),但敏感信息易泄露。支持 Android Profiler、内存分析器等工具。

  • Release 版本
    删除调试符号和日志代码(如 Log 语句默认被移除),无法通过 Android Studio 附加调试器。

http://www.dtcms.com/a/572920.html

相关文章:

  • 寻找做网站的合作伙伴北京北京网址建设
  • PyTorch2 Python深度学习 - 模型保存与加载
  • 南京html5网站建设今天发生的重大新闻5条
  • 台州网站排名优化公司中国石油第一建设公司官网
  • JS原型和原型链
  • Rust 赋能图片批量处理:从 ImageKit 实现到行业前沿优化实践
  • ceph osd down排查
  • Android 14 系统启动流程深度解析:内置SD卡挂载流程
  • 【Qt】大数据量表格刷新优化--只刷新可见区域
  • 基于 React 的倒计时组件实现:暴露方法供父组件状态管理
  • 2.每日机器学习——张量(Tensors)
  • wordpress换php7出错内蒙古seo公司
  • 设计模式——桥接模式(bridge)
  • 阳光家园广州网站个人网站如何做即时支付
  • Arbess零基础学习 - 使用Arbess+GitLab实现.Net 项目构建/主机部署
  • 【数据结构】PriorityQueue优先队列:基于堆(heap)实现
  • PCB设计如何防止别人抄板?
  • macOS自定义安装PlatformIO Core
  • VSCode中Copilot的询问、编辑、代理有啥区别?
  • 二重积分器(Double Integrator)
  • APP与小程序分账系统是什么?资金管理新思路,合规高效分账
  • Hudi和Iceberg的Specification规范角度详细比较异同点
  • 临安网站建设杭州低价做网站
  • 肇庆市手机网站建设品牌专业做网站企业
  • 幂等性 VS 分布式锁:分布式系统一致性的两大护法 —— 从原理到实战的深度剖析
  • 初识DDD架构
  • 一次redis内存泄露故障分析
  • 计算机网络自顶向下方法32——网络层 网络层概述 转发和路由选择,数据平面和控制平面(传统方法,SDN方法) 网络服务模型
  • 深入理解MySQL_3 I/O成本
  • 哪个网站可以做验证码兼职gom传奇网站建设