Почему я не должен использовать System.out.println () в android

В этом стиле кода они сказали, что мы не должны использовать System.out.println (), но я не понимаю их идеи. Может ли кто-нибудь объяснить об этом? Что я должен использовать для отслеживания журнала моего приложения?

System.out.println () (или printf () для собственного кода) никогда не следует использовать. System.out и System.err перенаправляются на / dev / null, поэтому ваши операторы печати не будут иметь видимых эффектов. Однако все строковое построение, которое происходит для этих вызовов, все равно выполняется.

Это была моя проблема. Вы должны использовать методы класса Log .

Как разработчик Android, это обычно используемый метод утилиты ведения журнала

  1. Log.d() – Отладка
  2. Log.e() – Ошибка
  3. Log.i() – Информация
  4. Log.w() – Предупреждение
  5. Log.v() – Подробный
  6. Log.wtf() – Что такое ужасная Log.wtf() об исключении, которое never должно происходить.

Методы выше имеют оба параметра:

  1. String , String – это базовый параметр, который является TAG и Message.
  2. String, String, Throwable – имеет сходство на первом. Однако, если вы хотите зарегистрировать Exception или любое Throwable s в logcat, кроме вызова printStackTrace() используйте это.

РЕДАКТИРОВАТЬ : Идите прямо, чтобы ответить на ваш вопрос. println() System.out и System.err все равно будут отображаться в logcat, но с ограничениями.

  • Вы не можете регистрировать VERBOSE , ERROR или DEBUG с помощью System.out или System.err .
  • Вы не можете определить свой собственный TAG , он отобразит System.err или System.out своим текстом. Как эквивалентность

    • System.out.println("Hello!") Эквивалентен Log.i("System.out","Hello!")
    • System.err.println("Hello!") Эквивалентен Log.w("System.err","Hello!")

System.out.println("") в android не будет работать хорошо, потому что нет терминала, на который исправлено приложение.

Вам было бы лучше использовать Log.(d)(v)(e)(i)(w) , потому что что-то активно контролирует LogCat.

System.out.println() будет печатать в LogCat, но только после дополнительного набора System instuctions, сделав его не таким эффективным, как я уже сказал, он все еще работает.

Если мы хотим проследить проект андроида
Мы можем это сделать, используя класс Log
Есть несколько способов, например
Log.e (TAG, СООБЩЕНИЕ)
Log.v (TAG, СООБЩЕНИЕ)
Log.w (TAG, СООБЩЕНИЕ)
Log.d (TAG, СООБЩЕНИЕ)
Log.i (TAG, СООБЩЕНИЕ)
Его статический метод пакета Utils. Поместите его по строкам, и вы можете смотреть его в LogCat ..
Это нравится пользоваться с android

По вашей собственной ссылке:

System.out.println () (или printf () для собственного кода) никогда не следует использовать. System.out и System.err перенаправляются на / dev / null, поэтому ваши операторы печати не будут иметь видимых эффектов. Однако все строковое построение, которое происходит для этих вызовов, все равно выполняется.

Кроме того, в начале этой страницы говорится:

Нижеприведенные правила не являются рекомендациями или рекомендациями, а строгими правилами. Взносы на Android обычно не принимаются, если они не соблюдают эти правила.

Поэтому НЕ ДЕЛАЙТЕ !

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

Вы можете использовать Log.e(String, String) для ошибок, которые будут отображаться красным цветом. Существует также v , d , i и w для подробного, отладочного, информационного и предупреждения соответственно.

Следующее должно сделать трюк для печати исключения

1. Log.d («myapp», Log.getStackTraceString (новое исключение ()));

или

2. Вы можете получить более длинные трассировки стека, копая глубже. Например:

Log.getStackTraceString (e.getCause () getCause ().);

Журнал – лучший способ отслеживать наш проект Android
Как следующий код …
Это поможет вам …
Просто загляните в DDMS logCat, как точно построить проект …
Требование … android.utils.Log; Упаковка используется ..

 @Override 
Protected void onCreate (Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
Для (int i = 0; i {
Log.e ("i =", "" + i);
Log.v ("i =", "" + i);
Log.i ("i =", "" + i);
Log.w ("i =", "" + i);
Log.d ("i =", "" + i);
}
}

Я надеюсь, что это поможет вам