webentwicklung-frage-antwort-db.com.de

Unterschied zwischen Debug- und Release-Apks

Ich bin sowohl für Android als auch für Android Studio neu. Wenn ich die .exe-Datei auf einem anderen Computer teste, kopieren wir aus meiner Erfahrung im Visual Studio den Freigabeordner und die .exe-Datei.

In Android Studio sehe ich jedoch, wie meine Kollegen das Debug-Apk testen, indem sie es kopieren und auf anderen Systemen mithilfe eines USB-Laufwerks bereitstellen. scheint auch zu funktionieren ... Kann ich wissen, was ist die Folge der Bereitstellung dieser Version? Ist die Release-Version nur für einen Play Store-Zweck relevant?

Was ist der technische Unterschied/die andere Konsequenz als die Debug-Version, die Debug-Informationen enthält, wodurch sie langsam oder sperrig wird?

19
user2454516

Ein wichtiger Unterschied ist, dass auf Release-APKs normalerweise ProGuard (Code Shrinking) ausgeführt wurde, wodurch nicht verwendeter Code erkannt und entfernt wird, um die APK-Größe zu reduzieren.

Von Verkleinern Sie Ihren Code und Ressourcen :

Beachten Sie, dass das Verkürzen von Code die Erstellungszeit verlangsamt. Sie sollten es daher möglichst nicht in Ihrem Debug-Build verwenden. Es ist jedoch wichtig, dass Sie den Code für die endgültige APK-Verkleinerung aktivieren, die zum Testen verwendet wird. Andernfalls kann es zu Fehlern kommen, wenn Sie den Code nicht ausreichend anpassen.

Ihre Kollegen testen wahrscheinlich den Debug-Build-Typ, um Zeit zu sparen, da die Erstellung der Release-APK im Gegensatz zur Debug-APK erheblich länger dauern kann.

10
prfarlow

Hauptunterschiede sind das Debug-Flag und die Signaturschlüssel:

  • Für Debug-Builds wird die APK mit den standardmäßigen Debug-Signaturschlüsseln mit aktiviertem Debug-Flag signiert.

  • Beim Freigeben von Schlüsseln müssen Sie explizit die Schlüssel angeben, mit denen signiert werden soll. Das Debug-Flag wird deaktiviert, damit es nicht debuggt werden kann.

  • Proguard kann für Release Builds aktiviert werden. (auch für Debug-Builds, aber nicht empfohlen). Dieser Schritt muss explizit ausgeführt werden und ist standardmäßig falsch.

Hinweis: Diese Dinge können in Ihrer build.config geändert werden und Sie können wählen, welche Permutation und Kombination Sie wünschen.

Der Hauptunterschied (wenn in build.gradle anders angegeben) zwischen einem Debugbuild und einem Releasebuild ist der Schlüssel, mit dem sie signiert sind. Die meisten App-Verteilungskanäle möchten [nur] eine mit einem Freigabeschlüssel signierte App, um den Entwickler zu authentifizieren. Ansonsten gibt es keine Unterschiede.

Ein Release-Build kann auch andere Optionen wie Code-Verschleierung und Splits auslösen, also achten Sie auf diese.

Es gibt jedoch viele Änderungen, die zwischen diesen beiden Versionen vorgenommen werden können. Diese sollten ggf. in Ihrem build.gradle angegeben werden. Du solltest also ein Auge darauf haben.

0
Shaishav