안드로이드 개발 질문/답변
(글 수 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
}



