【Android】工厂模式中 字体大小/显示重叠/显示不完整 相关 问题分析与解决(Android14)

1-Factory Mode是什么?

在Android手机中,Factory Mode(工厂模式)是一种隐藏的系统调试模式,通常用于手机制造商或技术人员进行设备测试、调试和校准。
Factory Mode 提供了一系列的测试和校准选项,用来检查手机硬件功能是否正常、进行软件版本信息查看、执行一些特殊的测试操作等。
一般情况下,Factory Mode 是通过特殊的按键组合或者拨号码来进入的,而且通常是被隐藏起来的,普通用户不太容易访问到。
在 Factory Mode 中,用户可以进行一些高级的测试和设置,比如检查手机的传感器、显示屏、触摸屏、音频、摄像头等硬件功能是否正常,
或者执行一些软件测试,如刷机、清除缓存等操作。
需要注意的是,在 Factory Mode 中进行操作可能会对手机造成一些影响,因此普通用户最好不要随意进入 Factory Mode 进行操作。

2-Factory Mode的显示界面

Factory Mode(工厂模式)的显示界面通常十分简洁,简单的列表,文字,方便测试人员直接测试,但是由于不同项目、不同机器的原因,
工厂模式的界面中的字体大小需要适配不同的屏幕分辨率。当发现工厂模式中,字体大小异常,有文字重叠现象,或是导致文字显示不完整 
都可能与之字体尺寸(字符宽高)不适配 有关。

3-找到factory模块中对应设置字体尺寸的代码

在Android源码中,由于不同供应商的工厂模式需求各方面不一样,代码可能有各种差异。
但是对于工厂模式中 文本的 字体尺寸 的适配 调整 应当在下面路径对于文件

  • \vendor\供应商名称\proprietary\custom\项目名称\factory\inc\cust_font.h
    如图:在这里插入图片描述
    但是要注意:

一来在\proprietary\custom\是否有多个项目,要选择所编译的版本对应的项目。
二来在cust_font.h中有多个屏幕分辨率的适配的字体尺寸,要找到正确有效的位置来修改

4-分析与修改代码

酱紫,我第一时间也不知道具体修改哪个位置的 字符宽高 (CHAR_WIDTH、 CHAR_HEIGHT)
即不知道满足哪一个FEATURE_FTM_FONT_XX或者某一个条件,也不知道这些个条件对应的屏幕分辨率是多少
也就是说我无法一一将适配的参数对上,来修改,但是我需要定位到正确有效的位置。
此时有两个思路:

  • 参考其他项目这个板块是否有相似修改,如何修改(前提是机器得是同一屏幕分辨率)(很明显我没找到暂时)
  • 那么直接暴力排除法也肯定很费时,所以直接在每个条件语句内增加报错(修改代码使之有语法或逻辑错误)
    比如:我这样:
    在这里插入图片描述
    这样修改的前提是,你也得确定这个代码文件是被编译进去了的,如果不确定,只需随便在代码开头增加一个报错验证即可。
    这样修改后,保存,编译,报错如下:
    在这里插入图片描述
    很明显可见就是第54行代码走入报错了,走入的54行代码所处的条件即是该项目屏幕分辨率与字体尺寸所适配的条件。
    然后进入下一步:修改条件内的 字符宽高
    如下:
    在这里插入图片描述
    然后保存,编译,验证效果,
    如果修改后的字体大小跟预期还是有一定出入,可以再进行调整。

Tips

至此,大致解决了,但是过程中有一些需要注意,也需要记录的:
1:查看屏幕物理尺寸:(使用adb命令在终端,前提是adb root 、adb devices 是没问题的)
例如:在这里插入图片描述
2:进入工厂模式的方式:在我修改的这个平台项目上是 在关机的时候,同时长按电源键与另一个键 来进入。
不同的供应商或不同项目可能这个方式与按键略有不同。
3:在分析思路上就是要多对比,找最直接有效的方式尝试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值