Согласно Google, я должен « деактивировать любые вызовы методов Log в исходном коде » перед публикацией моего приложения для Android в Google Play. Выдержка из раздела 3 контрольного списка публикации :
Убедитесь, что вы отключили ведение журнала и отключили параметр отладки, прежде чем создавать приложение для выпуска. Вы можете отключить ведение журнала, удалив вызовы методов журнала в исходных файлах.
Мой проект с открытым исходным кодом велик, и каждый раз, когда я выпускаю его, больно делать это вручную. Кроме того, удаление строки журнала потенциально сложно, например:
if(condition)
Log.d(LOG_TAG, "Something");
data.load();
data.show();
Если я прокомментирую строку журнала, то условие применяется к следующей строке, и скорее всего, load () не вызывается. Достаточно ли редки такие ситуации, чтобы я мог решить, что их не должно быть?
Итак, есть ли лучший способ сделать это на уровне исходного кода? Или, может быть, какой-то умный синтаксис ProGuard для эффективного, но безопасного удаления всех строк журнала?
sed 's_^\(\s*Log\.\)_;//'`date|tr -s \ -`'\1_g'
вместо этого.