Android笔记(二) 常见log

用户按键操作,唤醒屏幕

S00B134  04-19 02:46:37.926   951  1128 D WindowManager: Receive Input KeyEvent of Powerkey down

S00B138  04-19 02:46:37.929   951  1128 D WindowManager: wake Up From Power Key

S00B139  04-19 02:46:37.929   951  1128 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...

S00B140  04-19 02:46:37.942   951   989 I WindowManager: Screen turning on...

S00B148  04-19 02:46:37.950   951   951 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_USER)

S00B14D  04-19 02:46:37.954   951   973 I DisplayManagerService: Display device changed state: "内置屏幕", ON

S00B14E  04-19 02:46:37.954   951   973 I DisplayManagerService: Display device changed state: "HDMI 屏幕", ON

S00B188  04-19 02:46:38.163   951  1128 D WindowManager: Receive Input KeyEvent of Powerkey up

手动息屏

10-17 08:08:31.832   977   977 I PowerManagerService: Powering off display group due to power_button (groupId= 0, uid= 1000)...

10-17 08:08:31.833   977   977 I PowerManagerService: Going to sleep due to power_button (uid 1000)...

10-17 08:08:31.838   977  1559 I PowerManagerService: Sleeping display group (groupId=0, uid=1000)...

10-17 08:08:31.839   977  1559 I PowerManagerService: Sleeping (uid 1000)...

10-17 08:08:32.456   977 14980 D PowerManagerService: userActivityNoUpdateLocked: Scene not defined, event:0

手动亮屏

S00B1F0  04-19 02:46:38.400   951   971 I WindowManager: Finished screen turning on...

S00B1F7  04-19 02:46:38.403   951   951 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_USER)

10-17 08:10:57.052   977  1634 I PowerManagerService: Powering on display group fromAsleep (groupId=0, uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...

10-17 08:10:57.053   977  1634 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)...

10-17 08:10:57.306   977  1559 W PowerManagerService: Screen on took 269 ms

超时息屏

S003488  04-19 02:30:05.979   951  1444 I PowerManagerService: Going to sleep due to timeout (uid 1000)...

S00348F  04-19 02:30:05.982   951   989 I PowerManagerService: Sleeping (uid 1000)...

电源键唤醒屏幕,亮屏

S003775  04-19 02:30:38.174   951  1128 D WindowManager: Receive Input KeyEvent of Powerkey down

S003779  04-19 02:30:38.178   951  1128 D WindowManager: wake Up From Power Key

S00377A  04-19 02:30:38.179   951  1128 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...

S00377E  04-19 02:30:38.181   951   989 I WindowManager: Screen turning on...

S003782  04-19 02:30:38.187   951  1414 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.

S003784  04-19 02:30:38.191   951   951 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_USER)

S003796  04-19 02:30:38.370   951  1128 D WindowManager: Receive Input KeyEvent of Powerkey up

S0037F9  04-19 02:30:38.953   951   973 I WindowManager: All windows ready for display!

S0037FA  04-19 02:30:38.954   951   971 W WindowManager: Setting mWindowManagerDrawComplete

S003800  04-19 02:30:38.957   951   971 D WindowManager: finishScreenTurningOn: mAwake=true, mScreenOnEarly=true, mScreenOnFully=false, mKeyguardDrawComplete=true, mWindowManagerDrawComplete=true

S003801  04-19 02:30:38.957   951   971 I WindowManager: Finished screen turning on...

S003807  04-19 02:30:38.959   951   989 W PowerManagerService: Screen on took 786 ms

S00380A  04-19 02:30:38.960   951   951 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_USER)

06-10 14:22:07.344  1097  1261 I intercept_power: [ACTION_DOWN,0,0]

06-10 14:22:07.529  1097  1261 I intercept_power: [ACTION_UP,0,0]

亮灭屏幕

灭屏

05-11 03:18:16.755   594   594 D SurfaceFlinger: Setting power mode 0 on display 0

05-11 03:18:16.966   594   594 D SurfaceFlinger: Finished setting power mode 0 on display 0

亮屏

05-11 03:19:21.892   594   594 D SurfaceFlinger: Setting power mode 2 on display 0

05-11 03:19:22.099   594   594 D SurfaceFlinger: Finished setting power mode 2 on display 0

屏幕一直处于灭屏的状态

04-30 05:17:56.993  1534  1534 D BatteryMeterDrawable: Screen is off, stop charging anim

M325A1D  09-13 05:47:21.897  1352  1352 D BatteryMeterDrawable: onReceive level=100,plugType=1,status=2

旋转屏幕

00F105 10-15 10:53:05.990  4250  4250 D ScreenRecord: orientation changed, now 0

10-12 16:02:04.308  1384  1384 D VendorServices: Orientation changed: mOrientation :1->2    //竖屏转横屏

10-12 16:02:08.726  1384  1384 D VendorServices: Orientation changed: mOrientation :2->1    //横屏转竖屏

关机

12-16 19:13:14.971   901  1151 D WindowManager: Receive Input KeyEvent of Powerkey down

12-16 19:13:15.752   901 14847 I WindowManager: Input focus has changed to Window{35d1770 u0 ActionsDialog}

12-16 19:13:15.758   901   925 D WindowManager: update input focus to Window{35d1770 u0 ActionsDialog} , run:true

12-16 19:13:17.171   901  1151 D WindowManager: Receive Input KeyEvent of Powerkey up

重启

12-16 19:13:51.541   898   922 I WindowManager: No existing display settings, starting empty

12-16 19:13:51.556   898   922 I WindowManager: init SprdWindowManagerService

12-16 19:13:51.633   898   920 I WindowManager: registerSprdIntentFilter

12-16 19:13:51.634   898   920 I WindowManager: updateQuickStepStatus  mQuickStepEnabled=true

12-16 19:13:51.799   898   898 I WindowManager: SAFE MODE not enabled

12-16 19:13:51.822   898   898 I WindowManager: Override config changes=60007dfc {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port ?uimode ?night -touch -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2} for displayId=0

12-16 19:13:51.837   898   898 I WindowManager: Override config changes=8 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port ?uimode ?night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.4} for displayId=0

12-16 19:13:53.232   898   898 I WindowManager: Override config changes=200 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.6} for displayId=0

12-16 19:13:53.351   898   898 D WindowManager: updateHasNavBar mCurrentUserId = 0  ,mBootHasNavbar=false  ,mNavBarOverlay = false

