去除恢复出厂设置中UI文字显示


需求

需求:去除恢复出厂设置中UI文字显示

场景

Android 相关产品各种方向旋转、强制横竖屏等需求,导致在恢复出厂设置中,部分文字没有显示正常,方向显示异常了。 比如如下图所示:
在这里插入图片描述

一、代码跟踪与分析

既然文字显示出来了,那我们根据文字显示找出具体位置然后屏蔽不就完了呀。

在线文字搜索

Android12在线源码搜索关键字 清除中
在这里插入图片描述

RK平台本地源码搜索

在这里插入图片描述

实际测试验证

无论在线还是本地源码搜索,关键字位置是同一个问题,其中可以看出来 app 位置的肯定不是,因为恢复出厂设置情况下,理论上不会有app 还在运行的,最大可能是 “清除中”

实际测试验证,上面三个地方 通过添加tag,比如111清除中 、222清除中 编译烧录固件发现都不是,并没有按照添加的tag 显示,还是显示 清除中。

代码推理

恢复出厂设置过程中,系统流程肯定在 /bootable/recovery/ 中,在线源码如下:
recovery
在这里插入图片描述

继续看看这个目录相关代码,文件结构,资源文件,如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这个不就是动画和资源文件吗? 难道在recovery 中,通过图片里面取文字???

继续反推通过图片找具体位置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

思路其实就是通过反向不断推理,在源码里面找,通过文件名、方法名和注释找到核心代码,最终实现功能。

二、实现方案

通过上面反向推理,最终实现方案,通过屏蔽即可:


修改点:draw_background_locked 方法,绘制Surface 时候,屏蔽掉绘制DrawTextIcon 相关内容

      //const auto& text_surface = GetCurrentText();
     //int text_x = (ScreenWidth() - gr_get_width(text_surface)) / 2;
     //int text_y = GetTextBaseline();
     //gr_color(255, 255, 255, 255);
     //DrawTextIcon(text_x, text_y, text_surface);

三、延伸知识

当前场景下需要去除文字显示,对于部分产品可能需要更改文字,这个时候可以参考网上介绍内容处理,更新图片等。

四、知识总结

  • /bootable/recovery 模块资源加载方式,映射到小系统对当前界面实现方式
  • 替换、隐藏文案是实现方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ItJavawfc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值