Разница между отладкой и выпуском apks

Я новичок в android, а также в студии android. Из моего опыта работы в visual studio, когда мы тестируем .exe на другой машине, мы скопируем папку release и .exe.

Но в студии Android я вижу, что мои коллеги тестируют debug apk, копируя и развертывая в других системах с помощью USB-накопителя. похоже работа тоже. Могу ли я узнать, что является следствием развертывания этой версии? Является ли версия выпуска релевантной только для целей магазина воспроизведения?

Какова техническая разница/последствия, отличные от этой отладочной версии, содержат отладочную информацию, которая может сделать ее медленной или громоздкой?

Ответ 1

Важным отличием является то, что на выпуск APK обычно накладывается ProGuard (сокращение кода), который обнаруживает и удаляет неиспользуемый код для уменьшения размера APK.

Из Сократите свой код и ресурсы:

Помните, что сокращение кода замедляет время сборки, поэтому вам следует избегать использования его в своей сборке отладки, если это возможно. Тем не менее, важно, чтобы вы включили сокращение кода в своем конечном APK, используемом для тестирования, потому что это может привести к ошибкам, если вы недостаточно настроили, какой код сохранить.

Ваши коллеги, вероятно, тестируют стиль отладки, чтобы сэкономить время, потому что для создания APK выпуска может потребоваться значительно больше времени, а не отлаживать APK.

Ответ 2

Основные отличия - это флаг отладки и ключи подписи:

  • Для отладочных сборников apk будет подписан с помощью ключей подписи отладки по умолчанию с включенным флагом отладки.

  • Для ключей release вам нужно будет явно указать ключи для подписания, а флаг отладки будет отключен, чтобы он не мог быть отлажен.

  • Proguard может быть включен для релизов. (также для отладочных сборников, но не рекомендуется). Этот шаг необходимо выполнить явно и по умолчанию является ложным.

Примечание. эти вещи могут быть изменены в вашем файле build.config, и вы можете выбрать, какую комбинацию вы хотите переделать.

Ответ 3

Единственная разница (если указано иначе в build.gradle) между сборкой отладки и сборкой релиза - это ключ, с которым они подписаны. Большинство каналов распространения приложений [только] хотели бы, чтобы приложение, подписанное с ключом освобождения, аутентифицировало разработчика. В противном случае нет различий.

Однако есть много изменений, которые могут возникнуть между этими двумя версиями. Они должны быть указаны в вашем build.gradle, если таковые имеются. Итак, вы должны следить за ним.