不同类型的APK

时间:2015-02-23 06:47:00

标签: android apk

有人可以解释一下之间的区别:

  • 签名apk
  • unsigned apk
  • apk在调试模式下
  • apk在发布模式下

虽然很清楚签名的apk是你用自己的证书生​​成apk而没有签名但没有证书的人。

特别是调试模式下的apk和发布模式下的apk真的是什么意思?

这两个如何与签名的apk和未签名的apk相关?

编辑:除此之外还有更多类型的apk吗?

我已经阅读了 http://developer.android.com/tools/publishing/app-signing.html

中的文档

它只解释了在调试模式下签名在发布模式下签名,但他们没有提到有关调试模式下apk和发布模式下apk的内容

4 个答案:

答案 0 :(得分:4)

与使用数字密钥签名的文档证明其来源和所有权以及网站都有证书的方式相同,您可以使用SDK提供的工具对APK进行签名,从而对APK做同样的事情。

未签名与签名APK:

一个已签署,另一个未签署。就像那样。想想地址栏上带有Green thingy的GPGed电子邮件或网站,用于签名的APK和普通电子邮件或没有未签名APK的ssl的网站。

在我们讨论调试模式和发布模式之前,我将对签名做一个非常简短的解释,实际上是谈论权威认证的签名和自签名。

当您访问受SSL保护的网站时,您可能会看到网址上的警告消息或红色X,具体取决于浏览器,警告您该证书不可信任。通常这意味着该网站使用的是自签名证书。这意味着你无法真正告诉谁制作了证书,没有人能真正说出它是真实存在的,或者来自它所说的地方。

另一方面,经过权威机构认证的签名证书,他们有一个已知的(并且应该)保证证书质量的人(公司)以及谁在使用它应该是谁。

现在回到APK:

当你只是测试你的应用程序时,当你想要测试它时,你并不需要一个合适的证书,因为你是在你的设备上安装应用程序并且你知道(至少你应该)应用程序你做的不应该导致任何问题。

另一方面,当您将它们放入Android市场时,重要的是要知道正在下载的应用程序确实是您的,所以当您要使用正确签名的证书时。你不能失去的那个,等等等等。

这将我们带到调试模式和发布模式。

它们只是构建/部署环境/设置,以帮助您提高工作效率。

当您选择调试模式时,apk会(可能?)包含更多的调试信息(并且更大)并且通常会使用您的自签名证书(调试密钥)进行签名(最常见的) )自动生成。

当您选择发布模式时,它(应该)删除无用的调试信息,从而减少应用程序的大小,并使用经过认证的密钥正确签署您的APK,这是在市场上发布应用程序所必需的。

希望这有帮助,如果您需要更多说明,请在评论中提出

答案 1 :(得分:0)

来自Android文档:

  

您可以在调试或发布模式下对应用进行签名。当您准备好分发应用程序时,您可以在开发期间和发布模式下以调试模式签署应用程序。 Android SDK生成证书以在调试模式下对应用程序进行签名。要在发布模式下签署应用程序,您需要生成自己的证书。

也就是说,当您要分发应用程序时,您可以使用自己的密钥库文件在发布模式下对应用程序进行签名。登录调试模式通常由IDE自动完成。

答案 2 :(得分:0)

据我所知,您只能通过命令行构建unsigned。 以下是如何执行此操作Build unsigned APK

以下是链接摘录。

构建未签名的

如果您构建未签名的应用程序,则需要手动签名并对齐包。

要在发布模式下构建未签名的.apk,请打开命令行并导航到模块目录的根目录。调用assembleRelease构建任务。

在Windows平台上,键入以下命令:

  

gradlew.bat assembleRelease   在Mac OS和Linux平台上,键入以下命令:

$ ./gradlew assembleRelease 这将在项目bin /目录中创建名为-unsigned.apk。

的Android应用程序.apk文件

注意:.apk文件此时未签名,在使用您的私钥签名之前无法安装。

创建未签名的.apk后,下一步是使用私钥对.apk进行签名,然后将其与zipalign对齐。要完成此过程,请阅读签署您的应用程序。

当您的.apk已签名并对齐后,就可以将其分发给最终用户了。您应该在不同设备或AVD上测试最终版本,以确保它在不同平台上正常运行。

答案 3 :(得分:-1)

要将任何apk安装到必须签名的任何设备上,无符号apks只能在模拟器中进行测试。在签名时,您可以通过几种方式完成此操作,这是developer.android.com的摘录 http://developer.android.com/tools/publishing/app-signing.html

签名概述 您可以在调试或发布模式下签署应用程序。当您准备好分发应用程序时,您可以在开发期间和发布模式下以调试模式签署应用程序。 Android SDK生成证书以在调试模式下对应用程序进行签名。要在发布模式下签署应用程序,您需要生成自己的证书。

以调试模式登录

在调试模式下,您使用Android SDK工具生成的调试证书对应用进行签名。此证书具有带有已知密码的私钥,因此您可以在不对每次更改项目时键入密码的情况下运行和调试应用程序。

当您从IDE运行或调试项目时,Android Studio会自动以调试模式签署您的应用程序。

您可以在仿真器和通过USB连接到开发人员的设备上运行和调试以调试模式签名的应用,但是您无法分发以调试模式签名的应用。

默认情况下,调试配置使用调试密钥库,其中包含已知密码和具有已知密码的默认密钥。调试密钥库位于$ HOME / .android / debug.keystore中,如果不存在则创建。调试构建类型设置为自动使用此调试SigningConfig。