Как выясняется, в этом учебном пособии описывается способ выгрузки копии системных журналов в объект StringBuilder
.
Код, скопированный из учебного пособия:
public class LogTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(log.toString());
} catch (IOException e) { }
}
}
Обратите внимание, что вам необходимо включить разрешение на чтение журналов:
<uses-permission android:name="android.permission.READ_LOGS" />
.
Важной частью кода является часть Runtime.getRuntime().exec("logcat -d")
.Переключатель -d
- это часть, которая отбрасывает текущий журнал и завершает работу.Если я правильно читаю документацию , то при отключении этого переключателя теоретически можно оставить logcat
включенным, сбросив последовательные строки журнала в stdout
, как они отображаются.