Есть ли простой способ деактивировать ведение журнала перед выпуском приложения на рынок?

Я готовлюсь выпустить приложение на рынок после прочтения документации Google, здесь это предполагает следующее: Deactivate any calls to Log methods in the source code.

Есть ли более простой способ, чем просматривать все мои исходные файлы и удалять каждую строку вручную?

Кроме того, зачем удалять ведение журнала, это пожиратель ресурсов?


person Jimmy    schedule 28.02.2011    source источник


Ответы (2)


Это можно сделать через proguard. В последних SDK и инструментах файл конфигурации proguard уже должен существовать. Кристофер ответил на этот вопрос в похожем вопросе.

Самый простой способ, вероятно, запустить скомпилированный JAR через ProGuard перед развертыванием с такой конфигурацией:

-assumenosideeffects class android.util.Log {
  public static int v(...);
}

Это, помимо всех других оптимизаций ProGuard, удалит любые подробные операторы журнала непосредственно из байт-кода.

Вы можете решить, какие выходные данные вы хотите отключить, добавив

-assumenosideeffects class android.util.Log {
  public static int d(...);
  public static int i(...);
  public static int e(...);
}

также в конфигурационный файл proguard. Мне нравится сохранять сообщения .e в моем коде, потому что они используются только в некоторых частях перехвата, чтобы снизить производительность во время нормального выполнения приложения.

person Janusz    schedule 28.02.2011