2016-08-10 43 views
12

Jestem nowy w studiu Android, a także w Androidzie. Z mojego doświadczenia w visual studio, kiedy testujemy .exe na innej maszynie, kopiujemy folder wydania i .exe.Różnice między aplikacjami do debugowania i wydawania

Ale w Androidzie studio widzę, jak moi koledzy testują pakiet debugujący, kopiując i wdrażając w innych systemach używających napędu USB. wydaje się również działać. Czy mogę wiedzieć, jakie są konsekwencje wdrożenia tej wersji? Czy wersja wydania ma znaczenie tylko dla celu sklepu Play?

Jaka jest różnica techniczna/konsekwencja inna niż ta wersja debugowania zawiera informacje debugowania, które mogą spowalniać lub nieporęczne?

+0

Jak sama nazwa wskazuje, debugowanie apk jest możliwe do debugowania w naszym IDE, co ułatwia rozwiązywanie problemów w naszej aplikacji. Również apk jest podpisany plikiem kluczy wykonanym przez programistę z jego/jej przepustką, a więc bezpieczniejszym. –

Odpowiedz

6

Jedna ważna różnica polega na tym, że pakiety APK wersji zazwyczaj miały uruchomione ProGuard (kod zmniejszający), który wykrywa i usuwa nieużywany kod w celu zmniejszenia rozmiaru pakietu APK.

Od Shrink Your Code and Resources:

Należy pamiętać, że kod kurczy spowalnia czasie kompilacji, dlatego należy unikać stosowania go na swojej debugowania zbudować, jeśli to możliwe. Jednak ważne jest, aby włączyć zmniejszanie kodu w ostatecznym pakiecie APK używanym do testowania, ponieważ może on powodować błędy, jeśli nie dostosujesz dostatecznie kodu, który ma pozostać.

Twoi koledzy są prawdopodobnie testuje na debugowania typu build, aby zaoszczędzić czas, ponieważ może to znacznie dłużej trwa budowanie zwalniającą APK w przeciwieństwie do APK debugowania.

+4

możesz włączyć proguard dla kompilacji debugowania również – AndroidMechanic

1

Jedyna różnica (jeśli określono inaczej w build.gradle) między kompilacją debugowania a kompilacją wydania jest kluczem, z którym są podpisane. Większość kanałów dystrybucji aplikacji chciałaby [tylko] mieć podpisaną aplikację z kluczem do zwolnienia, aby uwierzytelnić programistę. W przeciwnym razie nie ma różnic.

Istnieje jednak wiele zmian, które można wprowadzić między tymi dwoma wersjami. Powinny one zostać określone w twoim numerze build.gradle, jeśli takie istnieją. Więc powinieneś mieć oko.

5

Główne różnice są flagi debugowania i klucze podpisywania:

  • do debugowania buduje apk zostanie podpisana z domyślnych przycisków debug podpisywania z flagą debugowania włączone.

  • W przypadku kluczy zwalniających należy jawnie określić klucze do podpisania, a flaga debugowania zostanie wyłączona, aby nie można było debugować.

  • Program Proguard można włączyć w przypadku kompilacji wersji. (również w przypadku wersji debugowania, ale nie zaleca się). Ten krok musi być wykonany jawnie i domyślnie jest fałszywy.

Uwaga: te rzeczy mogą być zmieniane w build.config i można wybrać co kiedykolwiek permutacji i kombinacji chcesz.

+0

O ile mogę zrozumieć ze wszystkich powyższych odpowiedzi, mogę dojść do wniosku, że kompilacja debugowania jest w rzeczywistości całkowicie niezależną wersją apk, która jest nawet wdrażalna w środowisku produkcyjnym z ograniczeniem brakiem kompresji/optymalizacji/zmniejszania kodu oraz uwierzytelniania programisty. Dziękuję i proszę, popraw mnie, jeśli się mylę w tym wniosku. – user2454516

+1

tak, podpisywanie apk jest tym, co powiedziałbym, jest najważniejsze podczas uwalniania w produkcji. inne rzeczy można zastosować do obu typów kompilacji. – AndroidMechanic

+0

* "i flaga debugowania zostanie wyłączona, aby nie można było debugować" * ... czy to znaczy, że "kompilacje debugowania" mogą być debugowane przez inne osoby? A oni uzyskują dostęp do kodów aplikacji? – Shafizadeh