ブログトップ 記事一覧 ログイン 無料ブログ開設

のねの日記 - human brain programing Twitter

2015-02-27

FontCollection

| 12:03 | FontCollectionを含むブックマーク FontCollectionのブックマークコメント

(gdb) bt
#0  android::FontCollection::itemize
    (this=0xaffb9158, string=string@entry=0x9f3e1c80, 
    string_size=string_size@entry=8, style=..., result=result@entry=0xbeeacddc)
    at frameworks/minikin/libs/minikin/FontCollection.cpp:183

#1  0xb5771de4 in 
    android::Layout::doLayoutRun
    (this=this@entry=0x9f3cb500, buf=0x9f3e1c80, 
    start=0, count=8, bufSize=8, isRtl=false, ctx=ctx@entry=0xbeeacfd0)
    at frameworks/minikin/libs/minikin/Layout.cpp:656

#2  0xb5772ca8 in 
    android::LayoutCacheKey::doLayout
    (this=this@entry=0xbeeacec4, 
    layout=layout@entry=0x9f3cb500, ctx=ctx@entry=0xbeeacfd0, 
    collection=collection@entry=0xaffb9158) at frameworks/minikin/libs/minikin/Layout.cpp:101

#3  0xb5772dd6 in 
    get (collection=0xaffb9158, ctx=0xbeeacfd0, key=..., this=0xaff71144)
    at frameworks/minikin/libs/minikin/Layout.cpp:136

#4  android::Layout::doLayoutWord
    (this=this@entry=0xbeead114, buf=buf@entry=0x9f3e1c00, 
    start=<optimized out>, count=<optimized out>, bufSize=bufSize@entry=8, 
    isRtl=isRtl@entry=false, ctx=ctx@entry=0xbeeacfd0, bufStart=0)
    at frameworks/minikin/libs/minikin/Layout.cpp:626

#5  0xb5772e5e in 
    android::Layout::doLayoutRunCached 
    (this=this@entry=0xbeead114, 
    buf=buf@entry=0x9f3e1c00, start=start@entry=0, count=count@entry=8, 
    bufSize=bufSize@entry=8, isRtl=isRtl@entry=false, ctx=ctx@entry=0xbeeacfd0, 
    dstStart=dstStart@entry=0) at frameworks/minikin/libs/minikin/Layout.cpp:598

#6  0xb5773058 in android::Layout::doLayout (this=this@entry=0xbeead114, 
    buf=buf@entry=0x9f3e1c00, start=start@entry=0, count=count@entry=8, 
    bufSize=bufSize@entry=8, bidiFlags=bidiFlags@entry=4, style=..., paint=...)
    at frameworks/minikin/libs/minikin/Layout.cpp:583

#7  0xb6e4427e in android::MinikinUtils::doLayout (layout=layout@entry=0xbeead114, 
    paint=paint@entry=0xa27237a0, bidiFlags=4, typeface=typeface@entry=0xafffe6b0, 
    buf=buf@entry=0x9f3e1c00, start=start@entry=0, count=count@entry=8, 
    bufSize=bufSize@entry=8) at frameworks/base/core/jni/android/graphics/MinikinUtils.cpp:63

#8  0xb6e45bd2 in android::PaintGlue::doTextRunAdvances (env=0xb5051240, paint=0xa27237a0, 
    typeface=0xafffe6b0, text=0x9f3e1c00, start=0, count=8, contextCount=8, isRtl=0 '\000', 
    advances=0x0, advancesIndex=0) at frameworks/base/core/jni/android/graphics/Paint.cpp:665
#9  0xb6e45c5c in android::PaintGlue::getTextRunAdvances__StringIIIIZ_FI (env=0xb5051240, 
    clazz=<optimized out>, paintHandle=<optimized out>, typefaceHandle=-1342183760, 
    text=0xbeead1f0, start=0, end=8, contextStart=0, contextEnd=8, isRtl=0 '\000', 
    advances=0x0, advancesIndex=0) at frameworks/base/core/jni/android/graphics/Paint.cpp:698
