首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android : Debug v/s生产版本

Android : Debug v/s生产版本
EN

Stack Overflow用户
提问于 2014-04-04 09:14:00
回答 3查看 4.5K关注 0票数 1

在Android中,调试版本和生产版本有什么不同?另外,还有其他类型的构建吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-04-04 09:51:55

我不确定您问的是debug/production应用程序还是debug/product框架。因此,我将介绍框架。

有两种不同类型的android框架构建(整个系统镜像),用户(又称生产)和用户调试。

所有标准设备制造商都使用“用户”版本发布他们的设备。Userdebug是为开发而设计的,通常只为内部使用而构建。

获取根目录:

在userdebug build中,您可以简单地执行"adb root“将您的adb shell切换到root模式。此外,您还可以执行"adb remount“,将系统分区重新挂载到可写模式,以便进一步控制。

在用户构建中,您可以通过安装特殊的su二进制文件和相应的控制应用程序(如supersu)来获得root访问权限。这样,在adb shell中,您可以使用"su“获得特权shell。它不像userdebug版本那样方便。

在AOSP中,您可以通过午餐命令选择构建类型。例如午餐aosp_hammerhead-userdebug

vs

午餐aosp_hammerhead-用户

票数 2
EN

Stack Overflow用户

发布于 2014-04-04 09:26:55

好吧,这三只小猪有三种类型的构建,但大多数都不是很好。

无论如何,你应该使用see the docs here。当您在IDE中构建您的应用程序时,您将获得一个调试密钥,这与生产密钥不同。有了调试版本,您就不必每次都输入凭据了,但是很明显,当您准备发布生产版本时,您会想要这个提示。

我猜这就是你所说的,但如果你有其他想法,请详细说明。

票数 1
EN

Stack Overflow用户

发布于 2014-04-04 10:16:57

这两个版本之间没有区别。生产版本将与调试版本运行相同,但有一些有限的例外。有限的例外与签名相关的功能相关,即它们需要您注册调试密钥或生产密钥才能正常工作。这将包括大多数应用程序接口,如GoogleMaps或Facebook,以及使用构建密钥生成唯一标识符的任何其他应用程序接口(想想大多数OAuth2产品)。

你的问题令人困惑/模糊,因为在现实中,两个构建没有区别。两者都将运行完全相同的代码。区别在于谁可以运行它们,以及您如何运行它们。所有android应用程序在使用唯一密钥构建时都会进行签名。这个密钥识别应用程序的创建者,在生产中很有用,可以确保开发人员不会向Google Play Store上的那些人发送垃圾恶意软件(或者至少如果他们是的话,我们知道在哪里可以找到他们)。

在调试模式下创建的生成使用本地化到特定计算机的调试密钥进行签名。这意味着如果我在调试模式下构建了一个应用程序来安装到我的手机上,而坐在我旁边的另一个开发人员构建了完全相同的代码库,以便在他的手机上运行,我们的两个应用程序将使用不同的调试密钥进行签名。为什么这很重要?好吧,回到上面提到的API注册过程,当我坐在我旁边的朋友在他的机器上以调试模式构建应用程序时,如果我使用我的调试密钥(坏主意)创建我们公司范围内的Google Maps API注册,他会遇到一个错误。问题是,对Google Maps API的访问依赖于使用正确密钥注册的应用程序。由于我们的两个密钥不同,他的应用程序将无法正确加载。

发布/生产模式允许您将应用程序标记为一个通用密钥,而不是绑定到特定的机器。这避免了上面提到的问题。通过对所有安装使用一个密钥,每个应用程序将能够访问相同的API,只要您使用您的生产密钥注册它们。此生产密钥不是特定于计算机的。你可以将它发送给你的朋友(请不要),这样他们就可以像你一样为应用程序签名。

差不多就是这样。你可以在这里阅读更多关于building and running apps的内容。如果你有更具体的问题,请澄清。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22851813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档