안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 폰에서 로그정보를 핸도폰 내에서 가지고오는 소스입니다 ㅠ
그런데 .. 자꾸 제가 의도한데로 안되네요.
1. 평상시에 이클립스에서 표시되던 정보들외에 달빅이라는 버추얼머신 테그를 가진 제가 원하지 않는 로그정보까지 표시가되네요.
---> 정상적인 로그정보
--> 비정상적인 로그가 뜰경우
2. 로그정보에서 필터링을해서 특정 테그를 가진 로그를 찾는걸 하는데. 이게 정상적으로 찾아지지 않습니다.
---> 웹브라우저를 실행했을때 현재 해당페이지 url주소가 표시됨니다.
--> 동영상을 실행시켰을때 해당 동영상에 path주소가 표시됨니다.
그래서 이런 내용들을 제가 안드로이드 내부에서 로그정보를 받아오기위해서
소스를 작성했는제. 1번에서처럼 정상적으로 로그정보를 받아오지를 못하게됨니다.
왜그런걸까요??
그리고 2번째는 저기 테그에 나와있는 mediaPlayer-JNI나 webkit으로 로그정보를 필터링하는데
이것또한 그렇게 원하는대로 나오지를 않네요.
startThread()쓰레드 시작
public synchronized void startThread() { Toast.makeText(getApplicationContext(), "스타트스레드", Toast.LENGTH_SHORT) .show(); if (runner == null) { runner = new Thread(null, backgrounSendData, "send_data"); runner.start(); Toast.makeText(getApplicationContext(), "스타트 밑", Toast.LENGTH_SHORT) .show();
startThread()쓰레드 시작
} }
Thread runner
private Runnable backgrounSendData = new Runnable() { @Override public void run() {
Thread runner
try {
Thread runner
// Thread.sleep(5000); mainThread();
Thread runner
} catch (Exception e) {
Thread runner
// TODO: handle exception }
Thread runner
} };
mainThread(), getAdbLogCat();
public void mainThread() { getAdbLogCat(); }
mainThread(), getAdbLogCat();
public static void getAdbLogCat() { StringBuilder log = new StringBuilder(); String logView = ""; String line = ""; int counterForDebug = 0; int idx = 0; Process proc = null; try { proc = Runtime.getRuntime().exec("logcat"); BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
mainThread(), getAdbLogCat();
while ((line = reader.readLine()) != null) { counterForDebug++; log.append(line); log.append(System.getProperty("line.separator")); //Log.d("log",""+log); if((log.toString().indexOf("MediaPlayer-JNI")) != -1){ /*idx = log.toString().indexOf("webkit"); logView = log.substring(idx); */ Log.d("toy", "MediaPlayer-JNI찾았다."/*logView*/); Log.d("toy",log.toString()); break; } } // while /* log.insert(0,"총 " + counterForDebug + "회 수행했습니다." + System.getProperty("line.separator"));*/ } catch (IOException e) { e.printStackTrace(); } // try-catch }