내 응용 프로그램에서 장치 로그를 읽는 기능을 구현 중입니다. 프로그래밍 방식으로 장치 로그 필터링
는이 목적을 위해 나는 Reading logs programatically 도움을 촬영했다. 이 코드 스 니펫은 장치 로그 (실행중인 모든 프로세스의 로그)를 제공합니다. 그게 잘하고 일하는.이제 장치 로그에서 응용 프로그램 로그을 필터링하려고합니다. 그래서 나는 어떻게 그것을 progaramatically 할 수 있습니까?
내 응용 프로그램에서 장치 로그를 읽는 기능을 구현 중입니다. 프로그래밍 방식으로 장치 로그 필터링
는이 목적을 위해 나는 Reading logs programatically 도움을 촬영했다. 이 코드 스 니펫은 장치 로그 (실행중인 모든 프로세스의 로그)를 제공합니다. 그게 잘하고 일하는.이제 장치 로그에서 응용 프로그램 로그을 필터링하려고합니다. 그래서 나는 어떻게 그것을 progaramatically 할 수 있습니까?
logcat 참조를 확인 했습니까? http://developer.android.com/tools/debugging/debugging-log.html#alternativeBuffers 및 http://developer.android.com/tools/help/logcat.html
당신은
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 -b main -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) {
}
}
}
모두 당신이해야 할 당신의 명령을 지정하는 것입니다 시도 할 수 있습니다. adb에서 실행하여 명령을 테스트 할 수 있습니다. 그것을 더 자세히 보시려면 http://developer.android.com/tools/debugging/debugging-log.html#filteringOutput
1) 로그를 프로그래밍 방식으로 읽는 것은 아이스크림 샌드위치에서 작동하지 않습니다.
2) PackageManager
을 사용하면 패키지 관리자가 설치된 응용 프로그램의 패키지 이름을 가져올 수 있습니다.
3) 실행중인 프로세스 목록을 얻으려면 ActivityManager
을 사용하십시오.
실행중인 프로세스와 응용 프로그램의 패키지 이름을 일치시키고 프로세스 ID를 찾습니다. 패키지 이름 또는 프로세스 ID별로 대상 앱에 속한 로그를 필터링하십시오.
이것은 단지 큰 그림입니다.
ICS에서 로그의 사용을 중단하는 데 필요한 설명서가 있습니까? 공유하십시오 –
죄송합니다. 보안 제한으로 인해 수행 할 수 없습니다. –
'logcat -b main -d' 설명해 주시겠습니까? -b와 main은 무엇입니까? –
메인은 일반적인 응용 프로그램 로그입니다. 응용 프로그램 수준에서. 시스템 로그 및 커널 로그가 여기에 포함되어 있지 않습니다. –