12-16 19:13:53.351   898   898 D WindowManager: initNavStatus user0 mNaviHided = false mDynamicNavigationBar = false

12-16 19:13:53.386   898   943 I WindowManager: Screen turning on...

12-16 19:13:54.267   898   898 I WindowManager: Override config changes=100 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8} for displayId=0

12-16 19:13:56.483   898   914 I WindowManager: Override config changes=100 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.10} for displayId=0

12-16 19:13:56.489   898   914 D WindowManager:  update app focus from null to ActivityRecord{372e640 u0 com.android.settings/.FallbackHome t2}

12-16 19:13:56.928   898   922 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_UNKNOWN)

12-16 19:13:56.929   898   922 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_UNKNOWN)

12-16 19:13:56.929   898   922 I WindowManager: Screen turning on...

12-16 19:13:58.250   898  1284 E WindowManager: Window Session Crash

12-16 19:13:58.250   898  1284 E WindowManager: java.lang.IllegalArgumentException: Requested window null does not exist

12-16 19:13:58.250   898  1284 E WindowManager:         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:5519)

12-16 19:13:58.250   898  1284 E WindowManager:         at com.android.server.wm.Session.actionOnWallpaper(Session.java:356)

12-16 19:13:58.250   898  1284 E WindowManager:         at com.android.server.wm.Session.setWallpaperZoomOut(Session.java:382)

12-16 19:13:58.250   898  1284 E WindowManager:         at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:1194)

12-16 19:13:58.250   898  1284 E WindowManager:         at com.android.server.wm.Session.onTransact(Session.java:139)

12-16 19:13:58.250   898  1284 E WindowManager:         at android.os.Binder.execTransactInternal(Binder.java:1159)

12-16 19:13:58.250   898  1284 E WindowManager:         at android.os.Binder.execTransact(Binder.java:1123)

12-16 19:13:58.550   898  1457 I WindowManager: Input focus has changed to Window{2e899d4 u0 NotificationShade}

12-16 19:13:58.551   898   923 D WindowManager: update input focus to Window{2e899d4 u0 NotificationShade} , run:true

12-16 19:13:58.712   898  1457 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{2e899d4 u0 NotificationShade}, surfaceController Surface(name=NotificationShade)/@0x3f60803

12-16 19:13:58.729   898   923 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{be05759 u0 com.android.systemui.ImageWallpaper}, surfaceController Surface(name=com.android.systemui.ImageWallpaper)/@0xb5105fe

12-16 19:13:58.775   898  1457 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.

12-16 19:13:58.776   898   920 W WindowManager: Setting mKeyguardDrawComplete

12-16 19:13:58.778   898   923 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{2e899d4 u0 NotificationShade}, surfaceController Surface(name=NotificationShade)/@0x3f60803

12-16 19:13:59.327   898   922 I WindowManager: All windows ready for display!

12-16 19:13:59.328   898   920 W WindowManager: Setting mWindowManagerDrawComplete

12-16 19:13:59.328   898   920 D WindowManager: finishScreenTurningOn: mAwake=true, mScreenOnEarly=true, mScreenOnFully=false, mKeyguardDrawComplete=true, mWindowManagerDrawComplete=true

12-16 19:13:59.412   898   922 I WindowManager: ******* TELLING SURFACE FLINGER WE ARE BOOTED!

电池高温关机时输出特定信息

测验证方案:根据ylog或者adb logcat -vthreadtime | grep -E " ShutdownThread: Shutdown" 查看对应log信息:

如下:

04-13 10:13:14.255  6934  6934 I ShutdownThread: Shutdown, mReboot: false reason: userrequested

mReboot:false 说明是走的关机

高温关机的reason有以下两种情况

(1)reason:thermal,battery :battery,threamal中都能触发

(2)reason:thermal :只有threamal能触发

点击recent

02-08 14:15:13.530  1624  1624 D OverviewProxyRecentsImpl: toggleRecentApps

02-08 14:15:13.530  1624  1624 D OverviewProxyRecentsImpl: toggleRecentApps: device is unlocked

02-08 14:15:13.530  1624  1624 D OverviewProxyRecentsImpl: toggleRecentApps: notify launcher through proxy

锁屏

E4D7306  10-10 13:59:11.556   765  1474 I wm_set_keyguard_shown: [1,0,0,setKeyguardShown]

电源键 灭屏

S00C15B  10-09 15:22:33.609  1673  1828 D WindowManager: Receive Input KeyEvent of Powerkey down

S00C182  10-09 15:22:33.791  1673  1828 D WindowManager: Receive Input KeyEvent of Powerkey up

S007B40  04-19 02:39:01.320   951   971 D ActivityTaskManager: Top Process State changed to PROCESS_STATE_TOP_SLEEPING

点击Home

WindowManager: startDockOrHome: startReason= startDockOrHome

UNISOC-LAUNCHER3: LauncherAppMonitor, onReceiveHomeIntent

点击Back

