亮灭屏和背光log分析关键字段:
DisplayPowerController: Animating brightness
|
DisplayPowerController: Brightness
|
PowerManagerService: Waking up
|
PowerManagerService: Going to
sleep
|
DisplayManagerService: setTemporaryBrightness
|
AutomaticBrightnessController
|
START u0
|
DisplayManagerService: Display device changed state:
|
DisplayPowerController: updatePowerState:
policy
=
|
DreamManagerService
|
SurfaceFlinger: Setting power mode
|
SurfaceFlinger: Finished setting power
|
WindowManager: Started waking up
|
DisplayPowerController: Unblocked
screen
|
WindowManager: Finished waking up
|
WindowManager: Finished going to
sleep
|
WindowManager: Finished
|
PowerManagerService: Screen
|
DisplayPowerController: Animating brightness
|
ActivityManager: Start proc
|
FingerprintManager: handleMessage
|
InputDispatcher:
kernel亮灭屏关键字段:
syna double tap wakeup
|
dsi_panel_enable
|
dsi_panel_disable
|
BLANK
|
pwrkey
|
dsi_display_set_backlight
|
dsi_
WindowManager: SURFACE SHOW
ActivityManager: ANR
mtk anr:
AnrManager: ANR
in
com.tencent.mm
(
com.tencent.mm/.ui.chatting.gallery.ImageGalleryUI
)
,
time
=
324293212
*** FATAL EXCEPTION IN SYSTEM PROCESS
Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS:
native crash log:
"DEBUG : pid"
05-17
12
:23:06.035
23193
23316
I ActivityManager: CPU usage from 118ms to 21ms ago
(
2022
-05-17
12
:23:05.917 to
2022
-05-17
12
:23:06.014
)
:
05-17
12
:23:06.035
23193
23316
I ActivityManager:
78
% TOTAL:
28
% user +
47
% kernel +
2.7
% irq
05-17
12
:23:06.035
23193
23316
I ActivityManager:
147
%
22957
/android.hardware.audio.service:
0
% user +
147
% kernel / faults:
6
minor
05-17
12
:23:06.035
23193
23316
I ActivityManager:
200
%
23193
/system_server:
100
% user +
100
% kernel / faults:
474
minor
bugreport log:
DUMP OF SERVICE
native crash log:
"DEBUG : pid"
11
-16
21
:02:08.721
15023
15023
F DEBUG
:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11
-16
21
:02:08.721
15023
15023
F DEBUG
:
Build fingerprint:
'Lenovo/m11_prc_wifi/J606F:11/RKQ1.210303.002/13.0.311_211112:user/release-keys'
11
-16
21
:02:08.721
15023
15023
F DEBUG
:
Revision:
'0'
11
-16
21
:02:08.721
15023
15023
F DEBUG
:
ABI:
'arm64'
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
Timestamp:
2021
-11-16
21
:02:08+0800
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
pid:
1367
, tid:
1548
, name: android.display
>>
>
system_server
<<<
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
uid:
1000
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
signal
6
(
SIGABRT
)
, code
-1
(
SI_QUEUE
)
, fault addr --------
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
Abort message:
'sp<> assignment detected data race'
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x0 0000000000000000 x1 000000000000060c x2 0000000000000006 x3 0000007b505ef050
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x4 60692d606470ff1f x5 60692d606470ff1f x6 60692d606470ff1f x7 7f7f7f7f7f7f7f7f
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x8 00000000000000f0 x9 ab945656c778db00 x10 0000000000000000 x11 ffffffc0fffffbdf
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x12 0000000000000001 x13 000000000000017a x14 0000000000000002 x15 ffffffffffffffff
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x16 0000007eacbc9c80 x17 0000007eacbabbb0 x18 0000007b50334000 x19 0000000000000557
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x20 000000000000060c x21 00000000ffffffff x22 0000007bb943f887 x23 000000000000000b
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x24 0000007bb941f447 x25 0000000000000001 x26 0000007bb943654b x27 0000007bb9a3e000
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
x28 b400007bd9bb6630 x29 0000007b505ef0d0
11
-16
21
:02:08.722
15023
15023
F DEBUG
:
lr 0000007eacb5f3e0 sp 0000007b505ef030 pc 0000007eacb5f40c pst 0000000000000000
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
Runtime aborting
..
.
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
Dumping all threads without mutator lock held
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
All threads:
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
DALVIK THREADS
(
160
)
:
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
"Binder:1367_4"
prio
=
6
tid
=
39
Runnable
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
|
group
=
""
sCount
=
0
dsCount
=
0
flags
=
0
obj
=
0x14941998
self
=
0xb400007d29bf92e0
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
|
sysTid
=
2039
nice
=
-2
cgrp
=
default
sched
=
0
/0
handle
=
0x7b35b10cc0
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
|
state
=
R
schedstat
=
(
40114536967
22375096380
79628
)
utm
=
2849
stm
=
1162
core
=
7
HZ
=
100
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
|
stack
=
0x7b35a19000-0x7b35a1b000
stackSize
=
995KB
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
|
held
mutexes
=
"mutator lock"
(
shared held
)
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
native:
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
native:
11
-16
21
:02:08.355
1367
1548
F system_server: runtime.cc:655
]
native:
Android
8.0 系统异常:Abort message: '
sp
assign
ment
detect
ed
data
r
ace
' -- Animat
ed
VectorDrawable
最近在Debug
Android
工程时,发现真机直接崩溃闪退,但直接run则没问题,debug闪退日志报错:Dumping all threads without appropriate locks held: thread list lock mutator lock,之前调试还是好好的,为什么突然就不行了呢?
具体日志如下:
12-07 10:37:05.736: I/System
最近学习Flutter,遇到的问题记录一下
开发
Flutter版本的产品时,在集成阿里云播放器之后一直正常
开发
。结果发现打了Release的包之后,在进入到播放器页面时,App会直接Crash。
Flutter的报错信息也不是很明显。
JNI
DETECT
ED
ERROR IN APPLICATION: java_class == null
in call to GetFieldID
from java.lang.String java.lang.Runtime.nativeLoad(java.lan.
保证对共享资源的互斥访问,指一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。
Linux设备驱动中可采用的互斥途径:中断屏蔽、原子操作、自旋锁、信号量以及completion。
中断屏蔽可以解决中断与进程之间的并发,也可以解决内核抢占进程之间的并发。
在TimerLoop函数中,在调用其他JNI函数之前,通过调用 g_vm->AttachCurrentThread 方法来附加到JVM并获取新的 JNIEnv* 对象,然后,在线程结束前,使用DetachCurrentThread将JNI线程分离。这样,当JNI线程执行JNI调用时,就可以正确地附加到JVM了。在JNI中,每个线程必须先通过JNIEnv接口附加到JVM,然后才能安全地进行JNI调用。在JNI线程中,使用JNIEnv指针附加到JVM。在需要进行JNI调用的地方,在调用之前先附加到JVM。
数据竞争(
data
r
ace
)是指在非线程安全的情况下,多线程对同一个地址空间进行写操作。一般来说,我们都会通过线程同步方法来保证数据的安全,比如采用互斥量或者读写锁。但是由于某些笔误或者设计的缺陷,还是存在
data
r
ace
的可能性的。(转载请指明出于breaksoftware的csdn博客)
比如下面这段代码
#define _GNU_SOURCE 1
一、名词解析
1、
data
r
ace
: Any r
ace
is a bug
定义: ①多个线程(协程)对于同一个变量、②同时地、③进行读/写操作、并且④至少有一个线程进行写操作。(也就是说,如果所有线程都是只进行读操作,那么将不构成数据争用)
后果: 如果发生了数据争用,读取该变量时得到的值将变得不可知(根据内存模型),使得该多线程程序的运行结果将完全不可预测,有一定可能会导致直接崩溃。
如何防止: 对于有可能被多个线程同时访问的变量使用排他访问控制,具体方法包括使用
这一节的学习比较简单,可以看出作者的主要目的在于基于比较简单的
android
的
LOG
日志系统来将
android
当中从java层到
framework
层再到runtime层的调用流程拉通进行讲解一次,所以这一节的内容是比较简单的。
这里就简单说一下调用的流程:
1、java程序使用
Log
.i/e/v/w/d 命令来写入日志
(
framework
s/base/core/java/andr