Удаление Android инструкций Log.d и e.printStackTrace перед загрузкой на рынок - PullRequest
1 голос
/ 05 марта 2012

Мой вопрос прост. Должен ли я удалить инструкции Log.d / e / i / v и e.printStackTrace перед загрузкой моего приложения на Android market?

Ответы [ 8 ]

4 голосов
/ 05 марта 2012

Если возможно, да, это хорошая практика разработки приложений, но необходим правильный дескриптор e.printStack, чтобы ваше приложение не закрывалось от ненужных исключений.Для этого вы можете использовать Log.e(TAG, e.toString()); во всем блоке catch.Это будет хранить некоторую необходимую информацию о поведении вашего приложения, и вы также можете легко получить информацию о любом принудительном закрытии или исключении для вашего приложения.

2 голосов
/ 05 марта 2012

Инструкции Log.debug автоматически возвращаются, когда вы запутываете свое приложение.См. Ссылку:

Android Proguard, удаление всех операторов журнала и слияние пакетов

0 голосов
/ 15 июня 2016

Чтобы удалить вызовы в классе Log, добавьте следующее в файл правил proguard:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}
0 голосов
/ 26 февраля 2014

Я просто создаю свой собственный класс Log и создаю методы-оболочки для методов android.util.Log, которые проверяют BuildConfig.DEBUG перед записью журнала.

0 голосов
/ 05 марта 2012

Вы можете посмотреть здесь , они рекомендуют отключить ведение журнала:

Убедитесь, что вы отключили ведение журнала и отключили опцию отладки, прежде чем создавать приложение для выпуска.,Вы можете отключить ведение журналов, удалив вызовы методов Log в ваших исходных файлах.

Однако вам следует вести некоторые журналы, такие как печать трассировки стека для исключений и т. Д., Поскольку у вас, вероятно, будет множествоПроблемы с отладкой возможны сбои позже, если вы удалите их.

0 голосов
/ 05 марта 2012

OfCource вам следует, особенно если ваше приложение во многом зависит от производительности (например, игра с высокой частотой кадров), в противном случае печать журналов значительно снижает производительность. Правильный способ сделать это - установить флажокisLoggable, который при значении false не печатает журналы.

0 голосов
/ 05 марта 2012

Я не знаю, нужно ли его удалять.Если я загружаю проект на рынок, я получаю 2 версии одного и того же приложения.

  1. с println и журналами
  2. без println и журналами

удаление их всегда заставит приложение работать немного быстрее (очень мало).

0 голосов
/ 05 марта 2012

Это действительно зависит от жизненного цикла приложения после его выхода на рынок.

Если вы не можете доверять своим пользователям предоставление подробных отчетов об ошибках (вообще говоря, с инженерными приложениями вы можете надеяться, что у некоторых пользователей хватит ума представить подробный отчет о сбоях), то нет причин для раздувания Android Log ,

С другой стороны, некоторые ошибки heisenbugs могут исчезнуть после добавления операторов регистрации, что делает их действительно трудными для поиска.

Это действительно дело вкуса - я предоставляю переключатель времени сборки, который включает их в отладочные сборки, но не в релизные сборки. И я обычно жду, пока приложение не пройдет бета-версию, чтобы полностью отключить журнал отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...