- String str = "\"main\" prio=5 tid=1 Runnable\n" +
- " | group=\"main\" sCount=0 ucsCount=0 flags=0 obj=0x7093ce68 self=0xb400007cc5e91380\n" +
- " | sysTid=12559 nice=-10 cgrp=top-app sched=0/0 handle=0x7e0b0704f8\n" +
- " | state=R schedstat=( 1334329099 1244244853 1694 ) utm=36 stm=96 core=1 HZ=100\n" +
- " | stack=0x7fd3546000-0x7fd3548000 stackSize=8188KB\n" +
- " | held mutexes= \"mutator lock\"(shared held)\n" +
- " at android.view.View.getForeground(View.java:24303)\n" +
- " at com.android.internal.policy.DecorView.onApplyWindowInsets(DecorView.java:1063)\n" +
- " at android.view.View.dispatchApplyWindowInsets(View.java:11509)\n" +
- " at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:7343)\n" +
- " at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:2522)\n" +
- " at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2677)";
提取方法:
- String result = anrMain;
- String word = "| held mutexes=";
- String lineFeed = "\n";
- int index = anrMain.indexOf(word);
- int indexStart = anrMain.indexOf(lineFeed,index);
- int indexEnd = anrMain.indexOf(lineFeed,indexStart+1);
- if(indexEnd > indexStart){
- result = anrMain.substring(indexStart+1,indexEnd);
- }
- return result;
- String str = "*** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n" +
- "Build fingerprint: 'aptiv/kr_dhu/kr_dhu:12/SQ3A.220705.003.A1/73:userdebug/test-keys'\n" +
- "Revision: '0'\n" +
- "ABI: 'arm64'\n" +
- "Timestamp: 2023-09-14 23:41:24.502545308+0800\n" +
- "Process uptime: 0s\n" +
- "Cmdline: com.android.bluetooth.ext\n" +
- "pid: 1447, tid: 1765, name: alarm_default_c >>> com.android.bluetooth.ext <<<\n" +
- "uid: 1002\n" +
- "signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------\n" +
- "x0 0000000000000000 x1 00000000000006e5 x2 0000000000000006 x3 0000007bd2deefc0\n" +
- "x4 b400007d2de05010 x5 b400007d2de05010 x6 b400007d2de05010 x7 0000007bd2deed49\n" +
- "x8 00000000000000f0 x9 880901341a724563 x10 0000000000000000 x11 ffffff80fffffbdf\n" +
- "x12 0000000000000001 x13 b400007cfde15db0 x14 0000007bd2def074 x15 0000000034155555\n" +
- "x16 0000007f02f7d050 x17 0000007f02f59db0 x18 0000007bc068a000 x19 00000000000005a7\n" +
- "x20 00000000000006e5 x21 00000000ffffffff x22 0000000000000000 x23 b400007c7de43dd0\n" +
- "x24 0000007bd2df0000 x25 0000007bca55805c x26 0000000000005066 x27 0000000000002019\n" +
- "x28 0000000000000000 x29 0000007bd2def040\n" +
- "lr 0000007f02f0caa0 sp 0000007bd2deefa0 pc 0000007f02f0cacc pst 0000000000001000\n" +
- "backtrace:\n" +
- "#00 pc 000000000004facc /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 6bfaf10f10e5ff343703efae2f1bdbdb)\n" +
- "#01 pc 000000000030d134 /system/lib64/libbluetooth_zeekr.so (startup_timer_expired(void*)+216) (BuildId: f11a18baa81b946f0894e55b5d8a4eb9)\n" +
- "#02 pc 00000000004126f8 /system/lib64/libbluetooth_zeekr.so (alarm_ready_generic(alarm_t*, std::_1::unique_lock
&)+396) (BuildId: f11a18baa81b946f0894e55b5d8a4eb9)\n" + - "#03 pc 0000000000412530 /system/lib64/libbluetooth_zeekr.so (alarm_queue_ready(fixed_queue_t*, void*)+112) (BuildId: f11a18baa81b946f0894e55b5d8a4eb9)\n" +
- "#04 pc 0000000000416374 /system/lib64/libbluetooth_zeekr.so (internal_dequeue_ready(void*)+84) (BuildId: f11a18baa81b946f0894e55b5d8a4eb9)";
提取:
- if(content.contains("Build fingerprint: ")){
- String strIndex = "backtrace:";
- String lineFeed = "\n";
- int index = content.indexOf(strIndex);
- int indexStart = content.indexOf(lineFeed,index);
- int indexEnd = content.indexOf(lineFeed,indexStart+1);
- if(indexEnd > indexStart){
- return content.substring(indexStart+1,indexEnd);
- }
- }
- String str = "Process: com.github.uiautomator\n" +
- "PID: 31209\n" +
- "UID: 10084\n" +
- "Flags: 0x38a8be46\n" +
- "Package: com.github.uiautomator v2003003 (2.3.3)\n" +
- "Foreground: Yes\n" +
- "Process-Runtime: 6449\n" +
- "Build: aptiv/kr_dhu/kr_dhu:12/SQ3A.220705.003.A1/24:userdebug/test-keys\n" +
- "Loading-Progress: 1.0\n" +
- "\n" +
- "java.lang.RuntimeException: Unable to start activity ComponentInfo{com.github.uiautomator/com.github.uiautomator.ToastActivity}: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@a810881 -- permission denied for window type 2038\n" +
- "\tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3707)\n" +
- "\tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)\n" +
- "\tat android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)\n" +
- "\tat android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)\n" +
- "\tat android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)\n" +
- "\tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)\n" +
- "\tat android.os.Handler.dispatchMessage(Handler.java:106)\n" +
- "\tat android.os.Looper.loopOnce(Looper.java:201)\n" +
- "\tat android.os.Looper.loop(Looper.java:288)\n" +
- "\tat android.app.ActivityThread.main(ActivityThread.java:7870)\n" +
- "\tat java.lang.reflect.Method.invoke(Native Method)\n" +
- "\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)\n" +
- "\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)\n" +
- "Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@a810881 -- permission denied for window type 2038\n" +
- "\tat android.view.ViewRootImpl.setView(ViewRootImpl.java:1213)\n" +
- "\tat android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:400)\n" +
- "\tat android.view.WindowManagerImpl.addView(WindowManagerImpl.java:138)\n" +
- "\tat com.github.uiautomator.FloatView.show(FloatView.java:109)\n" +
- "\tat com.github.uiautomator.ToastActivity.onCreate(ToastActivity.java:30)\n" +
- "\tat android.app.Activity.performCreate(Activity.java:8057)\n" +
- "\tat android.app.Activity.performCreate(Activity.java:8037)\n" +
- "\tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)\n" +
- "\tat androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:711)\n" +
- "\tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)\n" +
- "\t... 12 more";
提取:
- String mark1 = "java.lang.RuntimeException:";
- String mark2 = "Caused by:";
- if(content.contains(mark1) && content.contains(mark2)){
- StringBuilder result = new StringBuilder("");
- String lineFeed = "\n";
-
- int index = content.indexOf(mark1);
- if(index >= 0){
- int indexStart = content.indexOf(lineFeed,index);
- int indexEnd = content.indexOf(mark2,indexStart+1);
- if(indexEnd > indexStart){
- result.append(content.substring(indexStart+1,indexEnd));
- }
- }
-
- index = content.indexOf(mark2);
- if(index >= 0){
- int indexStart = content.indexOf(lineFeed,index);
- result.append(content.substring(indexStart+1));
- }
-
- return result.toString();
- }
在此做个笔记