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

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

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

Ответы

Ответ 1

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

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

  • Log.d() - Отладка
  • Log.e() - Ошибка
  • Log.i() - Информация
  • Log.w() - Предупреждение
  • Log.v() - Подробный
  • Log.wtf() - Что такое ужасная ошибка: сообщите об исключении, которое должно never произойти.

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

  • String , String - это базовый параметр, который является TAG и Message.
  • String, String, Throwable - имеет сходство на первом. Однако, если вы хотите зарегистрировать Exception или любой Throwable в 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!")

Ответ 2

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

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

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

Ответ 3

если мы хотим проследить проект android
мы можем сделать это, используя класс Log есть несколько способов, например, Log.e(TAG, MESSAGE)
Log.v(TAG, MESSAGE)
Log.w(TAG, MESSAGE)
Log.d(TAG, MESSAGE)
Log.i(TAG, MESSAGE)
его статический метод пакета Utils. поместите его по строкам, и вы можете смотреть его в LogCat.
thats at enjoy with android

Ответ 4

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

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

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

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

Итак НЕ НЕ сделайте это!

Ответ 5

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

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

Ответ 6

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

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

или

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

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

Ответ 7

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

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

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