10-28 07:44:59.451   847  5391 I ActivityTaskManager: moveTaskToBack: Task{92dd47c #160 type=standard A=1000:com.android.settings.root U=0 visible=true mode=fullscreen translucent=false sz=1}

M03BFBC  12-13 20:42:13.953  1557  1557 I KeyButtonView: Back button event: ACTION_DOWN

M03C100  12-13 20:42:14.052  1557  1557 I KeyButtonView: Back button event: ACTION_UP

更改投屏模式

WindowManager: change to mirror display cast mode           //更改投屏模式为手机模式(同显)

WindowManager: change to default display cast mode         //更改投屏模式为电脑模式(异显)

接入第二屏

Line 70852: S00F183  08-10 18:26:23.385  1128  1146 D WindowManager: external display start to observe cast_mode

Line 70853: S00F184  08-10 18:26:23.386  1128  1146 D WindowManager: external display type:2

拔掉第二屏/移除第二屏

S027A87  11-17 11:43:23.090  8236  8612 V WiredAccessoryManager: status  HDMI=0

S027A88  11-17 11:43:23.090  8236  8612 V WiredAccessoryManager: mask 51 state 0

S027A89  11-17 11:43:23.091  8236  8612 V WiredAccessoryManager: newName=31890000.dptx newState=0 headsetState=0 prev headsetState=16

M027A8A  11-17 11:43:23.093   509   585 I SPRDHWComposer: Excessive delay in drm_blank(): 3ms, dpms_mode:3

M027A8B  11-17 11:43:23.093   509   585 D SPRDHWComposer: HWCDisplay::HandleHotPlugReport <193>: displayName = External Display

M027A8C  11-17 11:43:23.093   509   585 D SPRDHWComposer: HWCDisplay::HandleHotPlugReport <229>: plug-out displayId 0xb4000071c27950f0

//WiredAccessoryManager(有线辅助管理器)

M027A8E  11-17 11:43:23.094  8236  8612 I WiredAccessoryManager: MSG_NEW_DEVICE_STATE

S027A90  11-17 11:43:23.094  8236  8236 V WiredAccessoryManager: headsetName:  disconnected

M027A96  11-17 11:43:23.098  8236  8236 I AS.AudioDeviceInventory: dropping ACTION_AUDIO_BECOMING_NOISY

S027A97  11-17 11:43:23.101  8236  8606 I AS.AudioDeviceInventory: handleDeviceConnection(false dev:400 address: name:)

S027A98  11-17 11:43:23.102  8236  8606 I AS.AudioDeviceInventory: deviceKey:0x400:

S027A99  11-17 11:43:23.102  8236  8606 I AS.AudioDeviceInventory: deviceInfo:[DeviceInfo: type:0x400 (hdmi) name: addr: codec: 0] is(already)Connected:true

M027A9A  11-17 11:43:23.102  8095  8608 I APM_AudioPolicyManager: setDeviceConnectionStateInt() device: 0x400, state 0, address  name  format 0x0

M027A9B  11-17 11:43:23.103   509   595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false

M027A9C  11-17 11:43:23.103  8094  8094 E HWC2    : destroyLayer(12970367415421063408, 12970367417300419840) failed: BadDisplay (2)

M027A9D  11-17 11:43:23.104   509   595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false

M027A9E  11-17 11:43:23.104  8094  8094 E HWC2    : destroyLayer(12970367415421063408, 12970367417300378640) failed: BadDisplay (2)

M027A9F  11-17 11:43:23.104   509   595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false

M027AA0  11-17 11:43:23.104  8094  8094 E HWC2    : destroyLayer(12970367415421063408, 12970367417300381936) failed: BadDisplay (2)

M027AA1  11-17 11:43:23.104   509   595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false

M027AA2  11-17 11:43:23.105  8079 13672 I audio_hw_ext: ext_contrtol_process:disconnect=1024

M027AA3  11-17 11:43:23.105  8094  8094 E HWC2    : destroyLayer(12970367415421063408, 12970367417300386880) failed: BadDisplay (2)

M027AA4  11-17 11:43:23.105  8094  8094 E HWComposer: destroyLayer failed for display 1: Invalid display

M027AA5  11-17 11:43:23.106  8094  8094 E HWComposer: destroyLayer failed for display 1: Invalid display

M027AA6  11-17 11:43:23.106  8094  8094 E HWComposer: destroyLayer failed for display 1: Invalid display

M027AA7  11-17 11:43:23.106  8094  8094 E HWComposer: destroyLayer failed for display 1: Invalid display

S027AA8  11-17 11:43:23.106  8236  8346 D LocalDisplayAdapter: remove display mCurrentDisplayInfo =

S027AA9  11-17 11:43:23.107  8236  8346 I DisplayManagerService: Display device removed: DisplayDeviceInfo{"HDMI Screen": uniqueId="local:1", 1920 x 1080, modeId 4, defaultModeId 4, supportedModes [{id=3, width=640, height=480, fps=60.0}, {id=4, width=1920, height=1080, fps=60.0}], colorMode 0, supportedColorModes [0], HdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3, 4], mMaxLuminance=500.0, mMaxAverageLuminance=200.0, mMinLuminance=0.5}, allmSupported false, gameContentTypeSupported false, density 213, 320.0 x 320.0 dpi, appVsyncOff 1000000, presDeadline 16666667, touch EXTERNAL, rotation 0, type EXTERNAL, address {port=1}, deviceProductInfo null, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION}

S027AAA  11-17 11:43:23.111  8236  8344 D ActivityTaskManager: finishAllActivitiesImmediatelyLocked: finishing ActivityRecord{cd5eaa8 u0 com.android.launcher3/.secondarydisplay.SecondaryDisplayLauncher t8}

Wallpaper Native Crash

后台进程且内存紧张的时候,会触发Trim Memory 80,而应用侧有业务需要在后台时仍进行绘制。

Trim memory 80由AMS触发,通过WMS下发给MM-graphic层。而graphic层拿到此消息后,对该应用进程的绘制线程里将surface、context进行清除。而此时发起了绘制,在view

begin DRAWING后报出native crash异常

查看launcher的配置

源码环境下,无需编译版本,直接执行 lunch命令,选择board后,会出现下边的log。
可通过该log,查看launcher的配置。
以s9863a1h10_go_32b_Natv board为例,运行后的log如下,配置符合预期:

device/sprd/sharkl3/common/DeviceCommon.mk:782: warning: "common/DeviceCommon.mk: version type: gms"
device/sprd/sharkl3/common/LauncherCommon.mk:9: warning: "common/LauncherCommon.mk: config begin, PRODUCT_GO_DEVICE:true TARGET_BUILD_VERSION: CHIPRAM_DDR_1G_LIMITED:ture"
device/sprd/sharkl3/common/LauncherCommon.mk:37: warning: "common/LauncherCommon.mk: this is 512M Go devices, don't dexpreopt speed launcher."
device/sprd/sharkl3/common/LauncherCommon.mk:85: warning: "common/LauncherCommon.mk:config done, launcher package is: Launcher3QuickStepGo"
device/sprd/sharkl3/common/LauncherCommon.mk:86: warning: "common/LauncherCommon.mk:config done, launcher features is: ro.launcher.showmeminfo=true ro.launcher.showclearmem=true ro.launcher.anim.app.exit=true ro.launcher.anim.launchtask=true ro.launcher.label.fastupdate=true"

Launcher

//允许主屏幕旋转

11-24 17:44:49.598  1915  1915 D UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_allowRotation

11-24 17:44:49.598  1915  1915 D UNISOC-LAUNCHER3: RotationHelper, notifyChange, activityFlags:-1 mLastActivityFlags:5

//取消允许主屏幕旋转

11-24 17:44:38.087  1915  1915 D UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_allowRotation

11-24 17:44:38.088  1915  1915 D UNISOC-LAUNCHER3: RotationHelper, notifyChange, activityFlags:5 mLastActivityFlags:-1

//从workspace上滑进入到allapps

