- 博客(100)
- 资源 (12)
- 收藏
- 关注
原创 Android学习博客链接
查看源代码Android Studio导入Android源码AndroidStudio加载有git的项目很卡顿耗时很长需要把 <excludeFolder url="file://$MODULE_DIR$/.repo" />加入到android.iml不然加载会卡死调试Android源码AndroidXRef在线看Android系统源码kernel......
2018-06-28 09:28:02 827
原创 Vsync信号
5.VSYNC-sf用于控制SF合成Layer的节奏,可以理解为sf对应的DispSyncSource发出的sync信号,再触发EventThread的回调并转换成事件写入写端,最后触发读端的回调MessageQueuecb_eventReceiver(),SF开始合成显示图层。HW_VSYNC_ON代表是SF这边sw_vsync不准了(不准的原因是底层的presentfence不准了),需要通过hw_vsync来校准,HW_VSYNC代表硬件的刷新率。...
2022-07-28 10:34:40 1352
原创 layout NavigationBar,layoutStatusBar
在PhoneWindowManager的beginLayoutLw完成了Input,NavigationBar,StatusBar,DecorWindow的布局绘制,如果需要针对其他屏有这部分的定制化需求,可在这边修改。
2021-12-20 20:05:49 215
原创 ART DumpNativeStack
native: #00 pc 00000000003c1684 /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220) native: #01 pc 000000000048e...
2021-08-04 10:08:24 812
原创 Input事件window paused timeout导致ANR问题整理
Input事件window paused timeout导致ANR问题整理最近几个项目多次出现如下类型的ANR,需要重点关注分析一下此类问题Activity: com.android.systemui/.settings.BrightnessDialogSubject: Input dispatching timed out (Waiting because the touched window is paused.)分析多份log,基本都是这个Activity发生的ANR,发生场景相同,可归为
2021-08-04 09:14:41 1191 1
原创 跟踪创建流程
跟踪创建流程ActivityDisplay.createStack --> ActivityDisplay.createStackUnchecked --> ActivityStack.<init> --> ActivityStack.setWindowingMode --> ConfigurationContainer.setWindowingMode --> ActivityStack.onConfigurationChanged --> Activi
2021-08-04 09:01:29 421
原创 systemserver binder线程耗尽问题分析及优化方案
systemserver binder线程耗尽问题分析及优化方案一、问题场景描述 Systemserver作为系统核心进程,它提供了大量的binder服务,响应大量客户端binder请求,同时也会作为客户端,访问其它进程,如果systemserver有大量请求同时发出或者systemserver同时响应大量请求,并且处理请求的进程又遇到某些原因block住,这样长时间block,就会导致SWT发生。下面描述几个典型场景。场景1:场景描述: 整个流程就是进程A,例如com.med...
2021-08-04 08:59:55 2812
原创 动画(WindowState)销毁流程
动画(WindowState)销毁流程:new LocalAnimationAdapter()//新建一个动画适配器-->SurfaceAnimator.onAnimationFinished()-->回调-->AppWindowToken.onAnimationFinished() //动画结束,这里会判断Animation是否还存在,在的话就deleay做done操作,判断条件isSelfAnimating()-->WindowState.onExitAnimatio
2021-08-04 08:57:50 370
原创 PKMS分析
开机应用扫描PkMS构造方法-->scanDirTracedLI()-->scanDirLI{1.遍历目录下的所有文件2.获得ParallelPackageParser.ParseResult,parseResult.pkg}-->scanPackageChildLI--->addForInitLI{}-->--->scanPackageOnlyLI{1.pkgSetting相关变量赋值 Settings创建createNewSetting或者更新updat
2021-07-08 17:29:24 386
原创 systemui 重启失败导致keygurd为true 导致的ANR
systemui被杀后重启,从启动进程到attachApplicationLocked超过10s 执行processStartTimedOutLocked 导致再次被杀,由于没有执行到attach,不会死亡回调不再重启03-12 17:33:11.113265 1235 1405 I am_kill : [0,4610,com.android.systemui,-800,Too many Binders sent to SYSTEM]03-12 17:33:11.357911 1235...
2021-04-16 10:18:11 644
原创 Event log的各 TAG流程分析
Event log中有很多TAG通过他们可以分析一些运行是耗时在哪个区间。在终端打印adb shell -b events ,Event log常见的启动应用打印log:R版本正常一个应用冷启动的创建流程:wm_task_created--》wm_stack_created--》wm_create_task--》wm_create_activity--》am_proc_start--》am_proc_bound--》wm_restart_activity--》wm_set_resumed_act.
2021-03-10 16:33:14 8485 2
原创 SystemUI 连续ANR导致的黑屏问题
存在几个SystemUI启动失败导致的黑屏问题问题1:Q项目systemui先NE后ANR,anr的时候杀了刚起的systemui,导致systemui没有启动//先发生NE12-17 13:35:35.559 13579 13579 F DEBUG : pid: 4265, tid: 4265, name:ndroid.systemui >>> com.android.systemui <<<//后发生ANR12-17 13:35:51.417 13...
2021-02-05 16:23:30 992 1
原创 Monkey inputmethod ANR
Monkey中出现了一个ANRdumpsys window中mCurrentFocus=Window{2fd4f04 u0 com.google.android.inputmethod.latin}mFocusedApp=ActivityRecord{f2c78bf u0 com.android.settings/.Settings$RunningServicesActivity t7015}但是dumpsys SurfaceFlinger中没有对应的Layer。后面找到了一个复现路径:应用进
2021-02-04 11:40:14 223
原创 performSurfacePlacement和updateFocusedWindow流程
正常的流程应用的onResume调用完成之后会在eventlog中打印wm_on_resume_called,然后界面进行Relayout Window其中包含了performSurfacePlacement刷新界面和更新焦点updateFocusedWindow(会从top到bottom遍历canReciveKey为true的界面),将焦点切换到新的上面,此时WMS的windowstate已经获取了焦点,将window state状态往surfaceFlinger传递,在surfaceFlinger中传入
2020-12-21 14:17:19 2510 1
原创 一个界面的启动
上一个界面pause之后然后makeInvisible 那么focus window 变为null,等待下一个界面的起来,将焦点切过去。11-13 14:19:54.871 2681 2681 I wm_on_paused_called: [24382114,com.android.quickstep.recents_ui_overrides.src.com.android.launcher3.uioverrides.QuickstepLauncher,performPause]11-13 14..
2020-11-13 14:41:41 867
原创 手机静置后power键无法点亮屏幕,充电有震动反馈
07-24 10:41:40.665 1221 1434 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)...07-24 10:41:40.667 1221 1271 I DisplayPowerController: Blocking screen on until initial contents hav.
2020-09-27 17:51:03 754
原创 从QuickstepLauncher启动Settings的focus切换
打开WMS log:adb shell dumpsys window -d enable aadb logcat |grep -Ei "Looking for focus|findFocusedWindow: Found new focus|Changing focus from|No focusable window|Relayout of Window|Gaining focus|Focus entered window"从QuickstepLauncher启动Settings的focus切换..
2020-09-24 16:46:15 1043
原创 R项目手势导航操作出现No focusable windows
ANR no focus windowlog输出09-22 23:46:03.075 1758 3460 I WindowManager: activity:ActivityRecord{46ce519 u0 com.xxxx.launcher/com.android.quickstep.recents_ui_overrides.src.com.android.launcher3.uioverrides.QuickstepLauncher t18997} focusedApp:ActivityR...
2020-09-23 19:27:56 894 2
原创 no focused window ANR
R项目上面的出现了no focused window的ANR09-09 17:49:58.482 1164 1347 W InputDispatcher: Waiting because no window has focus but ActivityRecord{94be3e0 u0 com.android.settings/.SubSettings t50} may eventually add a window when it finishes starting up. Will wait f.
2020-09-17 17:02:29 8927 2
原创 Keyguard drawn timeout
有时log中会出现keyguard 1S超时的log08-05 22:09:48.397957 1109 1184 W WindowManager: Keyguard drawn timeout. Setting mKeyguardDrawComplete//framework部分代码流程PhoneWindowManager.screenTurningOn{mKeyguardDelegate.onScreenTurningOn(mKeyguardDrawnCallback);}--->.
2020-08-07 15:57:41 554
原创 Notification通知流程和SurfaceFlinger知识点学习
Notification通知大致流程App应用层:NotificationManager.notify–>NotificationManager.notifyAsUser()–>INotificationManager.enqueueNotificationWithTag()Framewrok框架中远程server进程:NotificationManagerService.enqueueNotificationWithTag()//将相关信息添加到StatusBarNoti
2020-08-03 14:48:41 561
原创 锁屏十秒超时,锁屏界面退出动画流程,FLAG_KEEP_SCREEN_ON亮屏
锁屏界面十秒超时/frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.javahandleNotObscuredLocked { mUserActivityTimeout = w.mAttrs.userActivityTimeout;}->SystemUIKeyguardVie...
2020-04-26 10:39:24 974 1
原创 Monkey测试中卡在开机阶段的问题
1.正常情况下,当手机非第一次重启,kernel的hang_monitor 会正常启动:2. 当手机发生FWR后,由于kernel会正常执行,所以hang_detect的机制理论上会正常工作;// hang_detect的工作机制流程kernel-3.18/drivers/misc/mediatek/aee/aed/monitor_hang.c以上是在Monkey测试中发现一例卡在...
2020-02-14 10:42:20 421
原创 kernel相关知识
为什么需要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v加1原子操作比普通操作效率要低,因此必要时才使用,且不能与普通操作混合使用如果是单核处理器,则原子操作与普通操作相同(2)自旋锁sp...
2020-02-14 10:33:43 383
原创 AutoBrightness亮度曲线的生成
AutomaticBrightnessController.configure(.... mLastUserSetScreenBrightness / (float) PowerManager.BRIGHTNESS_ON,...){ if (userChangedBrightness && enable) { // Update t...
2019-12-05 19:34:45 933
原创 Display brightness和state设置
DisplayPowerController.updatePowerstate--- >DisplayPowerController.animateScreenBrightness -->RampAnimator.animateTo -->///DisplayPowerState.setScreenBrightness{ mScreenBrightness =...
2019-11-27 16:43:45 3106
原创 Mark 一些调试快捷方法
while true; do adb shell dumpsys display |grep -Ei "mAmbientLightRingBuffer|mAmbientLux|mScreenAutoBrightness"; sleep 1; done隔一秒一直循环打印sleep 1 睡眠1秒sleep 1s 睡眠1秒sleep 1m 睡眠1分sleep 1h ...
2019-11-25 15:19:49 506
原创 Input 输入事件防止屏幕睡眠流程
adb shell getevent 收到了输入事件/dev/input/event3: 0003 0039 00000646/dev/input/event3: 0003 0035 00000177/dev/input/event3: 0003 0036 00000098/dev/input/event3: 0001 014a 00000001/dev/input/event3: 00...
2019-11-04 10:56:10 1091
原创 Performed 6 layouts in a row. Skipping
调用流程如下:/frameworks/base/services/core/java/com/android/server/wm/WindowSurfacePlacer.javaperformSurfacePlacement -> performSurfacePlacementLoop -> isLayoutNeeded -> requestTraversal -> ...
2019-11-01 16:17:05 1081
原创 ftrace的一些操作方法
以MTK为例aee 只是单纯拷贝 /sys/kernel/debug/tracing/trace copy_file(aee_dir, "SYS_FTRACE", "/sys/kernel/debug/tracing/trace");/sys/kernel/debug/tracing/tracing_on 写入 1 or 0 , 也就是开关 trace 动作/sys/kerne...
2019-09-03 15:10:32 859
原创 Waiting for drawn Window耗时过长流程梳理
存在一个问题:负载指纹响应时间衰退达到1秒多,从log中看Waiting for drawn Window 耗时太长Line 3204: 08-14 14:44:45.929433 1100 5600 I PowerManagerService: Waking up from sleep (uid=10028 reason=android.policy:FINGERPRINT)......
2019-08-19 11:35:37 4032 1
原创 ViewRootImpl.setView之后的relayout流程
对接https://blog.csdn.net/chi_wy/article/details/89187791中的部分继续跟一下代码wm是ViewManager,ViewManager是个接口,而WindowManager继承了ViewManager,WindowManagerImpl实现了WindowManagerActivityThead.handleResumeActivity--...
2019-08-16 16:42:28 1331
原创 应用NE导致进程变为T状态出现了ANR
Activity: com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivitySubject: Input dispatching timed out (Waiting to send key event because the focused window has not finished processing ...
2019-08-16 10:00:48 806
原创 InputDispatcher 消息窗口传递过程
InputDispatcher.InputDispatcherThread::threadLoop--->dispatchOnce--->dispatchOnceInnerLocked--->EventEntry::TYPE_MOTION--->dispatchMotionLocked--->findTouchedWindowTargetsLocke...
2019-08-13 16:02:41 1032
spring API
2010-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人