#10 0x72c12e6c in ?? ()
#11 0x72c12e6c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 

2015-02-26

Sambaとハードディスクの速度比較

| 01:58 | Sambaとハードディスクの速度比較を含むブックマーク Sambaとハードディスクの速度比較のブックマークコメント

UbuntuのSambaとハードディスクのベンチマークを測定してみました。

上がUbuntuのSamba

f:id:none53:20150227015808p:image

下がハードディスク(RAID1)

f:id:none53:20150227015807p:image

2015-02-24

"Hung broadcast"

| 22:32 | "Hung broadcast"を含むブックマーク "Hung broadcast"のブックマークコメント

   3473                 case LAUNCH_TIMEOUT_MSG: {
   3474                     if (mService.mDidDexOpt) {
   3475                         mService.mDidDexOpt = false;
   3476                         mHandler.sendEmptyMessageDelayed(LAUNCH_TIMEOUT_MSG, LAUNCH_TIMEOUT);
   3477                         return;
   3478                     }
   3479                     synchronized (mService) {

   3480                         if (mLaunchingActivity.isHeld()) {

   3481                             Slog.w(TAG, "Launch timeout has expired, giving up wake lock!");

   3482                             if (VALIDATE_WAKE_LOCK_CALLER
   3483                                     && Binder.getCallingUid() != Process.myUid()) {
   3484                                 throw new IllegalStateException("Calling must be system uid");

   3485                             }
   3486                             mLaunchingActivity.release();
   3487                         }
   3488                     }
Cross Reference: /frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java

"Launch timeout has expired, giving up wake lock!"

| 22:28 | "Launch timeout has expired, giving up wake lock!"を含むブックマーク "Launch timeout has expired, giving up wake lock!"のブックマークコメント

 3473                 case LAUNCH_TIMEOUT_MSG: {
   3474                     if (mService.mDidDexOpt) {
   3475                         mService.mDidDexOpt = false;
   3476                         mHandler.sendEmptyMessageDelayed(LAUNCH_TIMEOUT_MSG, LAUNCH_TIMEOUT);
   3477                         return;
   3478                     }
   3479                     synchronized (mService) {
   3480                         if (mLaunchingActivity.isHeld()) {
   3481                             Slog.w(TAG, "Launch timeout has expired, giving up wake lock!");
   3482                             if (VALIDATE_WAKE_LOCK_CALLER
   3483                                     && Binder.getCallingUid() != Process.myUid()) {
   3484                                 throw new IllegalStateException("Calling must be system uid");
   3485                             }
   3486                             mLaunchingActivity.release();
   3487                         }
   3488                     }
Cross Reference: /frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java

"reacting to signal"

| 21:59 | "reacting to signal"を含むブックマーク "reacting to signal"のブックマークコメント

04-02 14:25:27.316      673-680/system_process I/art&#65109;
 Thread[5,tid=680,WaitingInMainSignalCatcherLoop,Thread*=0xaf60e400,peer=0x12c02080,"Signal Catcher"]:
 reacting to signal 3
    168 int SignalCatcher::WaitForSignal(Thread* self, SignalSet& signals) {
    169   ScopedThreadStateChange tsc(self, kWaitingInMainSignalCatcherLoop);
    170 
    171   // Signals for sigwait() must be blocked but not ignored.  We
    172   // block signals like SIGQUIT for all threads, so the condition
    173   // is met.  When the signal hits, we wake up, without any signal
    174   // handlers being invoked.
    175   int signal_number = signals.Wait();
    176   if (!ShouldHalt()) {
    177     // Let the user know we got the signal, just in case the system's too screwed for us to
    178     // actually do what they want us to do...
    179     LOG(INFO) << *self << ": reacting to signal " << signal_number;
    180 
    181     // If anyone's holding locks (which might prevent us from getting back into state Runnable), say so...
    182     Runtime::Current()->DumpLockHolders(LOG(INFO));
    183   }
    184 
    185   return signal_number;
    186 }
     94 bool SignalCatcher::ShouldHalt() {
     95   MutexLock mu(Thread::Current(), lock_);
     96   return halt_;
     97 }
Cross Reference: /art/runtime/signal_catcher.cc

"Sending signal. PID: "

| 21:50 | "Sending signal. PID: "を含むブックマーク "Sending signal. PID: "のブックマークコメント

04-02 14:25:28.656      673-781/system_process I/Process&#65109; Sending signal. PID: 1075 SIG: 3
    863 void android_os_Process_sendSignal(JNIEnv* env, jobject clazz, jint pid, jint sig)
    864 {
    865     if (pid > 0) {
    866         ALOGI("Sending signal. PID: %" PRId32 " SIG: %" PRId32, pid, sig);
    867         kill(pid, sig);
    868     }
    869 }
   1031     {"sendSignal", "(II)V", (void*)android_os_Process_sendSignal},
Cross Reference: /frameworks/base/core/jni/android_util_Process.cpp

"Launch timeout has expired, giving up wake lock!"

| 21:45 | "Launch timeout has expired, giving up wake lock!"を含むブックマーク "Launch timeout has expired, giving up wake lock!"のブックマークコメント

 3427     private final class ActivityStackSupervisorHandler extends Handler {
   3428 
   3429         public ActivityStackSupervisorHandler(Looper looper) {
   3430             super(looper);
   3431         }
   3432 
   3433         void activityIdleInternal(ActivityRecord r) {
   3434             synchronized (mService) {
   3435                 activityIdleInternalLocked(r != null ? r.appToken : null, true, null);
   3436             }
   3437         }
   3438 
   3439         @Override
   3440         public void handleMessage(Message msg) {
   3441             switch (msg.what) {
   3442                 case IDLE_TIMEOUT_MSG: {
   3443                     if (DEBUG_IDLE) Slog.d(TAG, "handleMessage: IDLE_TIMEOUT_MSG: r=" + msg.obj);
   3444                     if (mService.mDidDexOpt) {
   3445                         mService.mDidDexOpt = false;
   3446                         Message nmsg = mHandler.obtainMessage(IDLE_TIMEOUT_MSG);
   3447                         nmsg.obj = msg.obj;
   3448                         mHandler.sendMessageDelayed(nmsg, IDLE_TIMEOUT);
   3449                         return;
   3450                     }
   3451                     // We don't at this point know if the activity is fullscreen,
   3452                     // so we need to be conservative and assume it isn't.
   3453                     activityIdleInternal((ActivityRecord)msg.obj);
   3454                 } break;
   3455                 case IDLE_NOW_MSG: {
   3456                     if (DEBUG_IDLE) Slog.d(TAG, "handleMessage: IDLE_NOW_MSG: r=" + msg.obj);
   3457                     activityIdleInternal((ActivityRecord)msg.obj);
   3458                 } break;
   3459                 case RESUME_TOP_ACTIVITY_MSG: {
   3460                     synchronized (mService) {
   3461                         resumeTopActivitiesLocked();
   3462                     }
   3463                 } break;
   3464                 case SLEEP_TIMEOUT_MSG: {
   3465                     synchronized (mService) {
   3466                         if (mService.isSleepingOrShuttingDown()) {
   3467                             Slog.w(TAG, "Sleep timeout!  Sleeping now.");
   3468                             mSleepTimeout = true;
   3469                             checkReadyForSleepLocked();
   3470                         }
   3471                     }
   3472                 } break;
   3473                 case LAUNCH_TIMEOUT_MSG: {
   3474                     if (mService.mDidDexOpt) {
   3475                         mService.mDidDexOpt = false;
   3476                         mHandler.sendEmptyMessageDelayed(LAUNCH_TIMEOUT_MSG, LAUNCH_TIMEOUT);
   3477                         return;
   3478                     }
   3479                     synchronized (mService) {
   3480                         if (mLaunchingActivity.isHeld()) {
   3481                             Slog.w(TAG, "Launch timeout has expired, giving up wake lock!");

   3482                             if (VALIDATE_WAKE_LOCK_CALLER
   3483                                     && Binder.getCallingUid() != Process.myUid()) {
   3484                                 throw new IllegalStateException("Calling must be system uid");
   3485                             }
   3486                             mLaunchingActivity.release();
   3487                         }
   3488                     }
   3489                 } break;
Cross Reference: /frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java

art "Long monitor contention event with owner method="

| 21:26 | art "Long monitor contention event with owner method="を含むブックマーク art "Long monitor contention event with owner method="のブックマークコメント

    --------- beginning of main
04-02 14:25:17.040      673-781/system_process W/art&#65109; 
Long monitor contention event with owner method=
   void com.android.server.wm.WindowManagerService.removeWindow
   (com.android.server.wm.Session, android.view.IWindow) 
   from WindowManagerService.java:2557 
   waiters=1 
   for 168.591s
    233 void Monitor::Lock(Thread* self) {
    234   MutexLock mu(self, monitor_lock_);
    235   while (true) {
    236     if (owner_ == nullptr) {  // Unowned.
    237       owner_ = self;
    238       CHECK_EQ(lock_count_, 0);
    239       // When debugging, save the current monitor holder for future
    240       // acquisition failures to use in sampled logging.
    241       if (lock_profiling_threshold_ != 0) {
    242         locking_method_ = self->GetCurrentMethod(&locking_dex_pc_);
    243       }
    244       return;
    245     } else if (owner_ == self) {  // Recursive.
    246       lock_count_++;
    247       return;
    248     }
    249     // Contended.
    250     const bool log_contention = (lock_profiling_threshold_ != 0);
    251     uint64_t wait_start_ms = log_contention ? MilliTime() : 0;
    252     mirror::ArtMethod* owners_method = locking_method_;
    253     uint32_t owners_dex_pc = locking_dex_pc_;
    254     // Do this before releasing the lock so that we don't get deflated.
    255     size_t num_waiters = num_waiters_;
    256     ++num_waiters_;
    257     monitor_lock_.Unlock(self);  // Let go of locks in order.
    258     self->SetMonitorEnterObject(GetObject());
    259     {
    260       ScopedThreadStateChange tsc(self, kBlocked);  // Change to blocked and give up mutator_lock_.
    261       MutexLock mu2(self, monitor_lock_);  // Reacquire monitor_lock_ without mutator_lock_ for Wait.
    262       if (owner_ != NULL) {  // Did the owner_ give the lock up?
    263         monitor_contenders_.Wait(self);  // Still contended so wait.
    264         // Woken from contention.
    265         if (log_contention) {
    266           uint64_t wait_ms = MilliTime() - wait_start_ms;
    267           uint32_t sample_percent;
    268           if (wait_ms >= lock_profiling_threshold_) {
    269             sample_percent = 100;
    270           } else {
    271             sample_percent = 100 * wait_ms / lock_profiling_threshold_;
    272           }
    273           if (sample_percent != 0 && (static_cast<uint32_t>(rand() % 100) < sample_percent)) {
    274             const char* owners_filename;
    275             uint32_t owners_line_number;
    276             TranslateLocation(owners_method, owners_dex_pc, &owners_filename, &owners_line_number);
    277             if (wait_ms > kLongWaitMs && owners_method != nullptr) {

    278               LOG(WARNING) << "Long monitor contention event with owner method="

    279                   << PrettyMethod(owners_method) << " from " << owners_filename << ":"
    280                   << owners_line_number 
                          << " waiters=" << num_waiters 
                          << " for "
    281                   << PrettyDuration(MsToNs(wait_ms));
    282             }
    283             LogContentionEvent(self, wait_ms, sample_percent, owners_filename, owners_line_number);
    284           }
    285         }
    286       }
    287     }
    288     self->SetMonitorEnterObject(nullptr);
    289     monitor_lock_.Lock(self);  // Reacquire locks in order.
    290     --num_waiters_;
    291   }
    292 }
Cross Reference: /art/runtime/monitor.cc

SystemUIでBreakをかけると、1分ぐらいで、WatchDog Timeoutする

| 18:21 | SystemUIでBreakをかけると、1分ぐらいで、WatchDog Timeoutするを含むブックマーク SystemUIでBreakをかけると、1分ぐらいで、WatchDog Timeoutするのブックマークコメント

02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.am.ActivityManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on display thread (android.display), Blocked in handler on ActivityManager (ActivityManager)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; foreground thread stack trace:
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:18270)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.Watchdog$HandlerChecker.run(Watchdog.java:173)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.Handler.handleCallback(Handler.java:739)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.Handler.dispatchMessage(Handler.java:95)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.Looper.loop(Looper.java:135)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.HandlerThread.run(HandlerThread.java:61)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.ServiceThread.run(ServiceThread.java:46)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; main thread stack trace:
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:15894)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.app.ContextImpl.sendBroadcastAsUser(ContextImpl.java:1437)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.DropBoxManagerService$3.handleMessage(DropBoxManagerService.java:162)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.Handler.dispatchMessage(Handler.java:102)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at android.os.Looper.loop(Looper.java:135)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.SystemServer.run(SystemServer.java:269)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.server.SystemServer.main(SystemServer.java:170)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at java.lang.reflect.Method.invoke(Native Method)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at java.lang.reflect.Method.invoke(Method.java:372)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-24 18:18:25.250  23489-23792/system_process W/Watchdog&#65109; display thread stack trace:
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7753)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.Handler.dispatchMessage(Handler.java:102)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.Looper.loop(Looper.java:135)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.HandlerThread.run(HandlerThread.java:61)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.ServiceThread.run(ServiceThread.java:46)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; ActivityManager stack trace:
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.wm.WindowManagerService.prepareAppTransition(WindowManagerService.java:4020)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:1726)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1480)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStackSupervisor.resumeTopActivitiesLocked(ActivityStackSupervisor.java:2429)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1025)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:923)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(ActivityStack.java:287)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.Handler.dispatchMessage(Handler.java:102)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.Looper.loop(Looper.java:135)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at android.os.HandlerThread.run(HandlerThread.java:61)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; at com.android.server.ServiceThread.run(ServiceThread.java:46)
02-24 18:18:25.251  23489-23792/system_process W/Watchdog&#65109; *** GOODBYE!
02-24 18:18:25.251  23489-23792/system_process I/Process&#65109; Sending signal. PID: 23489 SIG: 9
    462             // Only kill the process if the debugger is not attached.
    463             if (Debug.isDebuggerConnected()) {
    464                 debuggerWasConnected = 2;
    465             }
    466             if (debuggerWasConnected >= 2) {
    467                 Slog.w(TAG, "Debugger connected: Watchdog is *not* killing the system process");
    468             } else if (debuggerWasConnected > 0) {
    469                 Slog.w(TAG, "Debugger was connected: Watchdog is *not* killing the system process");
    470             } else if (!allowRestart) {
    471                 Slog.w(TAG, "Restart not allowed: Watchdog is *not* killing the system process");
    472             } else {
    473                 Slog.w(TAG, "*** WATCHDOG KILLING SYSTEM PROCESS: " + subject);
    474                 for (int i=0; i<blockedCheckers.size(); i++) {
    475                     Slog.w(TAG, blockedCheckers.get(i).getName() + " stack trace:");
    476                     StackTraceElement[] stackTrace
    477                             = blockedCheckers.get(i).getThread().getStackTrace();
    478                     for (StackTraceElement element: stackTrace) {
    479                         Slog.w(TAG, "    at " + element);
    480                     }
    481                 }
    482                 Slog.w(TAG, "*** GOODBYE!");
    483                 Process.killProcess(Process.myPid());
    484                 System.exit(10);
    485             }

