项目名称: 基于AOSP的某终端设备系统层Bug修复与交互体验优化
项目描述:
负责该系统版本中SystemUI与Settings模块的日常缺陷修复,重点解决UI显示异常、硬件外设按键响应逻辑错误及系统设置功能冗余问题。
典型难点与解决动作:
锁屏UI元素适配异常(Lock Screen): 锁屏界面的品牌Logo与底部快捷启动栏(Bottom Line)在特定分辨率下发生位置重叠。通过分析KeyguardSecuredView及StatusBarWindowView的布局测量(onMeasure)与位置计算逻辑,发现底部空间计算未纳入导航栏高度动态变化。通过重构updateLayoutParams中的底部margin计算规则,并将Logo锚点强制修正至锁屏上方安全区域,解决了因底部空间不足导致的图标错位问题。
物理按键交互逻辑缺陷(耳机线控/侧键): 耳机线控按键在快速按压时无法正确区分“单次按压接听”与“快速按压保持通话(Hold)”的功能边界。深入排查InputManagerService与MediaSessionManager的事件分发链路,修正了KeyEvent中ACTION_DOWN与ACTION_UP时间窗口阈值(multiClickTimeout)的默认配置,将第2点“快速按压保持”功能通过修改PhoneWindowManager中的长按触发条件成功实现,同时确认并保留了第1点和第3点的默认出厂支持。
系统设置功能开关的冲突清理: 针对“通知到达时唤醒屏幕”及“通话接通/挂断振动”的开关需求,对Settings菜单项进行了产品定义梳理。针对“夜间模式唤醒屏幕”:经底层源码排查,确认当前硬件平台不支持该特性,通过删除config.xml及dashboard_visibility.xml中的对应菜单项彻底移除该冗余选项,避免用户误触导致异常。针对“通话振动”:在InCallServiceImpl及PhoneStateListener中增加了振动触发钩子,并在SettingsProvider中新增vibrate_on_call_connect的默认值开关,确保通话接通与挂断瞬间精准触发VibratorService振动。