Android:Debug v / s生成版本

时间:2014-04-04 01:14:00

标签: android

在Android中,调试构建和生产构建有什么区别?还有其他类型的构建吗?

感谢。

3 个答案:

答案 0 :(得分:1)

嗯,三只小猪有三种类型的构建,但大多数没有那么好。

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

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

答案 1 :(得分:1)

我不确定您是否在询问调试/生产应用程序或调试/产品框架。所以我将介绍框架。

有两种不同类型的android框架构建(整个系统映像)用户(又名生产)和userdebug。

所有标准设备制造商都使用" user"建立。 Userdebug用于开发,通常仅为内部使用而构建。

获得root权限:

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

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

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

VS

午餐aosp_hammerhead-user

答案 2 :(得分:1)

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

你的问题很混乱/模糊,因为实际上两个版本没有区别。两者都将运行完全相同的代码。不同之处在于谁可以运行它们以及如何运行它们。所有Android应用程序在通过唯一键构建时都会被签名。此密钥标识应用程序创建者,并且在生产中非常有用,可确保开发人员不会向Google Play商店中的人发送垃圾恶意软件(或者至少如果我们知道在哪里找到它们)。

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

发布/生产模式允许您签署应用程序是一个通用密钥,而不是绑定到特定的计算机。这避免了上述问题。通过对所有时间段使用一个密钥,每个应用程序都可以访问相同的API,只要您使用生产密钥注册它们即可。此生产密钥不是特定于机器的。您可以将它发送给您的朋友(请不要),以便他们可以像您一样签署应用程序。

这就是它。您可以在此处详细了解building and running apps。如果您有更具体的问题,请澄清。