ここのDEFAULT_TIMEOUTが、60*1000(ms)=60(sec)=1(min)なので1分なのかな?

DEFAULT_TIMEOUTの値を、1時間(60*60*1000)に変えRebuildした。

ここの値をT変えればいいようだ、1分で切断されなくなった。

BreakPointで止めたまま、1分以上経過。

     57     static final long DEFAULT_TIMEOUT = DB ? 10*1000 : 60*1000;
     58     static final long CHECK_INTERVAL = DEFAULT_TIMEOUT / 2;
 
     57     static final long DEFAULT_TIMEOUT = 60*60*1000;
Cross Reference: /frameworks/base/services/core/java/com/android/server/Watchdog.java

2分ぐらい経ってから、メンバーの変数をクリックしたら、接続が切れた。

2分ぐらい経つと、操作しなくても、ANRが発生してしまうようだ。

    --------- beginning of main
04-02 14:25:17.040      673-781/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.wm.WindowManagerService.removeWindow(com.android.server.wm.Session, android.view.IWindow) from WindowManagerService.java:2557 waiters=1 for 168.591s
    --------- beginning of system
04-02 14:25:17.041      673-781/system_process V/ActivityManager&#65109; Launching: ActivityRecord{12055717 u0 com.android.settings/.SubSettings t101}
04-02 14:25:17.041    1114-1114/com.android.launcher3 I/Choreographer&#65109; Skipped 10115 frames!  The application may be doing too much work on its main thread.
04-02 14:25:17.042      673-787/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.wm.WindowManagerService.removeWindow(com.android.server.wm.Session, android.view.IWindow) from WindowManagerService.java:2557 waiters=2 for 168.295s
04-02 14:25:17.042      673-934/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.wm.WindowManagerService.removeWindow(com.android.server.wm.Session, android.view.IWindow) from WindowManagerService.java:2557 waiters=2 for 168.290s
04-02 14:25:17.065     673-2840/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(android.os.Message) from ActivityStack.java:283 waiters=0 for 168.570s
04-02 14:25:17.065     673-3282/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(android.os.Message) from ActivityStack.java:283 waiters=1 for 168.432s
04-02 14:25:17.066      673-796/system_process W/art&#65109; Long monitor contention event with owner method=void com.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(android.os.Message) from ActivityStack.java:283 waiters=2 for 137.066s
04-02 14:25:17.068     673-1032/system_process W/BroadcastQueue&#65109; Hung broadcast [foreground] discarded after timeout failure: now=2372373 dispatchTime=2203230 startTime=2203745 intent=Intent { act=android.intent.action.LOCALE_CHANGED flg=0x10000010 } numReceivers=7 nextReceiver=4 state=0
04-02 14:25:17.068     673-1032/system_process W/BroadcastQueue&#65109; Timeout of broadcast BroadcastRecord{2194b739 u-1 android.intent.action.LOCALE_CHANGED} - receiver=null, started 168628ms ago
04-02 14:25:17.068     673-1032/system_process W/BroadcastQueue&#65109; Receiver during timeout: ResolveInfo{b3b917e com.android.deskclock/.AlarmInitReceiver m=0x108000}
04-02 14:25:17.068     673-1032/system_process W/BroadcastQueue&#65109; finishReceiver [foreground] called but state is IDLE
04-02 14:25:17.080      673-787/system_process I/Choreographer&#65109; Skipped 10099 frames!  The application may be doing too much work on its main thread.
04-02 14:25:17.086      673-781/system_process W/ActivityManager&#65109; Launch timeout has expired, giving up wake lock!
04-02 14:25:17.293      673-996/system_process W/art&#65109; Long monitor contention event with owner method=int com.android.server.wm.WindowManagerService.relayoutWindow(com.android.server.wm.Session, android.view.IWindow, int, android.view.WindowManager$LayoutParams, int, int, int, int, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.content.res.Configuration, android.view.Surface) from WindowManagerService.java:2977 waiters=0 for 163ms
04-02 14:25:27.048      673-781/system_process V/ActivityManager&#65109; Activity idle: Token{3f994704 ActivityRecord{12055717 u0 com.android.settings/.SubSettings t101}}
04-02 14:25:27.048      673-781/system_process V/ActivityManager&#65109; Stopping ActivityRecord{ade7934 u0 com.android.settings/.SubSettings t101 f}: nowVisible=false waitingVisible=true finishing=true
04-02 14:25:27.071      673-781/system_process W/BroadcastQueue&#65109; Timeout of broadcast BroadcastRecord{21808df5 u-1 android.intent.action.TIME_TICK} - receiver=android.os.BinderProxy@210f7d78, started 10001ms ago
04-02 14:25:27.071      673-781/system_process W/BroadcastQueue&#65109; Receiver during timeout: BroadcastFilter{aa0bcb6 u0 ReceiverList{ea32c51 3300 com.android.systemui/10013/u0 remote:210f7d78}}
04-02 14:25:27.098      673-781/system_process I/Process&#65109; Sending signal. PID: 3300 SIG: 3
04-02 14:25:27.099    3300-3310/com.android.systemui I/art&#65109; Thread[5,tid=3310,WaitingInMainSignalCatcherLoop,Thread*=0xaf60e400,peer=0x12c00080,"Signal Catcher"]: reacting to signal 3
04-02 14:25:27.099    3300-3310/com.android.systemui I/art&#65109; [ 04-02 14:25:27.315   673:  781 I/Process  ]
    Sending signal. PID: 673 SIG: 3
