2012-09-04 3 views
0

adb의 logcat 파일이 있습니다. 파일은 다음과 같습니다.특정 텍스트 파일 구문 분석 java

09-03 17:12:04.562 479 957 I ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 1230 
09-03 17:12:04.687 479 1030 I ActivityManager: Start proc com.amazon.mShop.android for activity com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity: pid=19164 uid=10158 gids={1006, 3003} 
09-03 17:12:05.593 479 912 I ActivityManager: Starting: Intent { dat=?paramSuggestionText=cell%20phone flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 17:12:05.796 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity: +186ms (total +1s119ms) 
09-03 17:12:08.601 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity: +3s925ms 
09-03 17:12:08.601 479 620 I ActivityManager: Resumed Activity: com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity totalTime: 4037 ms 
09-03 17:13:35.742 479 957 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.categoryBrowse.CategoryBrowseActivity } from pid 19164 
09-03 17:13:36.007 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.categoryBrowse.CategoryBrowseActivity: +222ms 
09-03 17:13:53.328 479 957 I ActivityManager: Starting: Intent { dat=?&paramSuggestionFilters=s%3An%3A%2C%3A4991425011%0As%3An%3A%2C%3A4991426011%0As%3An%3A%2C%3A5088769011%0As%3An%3A%2C%3A5263615011&paramDepartmentName=Programs flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 17:13:53.484 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity: +145ms 
09-03 17:14:54.585 479 484 I ActivityManager: Starting: Intent { cmp=com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity } from pid 19164 
09-03 17:14:54.718 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity: +102ms 
09-03 17:15:30.210 479 957 I ActivityManager: Starting: Intent { flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:03:02.140 479 967 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x4000000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 19164 
09-03 18:03:08.054 479 1005 I ActivityManager: Starting: Intent { dat= flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:03:08.171 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity: +105ms 
09-03 18:04:24.937 479 967 I ActivityManager: Starting: Intent { cmp=com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity } from pid 19164 
09-03 18:04:25.046 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity: +92ms 
09-03 18:05:00.554 479 5949 I ActivityManager: Starting: Intent { flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:06:43.781 479 1019 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x4000000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 19164 
09-03 18:07:12.984 479 1001 I ActivityManager: Starting: Intent { dat= flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:07:13.140 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity: +135ms 
09-03 18:08:29.890 479 5949 I ActivityManager: Starting: Intent { cmp=com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity } from pid 19164 
09-03 18:08:29.976 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity: +81ms 
09-03 18:09:05.515 479 961 I ActivityManager: Starting: Intent { flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:18:42.132 479 1039 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.categoryBrowse.CategoryBrowseActivity } from pid 19164 
09-03 18:18:42.359 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.categoryBrowse.CategoryBrowseActivity: +144ms 
09-03 18:19:09.890 479 1030 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x4000000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 19164 
09-03 18:19:17.406 479 485 I ActivityManager: Starting: Intent { dat= flg=0x20000 cmp=com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity (has extras) } from pid 19164 
09-03 18:19:17.515 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity: +97ms 
09-03 18:20:58.500 479 5949 I ActivityManager: Starting: Intent { flg=0x20000 cmp=com.amazon.mShop.android/.search.image.SnapItActivity } from pid 19164 
09-03 18:20:58.546 479 967 I ActivityManager: Starting: Intent { cmp=com.amazon.mShop.android/.search.image.SnapItPhotoCaptureActivity } from pid 19164 
09-03 18:20:58.898 479 620 I ActivityManager: Displayed com.amazon.mShop.android/.search.image.SnapItPhotoCaptureActivity: +340ms (total +387ms) 
09-03 18:21:26.156 479 1039 I ActivityManager: Starting: Intent { cmp=com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity } from pid 19164 
09-03 18:21:26.359 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity: +185ms 
09-03 18:21:42.750 479 957 W ActivityManager: Duplicate finish request for HistoryRecord{408f9da0 com.amazon.mShop.android/com.amazon.mShop.barcodeSearch.BarcodeFirstTryTipActivity} 
09-03 18:26:05.968 479 963 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x4000000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 19164 
09-03 18:27:53.515 479 957 I ActivityManager: Starting: Intent { flg=0x10000000 cmp=com.amazon.mShop.android/com.amazon.mobileads.mraid.MraidBrowser (has extras) } from pid 19164 
09-03 18:27:54.750 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mobileads.mraid.MraidBrowser: +1s218ms 
09-03 18:29:12.726 479 484 I ActivityManager: Starting: Intent { act=intentActionStartActivity flg=0x4000000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity (has extras) } from pid 19164 
09-03 18:29:15.609 479 1039 I ActivityManager: Starting: Intent { flg=0x10000000 cmp=com.amazon.mShop.android/com.amazon.mobileads.mraid.MraidBrowser (has extras) } from pid 19164 
09-03 18:29:16.882 479 620 I ActivityManager: Displayed com.amazon.mShop.android/com.amazon.mobileads.mraid.MraidBrowser: +1s261ms 
09-03 18:32:41.750 479 967 I ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.amazon.mShop.android/com.amazon.mShop.home.HomeActivity } from pid 1230 

이제 파일에서 활동 이름을 추출하고 싶습니다. 그것은 다음과 유사한 각 라인에서 추출 할 난 단지 문자열 com.amazon.mobileads.mraid.MraidBrowser 다른 부분의에게 필요한이 줄에서

09-03 18:29:15.609 479 1039 I ActivityManager: Starting: Intent { flg=0x10000000 cmp=com.amazon.mShop.android/com.amazon.mobileads.mraid.MraidBrowser (has extras) } from pid 19164 

또는

09-03 17:12:08.601 479 620 I ActivityManager: Resumed Activity: com.amazon.mShop.android/com.amazon.mShop.search.SearchActivity totalTime: 4037 ms 

입니다 라인을 제거해야합니다. 시작 : 의도 또는 ActivityManager : 재개 된 작업 :을 제거해야합니다. 내가 좋아하는 캐릭터 라인의 순서를해야합니다 결국

,

com.amazon.mobileads.mraid.MraidBrowser 

com.amazon.mShop.search.SearchActivity 

그래서 자신의 라인 수에 따라합니다.

어떻게하면됩니까? 내가 tokenizer 문자열을 사용할 수 있지만 지루하고 비효율적 인 프로세스, 정규식 또는 뭔가 비슷한 것이 더 좋을 것이라고 생각합니다.

답변

1

당신은 이 1 군에 저장됩니다 정규식

ActivityManager: (?:Starting: Intent.*?cmp=|Resumed Activity:\s*)(\S+) 

당신의 원하는 문자열을 시도 할 수 있습니다.

here on Regexr

모든 백 슬래시를 이스케이프 자바에서이 정규식을, 당신이 사용을 참조하십시오, 그래서 첫 번째 부분은 부분까지 "ActivityManager"에서 문자열과 일치

ActivityManager: (?:Starting: Intent.*?cmp=|Resumed Activity:\\s*)(\\S+) 

처럼 보일한다 당신은 추출물을 원하고 마지막 부분 인 (\\S+)은 공백이 아닌 일련의 문자와 일치하고 그것을 그룹 1에 저장합니다.

+0

감사합니다. –

0

내 접근법이 전혀 귀엽지 않을 수도 있지만 작동합니다. 업데이트]

String filePath = "res/textfile.txt"; 
String line; 
List<String> myL = new ArrayList<String>(); 

try { 
    BufferedReader read = new BufferedReader(new FileReader(filePath)); 
    while((line = read.readLine()) != null) { 
     if(line.contains("Resumed Activity") || line.contains("Starting: Intent")) { 
      String str[] = line.split(" "); 
      for(String s : str) { 
       if(s.contains("com.amazon")) 
        myL.add(s); 
      } 
     } 
    } 

    for(String s : myL) { 
     System.out.println(s); 
    } 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

: 난 그냥 내 솔루션을 다시 귀하의 게시물을 읽고 업데이트 하나의 해결책이 될 것입니다. 나는 "Resumed Activity"또는 "Starting : Intent"등의 줄이 제거되어야한다고 생각합니다.

+0

비슷한 접근법을 사용하여 이미 이것을했지만, 패턴 매칭으로 더 나은 솔루션을 찾으려고했습니다. 이 코드는 효과적이지는 않지만 효과적입니다. 그건 내가 com.amazon인지 여부를 알 수없는 방식으로는 가변적입니다. –

+0

어떤 활동이 어디서 시작되고 다시 시작 되든 상관 없어도 모든 행을 검색한다는 의미입니까? – nyyrikki

+0

예, 활동 이름 만 원하면 아마존에서 파일을 보냈습니다. 활동이 될 수 있습니다. –