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

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

    • 1-Factory Mode是什么?
    • 2-Factory Mode的显示界面
    • 3-找到factory模块中对应设置字体尺寸的代码
    • 4-分析与修改代码
  • Tips

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:在分析思路上就是要多对比,找最直接有效的方式尝试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535717.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript(五)交叉类型,联合类型,映射类型

交叉类型 交叉类型是将多个类型合并为一个类型。可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。使用符号 & 表示。交叉类型 A & B 表示,任何一个新类型必须同时属于 A 和 B,才属于交叉类型 A & B …

金和OA jc6 viewConTemplate.action RCE漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率…

【Linux/OS学习】基础文件控制/IO——内存文件

文章目录 一、 基础文件控制1.1 系统接口open函数1.2 Linux中文件描述符1.2 C语言FILE中的文件描述符 二、重定向1. 输出重定向2. 追加重定向3. 输入重定向 tips:fd的分配规则 一个文件要有一个唯一的文件标识,以便用户识别和引用。 文件名包含3部分:文件…

基于springboot+vue的电子商务系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 各种购物网站现在已经成了生活中不可缺少的调味品,比如比较全面的淘宝网,还有可以进行交流问答的小红书APP,还有电脑爱好者者们的天堂京东商城等等。拥有一个功能丰富、操作方便的电子商务销售网站,可以汇…

十二:多线程服务端实现

1 理解线程 1.1 引入线程背景 多进程模型有如下缺陷: 创建进程的过程会带来一定的开销。为了完成进程间的数据交换,需要特殊的IPC技术每秒少则数十次,多则数千次的‘上下文切换’是创建进程时最大的开销 运行程序前需要将相应进程信息读入…

Python实战:采集全国5A景点名单

本文将以采集全国 5A 景点名单为例,详细介绍如何使用 Python 进行数据采集。 本文采集到全国340家5A景区的名单,包括景区名称、地区、 A级、评定年份这些字段。 一、分析数据源 为了获取权威数据,我们来到主管部门的官方网站,在右…

学生打架校园防霸凌系统可以监测到吗

随着社会的进步和教育的发展,校园安全问题日益受到社会各界的关注。其中,学生打架和校园霸凌问题尤为突出,不仅影响了学生的身心健康,也破坏了校园的和谐氛围。为了有效预防和应对这些问题,许多学校开始引入校园防霸凌…

origin修改图例为显示”长名称/单位/注释/自定义“等

背景 由于在origin作图时希望修改自动显示的图例,但每次手动更新又比较繁琐(特别是在数据量较多的情况下),为了一劳永逸 步骤 1. 在数据工作表中设置好需要修改后的名称(我写到长名称里了) 2. 修改图例的…

【原创】[新增]ARCGIS之土地报备Txt、征地Xls格式批量导出Por旗舰版

一、软件简介 2024年新增旗舰版软件,本软件全新界面开发,保留原有软件功能及一些使用习惯,并集成了现已有的所有定制格式的支持,并增加自定义格式的导出;做到1N2(即为1种通用版本N种定制格式导出txt、Xls&a…

C++ 作业 24/3/13

1、设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespace std;c…

IU5070E线性单节锂电池充电管理IC

IU5070E是一款具有太阳能板最大功率点跟踪MPPT功能&#xff0c;单节锂离子电池线性充电器&#xff0c;最高支持1.5A的充电电流&#xff0c;支持非稳压适配器。同时输入电流限制精度和启动序列使得这款芯片能够符合USB-IF涌入电流规范。 IU5070E具有动态电源路径管理(DPPM)功能&…

数据库管理-第160期 Oracle Vector DB AI-11(20240312)

数据库管理160期 2024-03-12 数据库管理-第160期 Oracle Vector DB & AI-11&#xff08;20240312&#xff09;1 向量的函数操作to_vector()将vector转换为标准值vector_norm()vector_dimension_count()vector_dimension_format() 2 将向量转换为字符串或CLOBvector_seriali…