11-24 23:25:03.310 12877 12877 D UNISOC-LAUNCHER3: ASCTouchController, onDragStart,state change with anim: Normal -> AllApps

Android Event log常用tag说明

Android Event log常用tag说明

screen_toggled:屏幕电源状态信息

其中 0 表示屏幕关闭,1 表示屏幕打开。

11-30 16:35:06.332  1145  1145 I screen_toggled: 1

11-30 16:35:16.734  1145  1145 I screen_toggled: 0

状态栏

状态栏没有下拉:

04-27 15:20:57.639  1098  6137 I notification_panel_hidden: 

下拉状态栏完全展开:

04-27 15:21:45.970  1098 11208 I notification_panel_revealed: 5

系统发生重启

系统发生重启,通过查看lastlog中的kernel.log可以了解相关的重启原因

kernel.log中查看reboot的原因

录屏log

12-07 05:16:18.292  1091  2829 I ActivityTaskManager: START u0 {flg=0x10000000 cmp=com.android.systemui/.screenrecord.ScreenRecordDialog} from uid 10133, pid 1333

Line 194341: E040771  12-13 20:42:43.585  1166  7784 I am_create_service: [0,200009692,.RecordingService,10136,1557]

Line 194343: M040773  12-13 20:42:43.597  1557  1557 D RecordingService: registerContentObserver

Line 194344: M040774  12-13 20:42:43.600  1557  1557 D RecordingService: onStartCommand com.android.systemui.screenrecord.START

Line 194345: M040775  12-13 20:42:43.601  1557  1557 D RecordingService: recording with audio sourceNONE

Line 206021: M043411  12-13 20:43:07.585  1557  1557 D RecordingService: Screen Off, Stopping Recording.

Line 206022: M043412  12-13 20:43:07.585  1557  1557 D RecordingService: onStartCommand com.android.systemui.screenrecord.STOP

Line 206023: M043413  12-13 20:43:07.585  1557  1557 D RecordingService: notifying for user 0

Line 206146: M04348D  12-13 20:43:07.649  1557 19528 D RecordingService: saving recording

壁纸

//弹出设置壁纸对话框

M039FB3  12-13 20:42:07.427 19031 19031 E Dialog  : show dialog view = DecorView@3fd2284[PreviewActivity]

//弹出壁纸加载对话框

M039FF7  12-13 20:42:08.263 19031 19031 E Dialog  : show dialog view = DecorView@85ca9bd[PreviewActivity]

//销毁设置壁纸对话框

M03A005  12-13 20:42:08.351 19031 19031 E Dialog  : remove dialog view = DecorView@3fd2284[PreviewActivity]

//销毁壁纸加载对话框

M03B57C  12-13 20:42:12.357 19031 19031 E Dialog  : remove dialog view = DecorView@85ca9bd[PreviewActivity]

当前处于壁纸应用的首页     

CustomizationPickerActivity/CustomizationPickerFragment

M03D294  12-16 16:32:41.226 18152 18152 D CustomizationPickerFragment: Section is not available: com.android.customization.model.themedicon.ThemedIconSectionController@4fd65cd

预加载完成    进入壁纸应用/进入到GridFragment界面

M03D8FA  12-16 16:32:45.290  4084  4128 D ModelPreload: Preload completed : true

点击4*4按钮,跳转到GridFragment界面

10-17 07:17:25.578  6104  6104 W RecyclerView: No adapter attached; skipping layout

屏幕分辨率

M01C847  12-17 16:44:21.078  7543  7543 D SuperResolutionSettings: resolution index = 0 width = 1080 height = 2400 name = FHD+

M01C848  12-17 16:44:21.079  7543  7543 D SuperResolutionSettings: resolution index = 1 width = 720 height = 1600 name = HD+

M01C853  12-17 16:44:21.106  7543  7543 D SuperResolutionSettings: lasted pref mode = 0

M01C854  12-17 16:44:21.107  7543  7543 D SuperResolutionSettings: current pref mode = 0

M01C8B4  12-17 16:44:21.772  7543  7543 D SuperResolutionSettings: onPreferenceTreeClick pref = HD+ 720 × 1600   key = 1

Settings Log

M014222  12-13 20:36:08.339 14258 14258 D SettingsActivity: Switching to fragment com.android.settings.deviceinfo.StorageDashboardFragment

M014223  12-13 20:36:08.339 14258 14258 D SubSettings: Launching fragment com.android.settings.deviceinfo.StorageDashboardFragment

点击了一下锁屏界面

pointerCount 0 -> 1     pointerCount 1 -> 0

12-07 06:14:57.981  1091  1195 D InputReader: syncTouch: pointerCount 0 -> 1, touching ids 0x00000000 -> 0x80000000, hovering ids 0x00000000 -> 0x00000000, canceled ids 0x00000000

12-07 06:14:57.982  1091  1195 D InputReader: dispatchTouches action DOWN now(ns): 11541171341014

12-07 06:14:57.982  1091  1195 D InputReader: notifyMotion call dispatcher

12-07 06:14:58.072  1091  1195 I InputReader: processEventsLocked: type=3 Count=3 code=57 value=-1 deviceId=4 when=11541261574000

12-07 06:14:58.073  1091  1195 D InputReader: syncTouch: pointerCount 1 -> 0, touching ids 0x80000000 -> 0x00000000, hovering ids 0x00000000 -> 0x00000000, canceled ids 0x00000000

12-07 06:14:58.073  1091  1195 D InputReader: dispatchTouches action UP now(ns): 11541262272399

12-07 06:14:58.073  1091  1195 D InputReader: notifyMotion call dispatcher

12-07 06:15:08.193  1091  1195 I InputReader: Reconfiguring input devices, changes=DISPLAY_INFO |

12-07 06:15:08.193  1091  1195 I InputReader: Disabling adaptive_ts (device 4) because the associated viewport is not active

之后就滑动锁屏界面,会出现大量的syncTouch: pointerCount 1 -> 1

InputReader: syncTouch: pointerCount 0 -> 1                syncTouch: pointerCount 1 -> 1                syncTouch: pointerCount 0 -> 1

进入到主屏幕设置,打开“通知圆点中显示数目

UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_notification_dots_ext

//Launcher切换桌面模式

12-31 08:37:17.417  2055  2129 D UNISOC-LAUNCHER3: Change Launcher style, restarting launcher

12-31 08:37:17.498  2055  2129 I droid.launcher: System.exit called, status: 0

