我是android以及android studio的新手。 根据我在visual studio中的经验,当我们在另一台机器上测试.exe时,我们会复制release文件夹和.exe。
但是在Android工作室我看到我的同事通过使用USB驱动器在其他系统中复制和部署来测试调试apk。似乎也在工作。 我可以知道部署该版本的后果是什么?发布版本是否仅与Play商店有关?
除了调试版本包含可能使其变慢或笨重的调试信息之外,技术差异/后果是什么?
答案 0 :(得分:11)
主要区别在于调试标志和签名密钥:
对于调试版本,apk将使用默认调试签名密钥进行签名,并启用调试标记。
对于发布密钥,您必须明确指定要签名的密钥,并且将关闭调试标志,以便无法对其进行调试。
可以为发布版本打开Proguard。 (也适用于调试版本,但不建议)。此步骤需要明确执行,默认情况下为false。
注意:这些内容可以在build.config中进行更改,您可以选择所需的排列和组合。
答案 1 :(得分:10)
一个重要的区别是发布APK通常会在其上运行ProGuard(代码缩减),它会检测并删除未使用的代码以减少APK大小。
来自Shrink Your Code and Resources:
请注意,代码缩小会减慢构建时间,因此如果可能,应避免在调试版本中使用它。但是,在您最终用于测试的APK上启用代码收缩非常重要,因为如果您没有充分定制要保留的代码,它可能会引入错误。
您的同事可能正在测试调试版本类型以节省时间,因为与调试APK相比,构建版本APK可能需要更长的时间。
答案 2 :(得分:4)
以上所有答案都是正确的但主要区别在于,如果我们使用 debug.apk
在设备/模拟器上安装应用程序,我们可以
*用调试器调试
*使用 android studio profiler 分析 CPU、内存、网络
*查看logcat中的日志
*使用布局检查器调试布局
如果使用 release.apk
我们不能使用上述功能,我们配置一些功能/库以在特定的输出类型下工作(就像我们只能在调试 apk 中使用leakCanary)
答案 3 :(得分:0)
调试版本和发布版本之间的主要区别(如果在build.gradle
中另有说明)是签名的关键。大多数应用程序分发渠道[仅]希望使用发布密钥签名的应用程序对开发人员进行身份验证。否则,没有差异。
发布版本也可能触发其他选项,如代码混淆和拆分,所以请注意这些。
但是,这两个版本之间可能会有很多变化。这些应在build.gradle
中指定,如果有的话。所以,你应该留意那里。