Журналы отладки Android действительно удалены во время выполнения?
Документация для Android (http://developer.android.com/reference/android/util/Log.html):
Verbose никогда не следует компилировать в приложение, кроме как во время разработки. Журналы отладки компилируются, но удаляются во время выполнения. Журналы ошибок, предупреждений и информации всегда сохраняются
Я просто сделал тест. В своей деятельности я писал:
private static String test(String what) {
Log.e("test", "I am called with argument: " + what);
return what;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("test", "log level: " + test("v"));
Log.d("test", "log level: " + test("d"));
Log.i("test", "log level: " + test("i"));
Log.w("test", "log level: " + test("w"));
Log.e("test", "log level: " + test("e"));
}
Я экспортировал свой проект как файл apk, затем я установил этот apk на свой телефон. Я запускаю это приложение на своем телефоне, затем смотрел журналы. Там я увидел, что тест функции был вызван все пять раз, и все пять вызовов функций Log.something привели к тому, что его текст был записан в журналы.
Итак, вызовы Log.d действительно удалены во время выполнения?
Ответы
Ответ 1
Этот вопрос был отправлен здесь и решение было предоставлено в ADT 17.0.0 в марте 2012 года.
Добавлена функция, позволяющая запускать некоторый код только в режиме отладки. Builds теперь генерирует класс BuildConfig, содержащий константу DEBUG, которая автоматически устанавливается в соответствии с вашим типом сборки. Вы можете проверить константу (BuildConfig.DEBUG) в своем коде, чтобы запускать только функции отладки.
Ответ 2
Нет. Вы должны сделать это сами. Вы можете сделать свою собственную обертку Log.d следующим образом:
public static void debug(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.d(tag, msg);
}
}
Ответ 3
Лучший способ удаления журналов, вероятно, достигается с помощью ProGuard
Проверить этот вопрос
'Android Proguard, удаление всех операторов журнала и объединение пакетов