12-31 08:37:17.498  2055  2129 I AndroidRuntime: VM exiting with result code 0, cleanup skipped.

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

AA

AB

AC

AD

AE

AF

AG

AH

AI

AJ

AK

AL

AM

AN

AO

AP

AQ

AR

AS

AT

AU

AV

AW

AX

AY

AZ

BA

BB

BC

BD

BE

BF

BG

BH

BI

BJ

BK

BL

BM

BN

BO

BP

BQ

second

cpu-cpu_percent[0]

cpu-iowtime[1]

cpu-cpu_frequency[2]

cpu-null[3]

cpu-null[4]

cpu-null[5]

cpu0-cpu_percent[0]

cpu0-iowtime[1]

cpu0-cpu_frequency[2]

cpu0-null[3]

cpu0-null[4]

cpu0-null[5]

cpu1-cpu_percent[0]

cpu1-iowtime[1]

cpu1-cpu_frequency[2]

cpu1-null[3]

cpu1-null[4]

cpu1-null[5]

cpu2-cpu_percent[0]

cpu2-iowtime[1]

cpu2-cpu_frequency[2]

cpu2-null[3]

cpu2-null[4]

cpu2-null[5]

cpu3-cpu_percent[0]

cpu3-iowtime[1]

cpu3-cpu_frequency[2]

cpu3-null[3]

cpu3-null[4]

cpu3-null[5]

cpu4-cpu_percent[0]

cpu4-iowtime[1]

cpu4-cpu_frequency[2]

cpu4-null[3]

cpu4-null[4]

cpu4-null[5]

cpu5-cpu_percent[0]

cpu5-iowtime[1]

cpu5-cpu_frequency[2]

cpu5-null[3]

cpu5-null[4]

cpu5-null[5]

cpu6-cpu_percent[0]

cpu6-iowtime[1]

cpu6-cpu_frequency[2]

cpu6-null[3]

cpu6-null[4]

cpu6-null[5]

cpu7-cpu_percent[0]

cpu7-iowtime[1]

cpu7-cpu_frequency[2]

cpu7-null[3]

cpu7-null[4]

cpu7-null[5]

irqs

ctxt

processes

procs_running

procs_blocked

totalram

freeram

cached

Reserve01

Reserve02

Reserve03

Reserve04

Reserve05

Reserve06

//重启notificationlistener服务,用于通知圆点服务

S130C67  01-13 04:35:58.055   985  1557 W ActivityManager: Scheduling restart of crashed service com.android.launcher3/.notification.NotificationListener in 64000ms for connection

E130C68  01-13 04:35:58.055   985  1557 I am_schedule_service_restart: [0,com.android.launcher3/.notification.NotificationListener,64000]

切换桌面模式,会移除之前的NotificationListener,连接新的NotificationListener

S130C3A  01-13 04:35:58.032   985  1912 D NotificationListeners: Removing active service ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}

S130C45  01-13 04:35:58.034   985   985 V NotificationListeners: 0 notification listener connection lost: ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}

S130F08  01-13 04:35:58.613   985   985 V NotificationListeners: 0 notification listener service connected: ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}

冻屏

切换前冻结屏幕,禁止一切输入操作

  • 冻结输入事件
  • 强制结束App动画
  • 截取当前屏幕并显示

ART笔记 —— dvm_lock_sample

logcat events中有大量的dvm_lock_sample信息。

 dvm_lock_sample: [com.banyac.midrive.map,1,main,98,ReportUtil.java,119,-,189,19]

 进程名,主线程?线程名,锁等待时间,下个持有者文件名,行号,上个持有者文件名,行号,等待百分比