04-02 14:25:27.316      673-680/system_process I/art&#65109; Thread[5,tid=680,WaitingInMainSignalCatcherLoop,Thread*=0xaf60e400,peer=0x12c02080,"Signal Catcher"]: reacting to signal 3
04-02 14:25:27.316      673-680/system_process I/art&#65109; [ 04-02 14:25:27.508  3300: 3310 I/art      ]
    Wrote stack traces to '/data/anr/traces.txt'
04-02 14:25:28.656      673-781/system_process I/Process&#65109; Sending signal. PID: 1075 SIG: 3
04-02 14:25:28.665      673-781/system_process I/Process&#65109; Sending signal. PID: 1037 SIG: 3
04-02 14:25:30.220      673-781/system_process E/ActivityManager&#65109; ANR in com.android.systemui

SystemBar StatusBar NavigationBar

| 16:31 | SystemBar StatusBar NavigationBarを含むブックマーク SystemBar StatusBar NavigationBarのブックマークコメント

SystemBar=StatusBar+NavigationBar

the system bars (that is, the status and the navigation bars)

Dimming the System Bars | Android Developers

adb shell をWindowsで使うと"\r\r\n"("LFLFCR")になる

| 08:44 | adb shell をWindowsで使うと"\r\r\n"("LFLFCR")になるを含むブックマーク adb shell をWindowsで使うと"\r\r\n"("LFLFCR")になるのブックマークコメント

Windowsで以下のようなadb shellの結果を保存すると

改行コードが"\r\r\n(0x0D,0x0D,0x0A[CRCRLF])になる。

adb shell dumpsys > aaa.txt
0x0D,0x0D,0x0A

[\r\n]の[\n]を[\r\n]に変えるので、[\r\r\n]になるようだ。

以下のように置換の処理を間に入れると、消える。

>adb shell dumpsys activity | sed -e 's/\r\r\n/\r\n/g' > aaa.txt

sedを使った文字列置換

消せる4色ボールペンを買った パイロット フリクションボール4

08:18 | 消せる4色ボールペンを買った パイロット フリクションボール4を含むブックマーク 消せる4色ボールペンを買った パイロット フリクションボール4のブックマークコメント

消せる4色ボールペンを買った。

ボールペンの後ろに付いている部分でこするだけで消える。

消しゴムでは消えにくかった。

書きあじが滑らかで、気に入っている。