Some time ago, my incorrect task sleep was intercepted during message formation and message delivery in windowmanagerservice. However, after the experiment, I found that I had taken a wrong path. Fortunately, it was not a failure.
To put it bluntly, there is an overall power management solution for sleep and awakening of Android. In general, early_suspend and late_resume are used. From the perspective of name, we generally have a perceptual knowledge of sleep wake-up. The two processes are in the opposite order. Therefore, early_suspend is a driver registered as early suspend in the kernel.
Request_suspend_state: Sleep (0-> 3) at 257000110209 (00:04:15. 512681246 UTC )//. /kernel/power/main. c: 202: request_suspend_state (State); this is the location information in the kernel source file.
I/power (1379): *** set_screen_state 0 // The information in the main function of the power. c file.
D/surfaceflinger (1195): about to give-up screen, flinger = 0xf978
V/transportcontrolview (1379): Create TCV com. Android. Internal. widget. transportcontrolview @ 41341fd8
D/dalvikvm (1379): gc_concurrent freed 350 K, 13% free 8663 K/9927 K, paused 5 MS + 70 ms
D/dalvikvm (1379): gc_for_alloc freed 144 K, 13% free 8709 K/9927 K, paused 323 Ms
D/dalvikvm (1379): gc_for_alloc freed 235 K, 12% free 8817 K/9927 K, paused 239 Ms
D/dalvikvm (1379): gc_for_alloc freed 105 K, 10% free 8965 K/9927 K, paused 189 Ms
D/dalvikvm (1379): gc_for_alloc freed 104 K, 11% free 8907 K/9927 K, paused 213 Ms
D/dalvikvm (1379): gc_for_alloc freed 2 K, 10% free 9010 K/9927 K, paused 51 Ms
I/dalvikvm-heap (1379): Grow heap (frag case) to 9.144 MB for 124216-byte allocation
D/dalvikvm (1379): gc_for_alloc freed <1 K, 10% free 9131 K/10055 K, paused 47 Ms
I/leopard_debug (1379): Read property from SYS. vmcpolicy. Camera. Disabled is: True
V/lockscreen (1379): Camera disabled by Device Policy
D/dalvikvm (1379): gc_for_alloc freed 123 K, 10% free 9089 K/10055 K, paused 45 Ms
D/dalvikvm (1379): gc_for_alloc freed 8 K, 9% free 9187 K/10055 K, paused 40 ms
D/dalvikvm (1379): gc_for_alloc freed 111 K, 10% free 9131 K/10119 K, paused 40 ms
D/tabletstatusbar (1503): Refreshing icons: 0 communications, miconlayout = com. Android. systemui. statusbar. tablet. icationicationiconarea $ iconlayout @ 41117180
D/tabletstatusbar (1503): Closing configurications panel
D/tabletstatusbar (1503): Closing input methods panel
D/tabletstatusbar (1503): Closing compat panel
D/tabletstatusbar (1503): Closing recents panel
D/tabletstatusbar (1503): Closing configurications panel
D/tabletstatusbar (1503): Closing recents panel
D/tabletstatusbar (1503): Closing input methods panel
D/tabletstatusbar (1503): Closing compat panel
D/alsamodule (1198): Open called for devices 00000000 in Mode 0...
E/audiohardwarealsa (1198): alsalib [vimicro/utils/alsas-lib/src/PCM. C: 2210 :( snd_pcm_open_noupdate) unknown PCM androidplayback]
I/alsamodule (1198): initialized ALSA playback device default
I/tabletstatusbar (1503): disable_clock: Yes
D/tabletstatusbar (1503): hiding the menu button
D/tabletstatusbar (1503): Hiding shadows (lights on)
D/tabletstatusbar (1503): Closing recents panel
PM: In the enter_state function in the syncing filesystems... done. // suspend. c folder
Freezing user space processes... (elapsed 0.02 seconds) done.
Freezing remaining freezable tasks... (elapsed 0.01 seconds) done.
Suspending Console (s) (use no_console_suspend to debug)