E01A706  01-19 10:36:07.613  4265  4440 I dvm_lock_sample: [com.android.wallpaper,0,pool-5-thread-1,24991,ActivityThread.java,7066,android.content.IContentProvider android.app.ActivityThread.acquireProvider(android.content.Context, java.lang.String, int, boolean),-,7081,android.content.IContentProvider

     打印此LOG时,线程即将持有锁。

    上一个持有者文件名为“-”时,表示与下个持有者在同一个文件中

     发生锁等待时这个LOG有概率打印,等待百分比越大,概率越大。具体请看代码。

开机log关键字

boot_progress_start

        系统进入用户空间,kernel启动完成

boot_progress_preload_start

        Zygote启动

boot_progress_preload_end

        Zygote结束

boot_progress_system_run

        SystemServer ready,开始启动Android系统服务,如PMS,APMS等

boot_progress_pms_start

        PMS开始扫描安装的应用

boot_progress_pms_system_scan_start

        PMS先行扫描/system目录下的安装包

boot_progress_pms_data_scan_start

        PMS扫描/data目录下的安装包

boot_progress_pms_scan_end

        PMS扫描结束

boot_progress_pms_ready

        PMS就绪

boot_progress_ams_ready

        AMS就绪

boot_progress_enable_screen

        AMS启动完成后开始激活屏幕,从此以后屏幕才能响应用户的触摸,它在WindowManagerService发出退出开机动画的时间节点之前,而真正退出开机动画还会花费少许时间,具体依赖animation zip 包中的desc.txt。wm_boot_animation_done才是用户感知到的动画结束时间节点

sf_stop_bootanim

        SF设置service.bootanim.exit属性值为1,标志系统要结束开机动画了,可以用来跟踪开机动画结尾部分消耗的时间

wm_boot_animation_done

        开机动画结束

开机向导页面

mResumedActivity: ActivityRecord{6531e2a u0 com.google.android.setupwizard/.user.WelcomeActivity t8}

monkey开始得时间

data/local/tmp/tmp/monkey/monkey.log

测试中连接上wifi,自动校准时间:

M349307  11-14 16:35:31.558 15249 15249 D WifiSignalController: connected : true, level : 4, isDefault : true, inetCondition : 0, statusLabel : No internet

am_resume_activity

如昨日沟通,am_resume_activity:是server端调度发起的时间点,client端也就是你们的InCallActivity所在的应用10s之后才真正反馈执行resume成功,我们昨日看了下InCallActivity主线比较繁忙,请确认下你们的主线是否耗时,堵塞正常的生命周期调度,感谢!

am_restart_activity

如下log的打印说明AMS已经通知App进程执行SecureCameraActivity的launch流程(即该Activity的onCreate->onStart->onResume等)的执行,App主线程为何没有及时执行该流程,还请App同事确认主线程运行状态,感谢!

events.log:960: 00E457 12-28 12:37:24.181   720  3873 I am_restart_activity: [0,217467491,28,com.android.camera2/com.android.camera.SecureCameraActivity]

如何分析Activity生命周期的log

Native MMI

//开始进入factorytest流程

M0003E5  12-07 16:49:58.303   474   474 D sprd_fts:: ==== factory test start ====

//打开drm框架

M0007E9  12-07 16:49:58.672   474   474 D FACTORY : gr_init: gr_init open_drm!

//drm_init

M0007ED  12-07 16:49:58.672   474   474 D FACTORY : drm_init: drm_init dev_name=/dev/dri/card0,ret=14

M0007EE  12-07 16:49:58.672   474   474 D FACTORY : drm_init: drm_init dev_name=/dev/dri/card0,pdata->drm_fd=5

M000800  12-07 16:49:58.726   474   474 D sprd_fts:: mmitest lcd_size=1080*2160

M000801  12-07 16:49:58.726   474   474 D sprd_fts:: mmitest max_rows=25,max_items=14

//打开/dev/input节点正常

M000EA4  12-07 16:50:01.727   474   474 E FACTORY : ev_init: touchevent ev_init scucess[25][Inappropriate ioctl for device][43]

//表示PCBA.conf文件中,解析到当前行为空行。

M000EA6  12-07 16:50:01.727   474   474 D FACTORY : parse_config: can't check line =

.0.0.0

//进入到按键测试

M001436  12-07 16:50:10.144   474   474 D sprd_fts:: enter function:- 按键

camera流程分析

//进入流程

M0003E5  12-07 17:02:02.276   476   476 D sprd_fts:: ==== factory test start ====

M000713  12-07 17:02:02.505   476   476 D sprd_fts:: mmitest ui_init!!

//root menu下选择第四项

M001768  12-07 17:02:45.717   476   476 D sprd_fts:: the pressed key = 4

M001769  12-07 17:02:45.717   476   476 D sprd_fts:: press item No = 4

M00176A  12-07 17:02:45.717   476   476 D sprd_fts:: mmitest TOUCH SELECT_ITEM

//进入phone test menu界面

M00177D  12-07 17:02:45.918   476   476 D sprd_fts:: set menu function

M00177E  12-07 17:02:45.918   476   476 D sprd_fts:: PHONE_TEST_MENU: item_total = 27, page_total = 2

M00177F  12-07 17:02:45.918   476   476 D sprd_fts:: show phone test menu

//phone test menu界面点击第七项

M0017BC  12-07 17:02:48.011   476   476 D FACTORY : gr_flip: gr_flip gr_draw->data len: 3, 516 IN

M0017C0  12-07 17:02:48.180   476   476 D sprd_fts:: the pressed key = 7

M0017C1  12-07 17:02:48.180   476   476 D sprd_fts:: press item No = 7

M0017C2  12-07 17:02:48.180   476   476 D sprd_fts:: mmitest TOUCH SELECT_ITEM

//跳转到前置摄像头测试项

M0017D6  12-07 17:02:48.365   476   476 D sprd_fts:: enter function:- 前置摄像头

M0017D7  12-07 17:02:48.365   476   476 D FACTORY : chnl_is_support: AT+CAMERATEST is not supported

M0017D8  12-07 17:02:48.365   476   476 D FACTORY : test_fcamera_start_common: enter front camera test, cameraID= 1

//加载SO库

M0017DA  12-07 17:02:48.370   476   476 D FACTORY : camera_test_init: camera lib:/vendor/lib/hw/camera.ums512.so

M0017F4  12-07 17:02:48.638   476   476 I Cam3Factory: 69, SprdCamera3Factory: boot_mode = factorytest

M001CEF  12-07 17:02:51.171   476   476 D FACTORY : test_camera_start_comm: camera id:1, preview size:(720,960)

SensorHub相关log

pocket mode虚拟sensor所使用的物理sensor为acc,light,proximity,触发条件是手机不在水平位置,psensor处于遮挡状态,且光感值<3.

//注册监听Pocket mode

M02D7C3  10-09 16:35:53.799  4304  4304 D SensorManager: registerListenerImpl sensor = {Sensor name="Pocket mode", vendor="Sprd Group Ltd.", version=1, type=65538, maxRange=10.0, resolution=1.0, power=0.17, minDelay=0}, delayUs = 200000, latencyUs = 0, listener = com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSensorEventListener@5a4a589

M02D7C7  10-09 16:35:53.801  4304  4304 I WifiScanningService: onChange() mPocketModeSwitch = 1

M02D7C9  10-09 16:35:53.805  4304  4304 I WifiScanningService: handlePocketModeChanged() eventValue = 0 mPocketModeSwitch = 1 mInPocketMode = false       

M02D9FA  10-09 16:36:49.983  4304  4304 I WifiScanningService: handlePocketModeChanged() eventValue = 1 mPocketModeSwitch = 1 mInPocketMode = true        //传感器收到启动口袋模式event

M02D9FB  10-09 16:36:49.983  4304  4324 D PocketEventListener:  PocketEventListener onPocketChanged event = 1.0        口袋模式(被遮挡 + 晃动)触发会上报1

S02D9FC  10-09 16:36:49.983  4304  4324 D DisableTouchModeFunc: onStartPocketMode            //启动口袋模式

M02DD10  10-09 16:36:54.888  4304  4511 I WifiScanningService: Current mode is PocketMode

M02EDC8  10-09 16:37:14.889  4304  4511 I WifiScanningService: Current mode is PocketMode

M031099  10-09 16:37:34.889  4304  4511 I WifiScanningService: Current mode is PocketMode

M03324D  10-09 16:37:54.889  4304  4511 I WifiScanningService: Current mode is PocketMode

M034C74  10-09 16:38:14.892  4304  4511 I WifiScanningService: Current mode is PocketMode

M0364EC  10-09 16:38:35.056  4304  4511 I WifiScanningService: Current mode is PocketMode

M037AC2  10-09 16:38:55.059  4304  4511 I WifiScanningService: Current mode is PocketMode

M039BCF  10-09 16:39:15.064  4304  4511 I WifiScanningService: Current mode is PocketMode

M03B246  10-09 16:39:35.066  4304  4511 I WifiScanningService: Current mode is PocketMode

M03CD89  10-09 16:39:55.067  4304  4511 I WifiScanningService: Current mode is PocketMode

M03CDB5  10-09 16:39:56.493  4304  4324 D PocketEventListener:  PocketEventListener onPocketChanged event = 0.0        解除会上报0

M03CDB7  10-09 16:39:56.493  4304  4304 I WifiScanningService: handlePocketModeChanged() eventValue = 0 mPocketModeSwitch = 1 mInPocketMode = false        //传感器收到口袋模式退出的event

S03CDB9  10-09 16:39:56.494  4304  4324 D DisableTouchModeFunc: onStopPocketMode        //停止口袋模式

提到的log是 Android11之后google的log。

另外Android10 和Android11及其之后的口袋模式方案不同。

Android 10的判断口袋模式下scan是不是被关闭的方式有两种:

1、就是Comment1 提到的 log输出:

10-09 16:37:14.889  4304  4511 I WifiScanningService: Current mode is PocketMode

这个log的打印出来就说明的scan不会再下发了。

2、再或者去kernel log里看看。测试这个时段有没有WIFI_CMD_SCAN字符串。

目前这份log上述两个特征随便哪个都符合。所以是起作用的。

M01B8E7  11-26 08:35:34.173   466   990 D SensorHub: SPRD[379]setEnable::handle[58], enabled[1]   //打开距感        

M01B927  11-26 08:35:34.307   466   466 D SensorHub:         data: 5.000000, 0.000000, 19.000000, -nan, 0.000000, 0.000000         timestamp:582982000000   //上报远离

M01BC89  11-26 08:36:00.934   466   466 D SensorHub:         data: 0.000000, 0.000000, 857.000000, -nan, 0.000000, 0.000000         timestamp:609607000000    //上报靠近,

M01C104  11-26 08:36:09.043   466   990 D SensorHub: SPRD[379]setEnable::handle[58], enabled[0]//关闭距感

11640.756:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 1835 th_h 2318,th_l 2214, cali_data_status=0

11725.650:SENSORHUB: proximity_sensor_procces_raw_data: Value=2042, th=2318, tl=2214, prox_status=5.000000

11749.976:SENSORHUB: proximity_sensor_procces_raw_data: Value=2361, th=2318, tl=2214, prox_status=0.000000

cali_data_status=0,表示未校准,而实际这台机器做过校准,说明这台机器之前在使用过程由于底噪与校准时相比,发生了大幅度变化,程序调用动态校准,重新计算了高低门限(2318和2214),舍弃了工厂校准系数(1828和1820),所以现在实际接近和远离距离与校准的3cm/5cm距离不一样

若确定eProxCaliArray中的静态校准参数配置合理,可以使用动态加载,添加校准算法来规避

stk3a5x测试机log\ap\000-0315_142509--0315_142948

10462.491:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 925 th_h 1452,th_l 1154, cali_data_status=2

10492.316:SENSORHUB: proximity_sensor_procces_raw_data: Value=1143, th=1452, tl=1154, prox_status=5.000000

10499.601:SENSORHUB: proximity_sensor_procces_raw_data: Value=1554, th=1452, tl=1154, prox_status=0.000000

cali_data_status=2,表示工厂手动校准,高低门限还是工厂校准时值

》第一次打开psensor

258.652:SENSORHUB: proximity_sensor_enable: enable sensor successed!

258.652:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0

258.653:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0

258.653:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0

258.653:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 0 th_h 483,th_l 379, cali_data_status=0

258.677:SENSORHUB: proximity_sensor_procces_raw_data: Value=0, th=483, tl=379, prox_status=5.000000

258.778:SENSORHUB: proximity_sensor_procces_raw_data: Value=2433, th=483, tl=379, prox_status=0.000000

从log看,第一次打开psensor出现raw data为0,动态校准计算的高低门限分别为th_h 483,th_l 379,等数据稳定后,底噪在2000多,当前阈值明显不合理。

》第二次打开psensor

290.384:SENSORHUB: proximity_sensor_enable: enable sensor successed!

290.384:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397

290.385:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397

290.385:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397

290.385:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 2397 th_h 2880,th_l 2776, cali_data_status=0

第二次打开psensor,数据基本稳定,动态校准算法计算的高低门限也合理,所以之后功能正常

请问贵司这颗sensor有配置eCmdGetStatusArray吗?若没配置,请配置上;若配置上后,依然有该问题,可以在setrate数组中设置丢帧,如:

static struct iic_unit eCmdSetRateArray[] = {

……

//在数组最后配置,丢4笔数据,延迟50ms

  {

    .operate = 0x04, .addr = 0x00, .val = 0x04, .mask = 0x32,     

  },        

};

Line 4376: 01117 <6> [   11.062692][03-31 15:59:55.062] sprd-sensor sprd-sensorhub: sensor_id=8 file_path=/mnt/vendor/productinfo/sensor_calibration_data/proximity

Line 4377: 01118 <6> [   11.062800][03-31 15:59:55.062] sprd-sensor sprd-sensorhub: cal_file_size=30

Line 4378: 01119 <6> [   11.063183][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[0]=0

Line 4379: 0111A <6> [   11.063191][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[1]=0

Line 4380: 0111B <6> [   11.063198][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[2]=0

Line 4381: 0111C <6> [   11.063204][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[3]=0

Line 4382: 0111D <6> [   11.063214][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[4]=170

Line 4383: 0111E <6> [   11.063220][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[5]=8

Line 4384: 0111F <6> [   11.063226][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[6]=0

Line 4385: 01120 <6> [   11.063232][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[7]=0

Line 4386: 01121 <6> [   11.063239][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[8]=185

Line 4387: 01122 <6> [   11.063248][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[9]=8

Line 4388: 01123 <6> [   11.063255][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[10]=0

Line 4389: 01124 <6> [   11.063261][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[11]=0

Line 4390: 01125 <6> [   11.063267][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[12]=6

Line 4391: 01126 <6> [   11.063273][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[13]=0

Line 4392: 01127 <6> [   11.063279][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[14]=0

Line 4393: 01128 <6> [   11.063288][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[15]=0

从以上log看,nv中保存的校准系数:

th_h:2218 ——3cm

th_l:2233 ——5cm

cali_flag:6 ——手动校准

1)这里th_h < th_l,不对。psensor校准部分,平台代码的标准是当th_h < th_l校准失败,不会保存校准系数,但贵司出现该情况,却保存了,请检查shub_core.c驱动;

2)由于th_h < th_l,开机下载校准参数时,不符合cm4代码要求,所以将校准状态标志位置0,即cm4侧以无工厂校准处理;

11.069:SENSORHUB: proximity_sensor_get_factory_cali_data: ps_threshold_high = 2218 ps_threshold_low = 2233 ground_noise = 0 cali_data_status = 0x0

3)由于cali_data_status = 0,即无工厂校准,故刚打开psensor时sensorhub调用动态校准算法;

psensor校准标准:

bsp/kernel/kernel4.14/drivers/iio/sprd_hub/shub_core.c

1036  static int check_proximity_cali_data(void *cali_data)

1037  {

1050  /* prox sensor factory auto calibration */

1051          if ((prox_cali.cali_flag & 0x01) == 0x01 &&

1052                  prox_cali.ground_noise < PROX_SENSOR_MIN_VALUE) {

1053                  dev_err(&sensor->sensor_pdev->dev,

1054                          "prox sensor auto cali out of minrange failed!\n");

1055                  return CALIB_STATUS_OUT_OF_MINRANGE;

1056          }

1057 

1058  /* prox sensor factory manual calibration */

1059          if ((prox_cali.cali_flag & 0x06) == 0x06 &&

1060                  prox_cali.high_threshold < prox_cali.low_threshold) {

1061                  dev_err(&sensor->sensor_pdev->dev,

1062                          "prox sensor cali failed! the high_thrd < low_thrd!\n");

1063                  return -EINVAL;

1064          }

1065 

1066          return 0;

1067  }

后面的距感上报的Value值很小,Value<tl,所以报的是远离

186.442:SENSORHUB: proximity_sensor_procces_raw_data: Value=8, th=125, tl=75, prox_status=5.000000

201.619:SENSORHUB: proximity_sensor_procces_raw_data: Value=0, th=125, tl=75, prox_status=5.000000

从反馈的log看,通话中Psensor可以正常响应,AP侧有部分HAL层log没有抓取到,请帮忙再抓取一份ylog

操作如下:

如果需要在HALlog中打印出Sensor上报事件详细数据log,在adb shell(root模式)下:echo “4 2” > /d/sensor/logctl。然后拨打电话复现问题,并提供ylog,谢谢

提供的log分析如下:

SP侧Psensor有频繁的接近远离响应 -> prox status = 0(接近)/5(远离)

654.128:SHUB: proximity_sensor_procces_raw_data: Value=59, th=120, tl=105, prox_status=5.000000

655.458:SHUB: proximity_sensor_procces_raw_data: Value=226, th=120, tl=105, prox_status=0.000000

655.720:SHUB: proximity_sensor_procces_raw_data: Value=61, th=120, tl=105, prox_status=5.000000

658.257:SHUB: proximity_sensor_procces_raw_data: Value=230, th=120, tl=105, prox_status=0.000000

ap侧

16:43:11.106  2564  2564 I ImsExternalCallTracker: onPhoneStateChanged : hasActiveCalls = true ---电话拨入

16:43:11.106  2564  2564 D ImsExternalCallTracker: refreshCallPullState

16:43:11.112   968  1131 D SensorManager: registerListenerImpl sensor = {Sensor name="Proximity Sensor",  ---打开psensor

16:43:11.112 SensorHub: SPRD[450]batch::handle[58], flags[0], period_ns[200000000], timeout[0]  ---sensorHUB中打开psensor

16:43:11.112 SensorHub: SPRD[379]setEnable::handle[58], enabled[1]

16:43:11.447   968  1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false ---dispaly接受到psensornear/far的状态

16:43:18.416   968  1131 D DisplayPowerController: Proximity Sensor changed distance= 0.0 positive= true

16:43:18.759   968  1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false

16:43:19.907   968  1131 D DisplayPowerController: Proximity Sensor changed distance= 0.0 positive= true

16:43:20.310   968  1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false

如果想查看Psensor的实时数据,贵司可以通过cat d/sensor/raw_data_ps 读取该值,也可从代码方面,打开 d/sensor/raw_data_ps 文件节点并不断进行读操作来获取该值

请清除旧Log,抓取复现问题的Log,测试前请输入以下命令打开sensor Log
adb root
adb shell
echo 4 2 > d/sensor/logctl
echo 4 2 > sys/class/sprd_sensorhub/sensor_hub/logctl

PS:
//检查sensorhub Log是否打开
cplogctl state pmsh
on → 开始;off → 关闭
//打开sensorhub Log
cplogctl enable pmsh

高门限是3cm遮挡距离传感器获取的值,低门限是5cm遮挡距离传感器获取的值。高于高门限则判断为靠近,低于低门限则判断为远离。

framework层的SensorService的管理策略是:
第一个应用注册监听了距离传感器,此时会使能距离传感器,第二个应用监听距感,将不会再去使能了... 最后一个监听距感的应用不监听距感了,才会关闭距感。

另外SensorService会将收到的距感数据分给每个监听距感的应用。

驱动相关log

开始加载驱动

007D5 <14> [    1.144811] c2[01-01 00:00:00.144] init: init first stage started!

//synaptics_td4320_spi_ts的加载顺序要优于synaptics_dsx_td4310

00F91 <3> [    4.658505] c6[01-01 00:00:03.658] >>>>>>>>>>>syna_tcm_module_init: synaptics td4320 init start!<<<<<<<<<<<

00F92 <3> [    4.658928] c6[01-01 00:00:03.658] syna_tcm_module_init: platform_driver_register success with: 0

00F93 <3> [    4.658936] c6[01-01 00:00:03.658] >>>>>>>>>>>syna_tcm_module_init: synaptics td4320 init success!<<<<<<<<<<<

00F94 <7> [    4.658985] c6[01-01 00:00:03.658] initcall init_module+0x0/0x1000 [synaptics_td4320_spi_ts] returned 0 after 427 usecs

00F95 <14> [    4.659237] c6[01-01 00:00:03.659] modprobe: Loaded kernel module /vendor/lib/modules/synaptics_td4320_spi_ts.ko

00F96 <14> [    4.659553] c6[01-01 00:00:03.659] modprobe: Loading module /vendor/lib/modules/synaptics_dsx_td4310.ko with args ''

00F97 <7> [    4.672013] c6[01-01 00:00:03.672] calling  init_module+0x0/0x1000 [synaptics_dsx_td4310] @ 241

sysrq: SysRq : Power Off 应该是cp侧请求关机的

init: Received sys.powerctl='reboot,userrequested' from pid: 703 (system_server)
这个是正常上层长按power按键选择重启会有上面打印

注意:wm_on_xxx_called的应用端events日志都是在相应的onXxx执行完之后才会打印。

       wm_on_create_called                                              onCreate

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值