2014-04-04 63 views

回答

1

好,三只小猪有3种类型的构建,但其中大部分没有工作这么好。

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

我想这是你在说什么,但如果你有别的考虑,那么请详细说明。

+0

我在询问有关AOSP的调试v/s生产版本。 – Jake

+0

像[this](http://stackoverflow.com/questions/13950589/difference-between-eng-and-user-debug-build-in-android)?在您的术语中,您仍然是非常通用的,而且问题是......您可以开发AOSP软件,它仍适用于我的答案,或者您可能会谈论一些与众不同的东西。 – codeMagic

+0

其实它涉及到另一个问题,我问了'adb root'命令。它需要调试构建,所以我想了解其中的差异。 – Jake

1

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

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

所有标准设备制造商都以“用户”版本发布设备。 Userdebug用于开发,通常只用于内部使用。

获取root权限:

在userdebug构建,你可以简单地做“亚行根”到你的亚行外壳切换到root模式。另外,您还可以执行“adb remount”将系统分区重新挂载到可写入模式以进行进一步控制。

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

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

VS

午餐aosp_hammerhead用户

1

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

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

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

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

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