CN107229470B - 一种系统字体切换方法、移动终端以及计算机可读存储介质 - Google Patents
一种系统字体切换方法、移动终端以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107229470B CN107229470B CN201710374268.5A CN201710374268A CN107229470B CN 107229470 B CN107229470 B CN 107229470B CN 201710374268 A CN201710374268 A CN 201710374268A CN 107229470 B CN107229470 B CN 107229470B
- Authority
- CN
- China
- Prior art keywords
- font
- mobile terminal
- application process
- switching
- switched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Telephone Function (AREA)
Abstract
本发明公开了一种系统字体切换方法,检测到对系统字体进行切换的切换指令;通知各应用进程卸载来自受精卵的字体资源;在各应用进程内重新加载待切换的字体资源,并刷新绘制;根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示。本发明还公开了一种移动终端和计算机可读存储介质,解决了相关技术中系统字体切换后需求重启才能生效的问题,在接收到系统字体切换指令后通过卸载来自受精卵的字体资源,重新加载新的字体资源,不用重启系统便可生效,提高了用户体验。
Description
技术领域
本发明涉及移动通信技术领域,尤其涉及一种系统字体切换方法、移动终端以及计算机可读存储介质。
背景技术
随着互联网的发展和终端的普及,终端的用户群越来越大,同时也对软件提出了更多智能,人性化的需求。
在现有的技术中,其实终端,虽然被用户作为一个游戏机或电视机,还可能是一个学习机,还可能成为小宝宝的乐园等等,给我们的生活带来更多的乐趣。随着通讯产品的更新换代,移动终端(例如手机、个人数字化助理PDA等)已成为人们必备的通讯工具。各种方便人们生活的功能都能在移动终端上实现,例如手机电视、GPS、移动支付等等,都需要移动终端接入到互联网才能实现。
随着电子产业的快速发展,移动终端智能化程度越来越高。移动终端研发公司也越来越注重智能化,人性化设计。在此移动终端快速发展的背景下,终端的便捷操作和人性化设计成为移动终端不可忽视的一部分。
Android手机用户群体中存在大量的需求,这其中就有许多用户希望可以整体切换手机系统的字体,获得更丰富的视觉体验。
目前已有的系统字体切换方法,基本思路都是直接或间接替换系统中的字体font.ttf文件来实现的。由于系统字体资源早在开机初始化时就已预先加载完毕至Zygote孵化器进程,各个应用进程都从Zygote进程分裂而来,使用的是开机初始化时加载的字体,因此,替换了字体文件font.ttf后并不会立即生效,必须重启系统。
针对相关技术中系统字体切换后需求重启才能生效的问题,目前尚未提出解决方案。
发明内容
本发明的主要目的在于提出一种系统字体切换方法、移动终端以及计算机可读存储介质,旨在解决相关技术中系统字体切换后需求重启才能生效的问题。
为实现上述目的,本发明实施例提出一种系统字体切换方法,包括:
检测到对系统字体进行切换的切换指令;
通知各应用进程卸载来自受精卵的字体资源;
在各应用进程内重新加载待切换的字体资源,并刷新绘制;
根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示。
优选地,在通知各应用进程卸载来自受精卵的字体资源之前,所述方法还包括:
在配置中增加代表系统字体发生改变的信息项;
将所述信息项写入扩展后的配置类对象新配置新配置中。
优选地,通知各应用进程卸载来自受精卵的字体资源包括:
将所述新配置作为参数传入服务端对象;
通过所述服务端对象通知各应用进程卸载来自受精卵的字体资源。
优选地,在将所述新配置作为参数通过服务端对象传入各应用进程之后,所述方法还包括:
各应用进程收到新的所述新配置后解析与待切换的系统字体对应的参数,确定存在待切换的系统字体对应的参数。
优选地,在通知各应用进程卸载来自受精卵的字体资源之后,所述方法还包括:
通过各应用进程通知对应的资源管理器,卸载当前应用进程中的字体资源。
优选地,在各应用进程内重新加载待切换的字体资源,并刷新绘制包括:
按照解析获得的待切换的系统字体对应的参数加载字体资源;
通知各界面的文本显示部件重新构造或刷新,从加载出来的字体资源中匹配字符字形并绘制出来。
根据本发明实施例的另一方面,还提供了一种移动终端,所述移动终端包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的系统字体切换程序,以实现以下步骤:
检测到对系统字体进行切换的切换指令;
通知各应用进程卸载来自受精卵的字体资源;
在各应用进程内重新加载待切换的字体资源,并刷新绘制;
根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在通知各应用进程卸载来自受精卵的字体资源之前,在配置中增加代表系统字体发生改变的信息项;
将所述信息项写入扩展后的配置类对象新配置新配置中。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
将所述新配置作为参数传入服务端对象;
通过所述服务端对象通知各应用进程卸载来自受精卵的字体资源。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在将所述新配置作为参数通过服务端对象传入各应用进程之后,各应用进程收到新的所述新配置后解析与待切换的系统字体对应的参数,确定存在待切换的系统字体对应的参数。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在通知各应用进程卸载来自受精卵的字体资源之后,通过各应用进程通知对应的资源管理器,卸载当前应用进程中的字体资源。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
按照解析获得的待切换的系统字体对应的参数加载字体资源;
通知各界面的文本显示部件重新构造或刷新,从加载出来的字体资源中匹配字符字形并绘制出来。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述系统字体切换方法的步骤。
通过本发明,检测到对系统字体进行切换的切换指令;通知各应用进程卸载来自受精卵的字体资源;在各应用进程内重新加载待切换的字体资源,并刷新绘制;根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示,解决了相关技术中系统字体切换后需求重启才能生效的问题,在接收到系统字体切换指令后通过卸载来自受精卵Zygote的字体资源,重新加载新的字体资源,不用重启系统便可生效,提高了用户体验。
附图说明
图1为实现本发明各个实施例一可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3是根据本发明实施例的系统字体切换方法的流程图;
图4是根据相关技术中的系统字体切换的示意图;
图5是根据本发明实施例的系统字体切换的流程图;
图6是根据本发明实施例的移动终端中系统字体切换的示意图一;
图7是根据本发明实施例的移动终端中系统字体切换的示意图二;
图8是根据本发明实施例的移动终端中系统字体切换的示意图三;
图9是根据本发明实施例的系统字体切换的移动终端的框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、WiFi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或WiFi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
A/V输入单元104用于接收音频或视频信号。A/V输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或WiFi模块102进行发送。麦克风1042可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风1042接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。麦克风1042可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监测。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。
请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的LTE系统,该LTE系统包括依次通讯连接的UE(User Equipment,用户设备)201,E-UTRAN(Evolved UMTS Terrestrial Radio Access Network,演进式UMTS陆地无线接入网)202,EPC(Evolved Packet Core,演进式分组核心网)203和运营商的IP业务204。
具体地,UE201可以是上述终端100,此处不再赘述。
E-UTRAN202包括eNodeB2021和其它eNodeB2022等。其中,eNodeB2021可以通过回程(backhaul)(例如X2接口)与其它eNodeB2022连接,eNodeB2021连接到EPC203,eNodeB2021可以提供UE201到EPC203的接入。
EPC203可以包括MME(Mobility Management Entity,移动性管理实体)2031,HSS(Home Subscriber Server,归属用户服务器)2032,其它MME2033,SGW(Serving Gate Way,服务网关)2034,PGW(PDN Gate Way,分组数据网络网关)2035和PCRF(Policy andCharging Rules Function,政策和资费功能实体)2036等。其中,MME2031是处理UE201和EPC203之间信令的控制节点,提供承载和连接管理。HSS2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过SGW2034进行发送,PGW2035可以提供UE 201的IP地址分配以及其它功能,PCRF2036是业务数据流和IP承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。
IP业务204可以包括因特网、内联网、IMS(IP Multimedia Subsystem,IP多媒体子系统)或其它IP业务等。
虽然上述以LTE系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于LTE系统,也可以适用于其他无线通信系统,例如GSM、CDMA2000、WCDMA、TD-SCDMA以及未来新的网络系统等,此处不做限定。
基于上述移动终端硬件结构以及通信网络系统,提出本发明方法各个实施例。
实施例1
基于上述的移动终端,本发明实施例提供了一种系统字体切换方法,图3是根据本发明实施例的系统字体切换方法的流程图一,如图3所示,该方法包括以下步骤:
步骤S301,检测到对系统字体进行切换的切换指令;
步骤S302,通知各应用进程卸载来自受精卵的字体资源;
步骤S303,在各应用进程内重新加载待切换的字体资源,并刷新绘制;
步骤S304,根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示。
通过上述步骤,检测到对系统字体进行切换的切换指令;通知各应用进程卸载来自受精卵的字体资源;在各应用进程内重新加载待切换的字体资源,并刷新绘制;根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示,解决了相关技术中系统字体切换后需求重启才能生效的问题,在接收到系统字体切换指令后通过卸载来自Zygote的字体资源,重新加载新的字体资源,不用重启系统便可生效,提高了用户体验。
在通知各应用进程卸载来自受精卵Zygote的字体资源之前,在配置中增加代表系统字体发生改变的信息项;将所述信息项写入扩展后的配置类对象新配置new_Configuration中。Android原生机制中,Configuration包含一系列的系统配置信息,如mcc/mnc/字体缩放因子/地区语言等信息,在这些信息发生改变后会通知各个应用进行相应的刷新操作。本提案对Configuration进行扩展,添加代表系统字体发生改变的信息项,如命名为Font_Flag。将Font_Flag信息写入扩展后的Configuration类对象new_Configuration中,该对象作为参数传入服务端对象(ActivityManagerService,简称AMS),AMS负责系统中所有Activity的生命周期。ActivityThread,App的真正入口。当开启App之后,会调用main()开始运行,开启消息循环队列,这就是传说中的UI线程或者叫主线程。与ActivityManagerServices配合,一起完成Activity的管理工作。ApplicationThread,用来实现ActivityManagerService与ActivityThread之间的交互。在ActivityManagerService需要管理相关Application中的Activity的生命周期时,通过ApplicationThread的代理对象与ActivityThread通讯。ApplicationThreadProxy,是ApplicationThread在服务器端的代理,负责和客户端的ApplicationThread通讯。AMS就是通过该代理与ActivityThread进行通信的。Instrumentation,每一个应用程序只有一个Instrumentation对象,每个Activity内都有一个对该对象的引用。Instrumentation可以理解为应用进程的管家,ActivityThread要创建或暂停某个Activity时,都需要通过Instrumentation来进行具体的操作。ActivityStack,Activity在AMS的栈管理,用来记录已经启动的Activity的先后关系,状态信息等。通过ActivityStack决定是否需要启动新的进程。
ActivityRecord,ActivityStack的管理对象,每个Activity在AMS对应一个ActivityRecord,来记录Activity的状态以及其他的管理信息。其实就是服务器端的Activity对象的映像。TaskRecord,AMS抽象出来的一个“任务”的概念,是记录ActivityRecord的栈,一个“Task”包含若干个ActivityRecord。AMS用TaskRecord确保Activity启动和退出的顺序。
优选地,通知各应用进程卸载来自受精卵Zygote的字体资源可以包括:将所述new_Configuration作为参数传入服务端对象(ActivityManagerService,简称AMS);通过所述服务端对象通知各应用进程卸载来自受精卵Zygote的字体资源。
为了确保系统字体切换的成功,在将所述new_Configuration作为参数通过服务端对象传入各应用进程之后,各应用进程收到新的所述new_Configuration后解析与待切换的系统字体对应的参数,确定存在待切换的系统字体对应的参数。
优选地,在通知各应用进程卸载来自受精卵Zygote的字体资源之后,所述方法还包括:通过各应用进程通知对应的资源管理器,过资源管理器卸载当前应用进程中的字体资源。
优选地,在各应用进程内重新加载待切换的字体资源,并刷新绘制可以包括:按照解析获得的待切换的系统字体对应的参数加载字体资源;通知各界面的文本显示部件重新构造或刷新,从加载出来的字体资源中匹配字符字形并绘制出来。
图4是根据相关技术中的系统字体切换的示意图,如图4所示,相关技术中字体切换方法,基本思路都是直接替换系统中的字体font.ttf文件来实现的。一般通过如下方式切换移动终端显示的文字的字体:用户下载包括自定义字体库的第三方应用程序,并在移动终端中安装该第三方应用程序,并将自定义字体库覆盖移动终端中原有的系统字体库,以使得移动终端可以采用自定义字体库中的字体显示移动终端中的文字。在上述过程中,由于第三方应用程序需要对移动终端的系统字体库进行更改,且第三方应用程序不具备对移动终端的系统字体库进行更改的权限,因此,在安装第三方应用程序的过程中,第三方应用程序需要强制获取移动终端的root权限。在用户获取到root权限后便可直接修改,Android系统字体文件都存在于system系统分区中,直接替换font.ttf文件意味着修改该分区的内容信息。
本发明实施例提出了一种系统字体切换后的无重启刷新方案,以扩展后的Android Configuration作为信息载体,通知各进程卸载来自受精卵Zygote的字体资源,然后在各进程内自主重新加载字体,并刷新绘制。借助此机制,替换系统中的字体font.ttf文件后,不需重启系统即可让新字体在系统各应用界面显示出来。图5是根据本发明实施例的系统字体切换的流程图,如图5所示,实现过程主要包括以下步骤:
步骤S501,用户选择所需个性字体,用户通过UI层预留的程序接口,选择所需的个性字体文件(ttf/otf/ttc等字体格式)。
在本发明实施例中,字体可以为标准的楷体、宋体等,也可以为自定义的字体,例如,萌萌体、萌黑体等;在移动终端出厂时,移动终端中包括至少一种以系统字体文件格式存储的字体文件(下文简称字体文件),每一种字体文件对应一种字体,移动终端可以通过对不同的字体文件进行编译,实现采用该字体文件对应的字体显示移动终端中的文字。
在移动终端的使用过程中,用户可以向移动终端中导入多种自定义字体文件,每一种自定义字体文件对应一种自定义字体,但是,用户导入的自定义字体文件的格式通常与系统字体文件格式可能不同,当自定义字体文件的格式与系统字体文件格式不同时,移动终端无法识别该自定义字体文件,移动终端可以将自定义字体文件的格式转换为系统字体文件格式,并通过对格式转换后的自定义字体文件进行编译,以实现采用自定义字体文件对应的字体显示移动终端中的文字。
在实际应用过程中,移动终端在出厂时包括的字体的种类通常较少且字体较为传统,本发明实施例中涉及的待切换的字体(上述的目标字体)为用户向移动终端中导入自定义字体。
当用户需要对移动终端中文字的字体进行切换时,用户通过移动终端输入包括目标字体的标识的字体切换请求,当移动终端接收到该字体切换请求后,在该字体切换请求中获取目标字体的标识,并根据目标字体的标识与目标字体文件的对应关系,获取目标字体的标识对应的目标字体文件,将目标字体文件的格式转换为系统字体文件格式,得到转换后的目标字体文件,可选的,可以通过如下可行的实现方式将目标字体文件的格式转换为系统字体文件格式:提取目标字体文件中的关键信息,获取系统字体文件格式的模板,根据系统字体文件格式的模板,对关键信息进行重组,得到转换后的目标字体文件。
在移动终端得到转换后的目标字体文件后,移动终端可以根据转换后的目标字体文件,显示移动终端中的、目标字体对应的文字。
下面通过具体示例进行详细说明。
示例性的,假设移动终端当前采用字体1显示移动终端中的文字,在用户使用移动终端的过程中,用户向移动终端中导入了3种自定义字体文件,分别记为:字体文件2、字体文件3、字体文件4,该3种自定义字体文件对应的字体的标识如表1所述:
表1
字体文件 | 字体的标识 |
字体文件1 | 字体1 |
字体文件2 | 字体2 |
字体文件3 | 字体3 |
当用户需要将移动终端当前采用的字体1切换为字体3时,用户通过移动终端输入包括字体3的字体切换请求。
当移动终端收到包括字体3的字体切换请求时,移动终端根据字体文件与字体的标识的对应关系,获取字体3对应的字体文件3,移动终端提取字体文件3中的关键信息,获取移动终端可识别的系统字体文件格式的模板,并根据系统字体文件格式的模板,对提取得到的关键信息进行重组,得到转换后的目标字体文件,记为字体文件3a,移动终端可以根据字体文件3a,得到字体3对应的文字,并在移动终端中显示该字体3对应的文字,以完成字体切换。
本发明实施例提供的字体切换方法,当移动终端接收包括目标字体的标识的字体切换请求后,根据字体切换请求,获取目标字体的标识对应的目标字体文件,将目标字体文件的格式转换为系统字体文件格式,由于转换后的目标字体文件的格式为系统字体文件格式,因此,移动终端可以将格式转换后的目标字体文件识别为系统字体文件,并根据转换后的目标字体文件,显示移动终端中的文字,以完成字体切换,在该过程中,无需对移动终端的系统字体库进行更改,因此,无需获取移动终端的root权限,保证了移动终端的安全性。
本发明实施例还需要先向移动终端中导入包括目标字体文件的至少一个自定义字体文件,可选的,可以通过如下可行的实现方式向移动终端中导入自定义字体文件:安装应用程序,所该应用程序中携带至少一种字体文件,缓存各字体文件,并生成字体切换界面,字体切换界面中包括各字体文件对应的字体的标识;具体的,在实际使用过程中,当用户需要更换移动终端中文字的字体时,用户可以下载包括至少一种字体文件的应用程序,并在移动终端上安装该应用程序,在移动终端完成安装该应用程序后,移动终端可以在安装的应用程序中获取各个字体文件,进一步的,为了便于用户对移动终端中的文字进行字体切换操作,在移动终端完成安装该应用程序后,移动终端还可以生成字体切换界面,字体切换界面中包括各字体文件对应的字体的标识,相应的,移动终端可以通过如下可行的实现方式接收包括目标字体的标识的字体切换请求:接收用户在字体切换界面选中的目标字体的标识,并生成包括目标字体的标识的字体切换请求。
在实际应用过程中,当用户需要对移动终端中的文字的字体进行切换时,可以下载应用程序,假设下载的应用程序中包括字体1-字体3对应的字体文件,移动终端中系统自带的字体为字体4(默认字体),在移动终端下载并安装完成该应用程序后,可以在终端的界面上显示界面。
图6是根据本发明实施例的移动终端中系统字体切换的示意图一,如图6所示,在该界面中包括字体以及字体的大小,其中,字体包括应用程序中的字体(字体1-字体3)、以及移动终端中系统自带的字体4,字体大小包括:小、普通以及大,各个字体以及字体的大小后边包括选中按钮,在用户进行字体切换之前,移动终端的文字的字体为系统默认字体4,字体的大小为“普通”,此时,“字体4”和“普通”对应的选中按钮的状态为被选中状态,其中,在字体中,字体1-字体4对应的按钮在同一时刻仅一个按钮可以被选中,在字体的大小中,“小”、“普通”以及“大”对应的按钮中在同一时刻仅一个按钮可以被选中,当用户需要对移动终端的文字的字体进行更改时,可以重新的“字体”和/或“字体的大小”中的按钮进行选中操作。
图7是根据本发明实施例的移动终端中系统字体切换的示意图二,如图7所示,当用户需要将移动终端中的文字的字体更改为“字体1(萌萌体)”时,用户可以将“字体1”对应的按钮进行选中,同时,“字体4”对应的按钮的状态更换为未选中状态,在用户对“字体1”对应的按钮进行选中操作后,对界面中的“切换”按钮进行点击操作,使得移动终端的文字的字体由字体1切换为字体4。
图8是根据本发明实施例的移动终端中系统字体切换的示意图三,如图8所示,移动终端中的文字的字体为字体4。
步骤S502,扩展Android Configuration参数,Android原生机制中,Configuration包含一系列的系统配置信息,如mcc/mnc/字体缩放因子/地区语言等信息,在这些信息发生改变后会通知各个应用进行相应的刷新操作。对Configuration进行扩展,添加代表系统字体发生改变的信息项,如命名为Font_Flag。
步骤S503,将Font_Flag信息写入扩展后的Configuration类对象new_Configuration中,该对象作为参数传入服务端对象(ActivityManagerService,简称AMS),AMS负责系统中所有Activity的生命周期。ActivityManagerService将new_Configuration传至各个系统/应用进程,各进程收到新的配置参数new_Configuration后解析与系统字体相关的参数,若存在有效的字体相关参数,则执行下一步。
步骤S504,各应用进程通知对应的资源管理器,卸载当前进程中的Typeface资源,并按照解析获得的参数加载新的Typeface资源。通知各界面的文本显示部件(如TextView)重新构造或刷新,从新加载出来的Typeface中匹配字符字形并绘制出来,完成各个界面的系统级字体切换。
在移动终端获取得到转换后的目标字体文件后,可以通过多种可行的方式根据转换后的目标字体文件,显示移动终端中的文字,具体的,可以包括:清除移动终端中缓存的当前绘制信息,所述当前绘制信息用于以移动终端中的当前字体显示移动终端中的文字;根据转换后的目标字体文件,对移动终端中的文字进行绘制,得到目标字体对应的目标绘制信息;根据目标绘制信息,显示移动终端中的文字。
在本发明实施例中,在需要对移动终端中的文字界面进行显示时,需要先获取用于显示文字界面的字体文件、以及文字界面上待显示的文字,移动终端根据字体文件中包括的字体属性、布局等,对待显示的文字进行绘制得到绘制信息,然后根据得到的绘制信息对移动终端中的文字进行显示,例如,对于安装有Android系统的移动终端,移动终端具体通过如下可行的方式对移动终端中的文字界面进行显示:在移动终端开机时,启动系统控件Textview,然后加载用户显示文字的字体文件system_font,通过skia库创建需要在系统绘制字体时的数据结构并缓存,并在textview中根据字体文件system_font对待显示的文字进行绘制,在得到绘制信息后,在移动终端的界面上显示移动终端中的文字。
在实际应用过程中,在对移动终端的文字的字体格式进行切换的过程中,在获取得到转换后的目标字体文件后,移动终端清除移动终端中缓存的当前绘制信息,该当前绘制信息用于以移动终端中的当前字体显示移动终端中的文字,可选的,移动终端可以通过重启移动终端中的字体显示模块、或者重启移动终端,实现清除移动终端中缓存的当前绘制信息,在清除移动终端中的当前绘制信息后,移动终端根据转换后的目标字体文件,对移动终端中的文字进行绘制,得到目标字体对应的目标绘制信息,并根据目标绘制信息,显示移动终端中的文字,其中,根据目标绘制信息显示的文字的字体为目标字体。
当需要将移动终端中文字的当前字体切换为目标字体时,移动终端通过清除移动终端中缓存的当前绘制信息,根据转换后的目标字体文件对终端设绘制得到目标绘制信息,并根据目标绘制信息显示移动终端中的文字,通过对绘制信息进行更换,可以提高对移动终端的文字的字体进行切换的速度,进而提高用户体验。
通过上述步骤,不需要重启启动,即可切换系统全局字体,快速为用户展现新视效,实现各界面字体的无重启刷新。
实施例2
根据本发明实施例的另一方面,还提供了一种移动终端,图9是根据本发明实施例的系统字体切换的移动终端的框图,如图9所示,所述移动终端包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的系统字体切换程序,以实现以下步骤:
检测到对系统字体进行切换的切换指令;
通知各应用进程卸载来自受精卵Zygote的字体资源;
在各应用进程内重新加载待切换的字体资源,并刷新绘制;
根据所述切换指令在替换系统中的字体font.ttf文件后,直接让切换后的新字体在系统各应用界面进行显示。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在通知各应用进程卸载来自受精卵Zygote的字体资源之前,在配置中增加代表系统字体发生改变的信息项;
将所述信息项写入扩展后的配置类对象新配置new_Configuration中。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
将所述new_Configuration作为参数传入服务端对象;
通过所述服务端对象通知各应用进程卸载来自受精卵Zygote的字体资源。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在将所述new_Configuration作为参数通过服务端对象传入各应用进程之后,各应用进程收到新的所述new_Configuration后解析与待切换的系统字体对应的参数,确定存在待切换的系统字体对应的参数。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在通知各应用进程卸载来自受精卵Zygote的字体资源之后,通过各应用进程通知对应的资源管理器,卸载当前应用进程中的字体资源。
优选地,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
按照解析获得的待切换的系统字体对应的参数加载字体资源。
通知各界面的文本显示部件重新构造或刷新,从加载出来的字体资源中匹配字符字形并绘制出来。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述系统字体切换方法的步骤。
本发明实施例,检测到对系统字体进行切换的切换指令;通知各应用进程卸载来自受精卵的字体资源;在各应用进程内重新加载待切换的字体资源,并刷新绘制;根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示,解决了相关技术中系统字体切换后需求重启才能生效的问题,在接收到系统字体切换指令后通过卸载来自Zygote的字体资源,重新加载新的字体资源,不用重启系统便可生效,提高了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (6)
1.一种系统字体切换方法,其特征在于,包括:
检测到对系统字体进行切换的切换指令;
通知各应用进程卸载来自受精卵的字体资源;
在各应用进程内重新加载待切换的字体资源,并刷新绘制;
根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示;
其中,在通知各应用进程卸载来自受精卵的字体资源之前,所述方法还包括:
在配置中增加代表系统字体发生改变的信息项;
将所述信息项写入扩展后的配置类对象新配置中;
其中,所述通知各应用进程卸载来自受精卵的字体资源包括:
将所述新配置作为参数传入服务端对象;所述服务端对象为ActivityManagerService;
通过所述服务端对象通知各应用进程卸载来自受精卵的字体资源。
2.根据权利要求1所述的方法,其特征在于,在将所述新配置作为参数通过服务端对象传入各应用进程之后,所述方法还包括:
各应用进程收到新的所述新配置后解析与待切换的系统字体对应的参数,确定存在待切换的系统字体对应的参数。
3.根据权利要求2所述的方法,其特征在于,在通知各应用进程卸载来自受精卵的字体资源之后,所述方法还包括:
通过各应用进程通知对应的资源管理器,卸载当前应用进程中的字体资源。
4.根据权利要求2所述的方法,其特征在于,在各应用进程内重新加载待切换的字体资源,并刷新绘制包括:
按照解析获得的待切换的系统字体对应的参数加载字体资源;
通知各界面的文本显示部件重新构造或刷新,从加载出来的字体资源中匹配字符字形并绘制出来。
5.一种移动终端,其特征在于,所述移动终端包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的系统字体切换程序,以实现以下步骤:
检测到对系统字体进行切换的切换指令;
通知各应用进程卸载来自受精卵的字体资源;
在各应用进程内重新加载待切换的字体资源,并刷新绘制;
根据所述切换指令在替换系统中的字体文件后,直接让切换后的新字体在系统各应用界面进行显示;
其中,所述处理器还用于执行系统字体切换程序,以实现以下步骤:
在通知各应用进程卸载来自受精卵的字体资源之前,在配置中增加代表系统字体发生改变的信息项;
将所述信息项写入扩展后的配置类对象新配置中;
将所述新配置作为参数传入服务端对象;所述服务端对象为ActivityManagerService;
通过所述服务端对象通知各应用进程卸载来自受精卵的字体资源。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-4中任一项所述系统字体切换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710374268.5A CN107229470B (zh) | 2017-05-24 | 2017-05-24 | 一种系统字体切换方法、移动终端以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710374268.5A CN107229470B (zh) | 2017-05-24 | 2017-05-24 | 一种系统字体切换方法、移动终端以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107229470A CN107229470A (zh) | 2017-10-03 |
CN107229470B true CN107229470B (zh) | 2021-01-01 |
Family
ID=59934615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710374268.5A Active CN107229470B (zh) | 2017-05-24 | 2017-05-24 | 一种系统字体切换方法、移动终端以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229470B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271230A (zh) * | 2018-10-10 | 2019-01-25 | 深圳Tcl新技术有限公司 | 音量条的显示方法、智能终端及计算机可读存储介质 |
CN109561209A (zh) * | 2018-11-22 | 2019-04-02 | 努比亚技术有限公司 | 一种字体切换方法、终端及计算机可读存储介质 |
WO2020124454A1 (zh) * | 2018-12-19 | 2020-06-25 | 深圳市欢太科技有限公司 | 字体切换方法及相关产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094172A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Linking font resources in a printing system |
CN101345933A (zh) * | 2007-07-09 | 2009-01-14 | 上海基信通讯技术有限公司 | 手机显示字体及字体大小的动态更改与装卸方法 |
CN101639853A (zh) * | 2009-08-26 | 2010-02-03 | 王建军 | 用于家电终端的文字显示方法 |
CN103049261A (zh) * | 2012-12-11 | 2013-04-17 | 广东欧珀移动通信有限公司 | 一种移动终端字体更换方法 |
CN106168901A (zh) * | 2016-06-23 | 2016-11-30 | 北京奇虎科技有限公司 | 应用程序字体自定义方法和控制方法及相应装置 |
-
2017
- 2017-05-24 CN CN201710374268.5A patent/CN107229470B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094172A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Linking font resources in a printing system |
CN101345933A (zh) * | 2007-07-09 | 2009-01-14 | 上海基信通讯技术有限公司 | 手机显示字体及字体大小的动态更改与装卸方法 |
CN101639853A (zh) * | 2009-08-26 | 2010-02-03 | 王建军 | 用于家电终端的文字显示方法 |
CN103049261A (zh) * | 2012-12-11 | 2013-04-17 | 广东欧珀移动通信有限公司 | 一种移动终端字体更换方法 |
CN106168901A (zh) * | 2016-06-23 | 2016-11-30 | 北京奇虎科技有限公司 | 应用程序字体自定义方法和控制方法及相应装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107229470A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107276789B (zh) | 日志上传方法、装置及计算机可读存储介质 | |
CN107749919B (zh) | 一种应用程序页面显示方法、设备及计算机可读存储介质 | |
CN107741802B (zh) | 应用启动方法、终端及计算机可读存储介质 | |
CN109766119B (zh) | 恢复分区升级方法、终端和计算机可读存储介质 | |
CN109561209A (zh) | 一种字体切换方法、终端及计算机可读存储介质 | |
CN107229470B (zh) | 一种系统字体切换方法、移动终端以及计算机可读存储介质 | |
CN111427709A (zh) | 一种应用程序分身控制方法、设备及计算机可读存储介质 | |
CN107153551B (zh) | 一种字体切换方法、移动终端以及计算机可读存储介质 | |
CN107357591B (zh) | 应用程序的界面植入方法、移动终端及存储介质 | |
CN107809527B (zh) | 一种呈现快捷操作的方法和电子设备 | |
CN109656649A (zh) | 一种桌面应用控制方法、终端及计算机可读存储介质 | |
CN110187934B (zh) | 应用控制方法、终端及计算机可读存储介质 | |
CN111931155A (zh) | 验证码的输入方法、设备及存储介质 | |
CN110083294B (zh) | 屏幕截取方法、终端和计算机可读存储介质 | |
CN109068314B (zh) | 运营商配置文件切换方法、智能设备及可读存储介质 | |
CN108900696B (zh) | 一种数据处理方法、终端和计算机可读存储介质 | |
CN108108207B (zh) | 广告展现方法以及装置 | |
CN107678794B (zh) | 应用程序启动接口合并方法及移动终端 | |
CN114006881A (zh) | 消息处理方法、智能终端及存储介质 | |
CN107229889A (zh) | 一种基于二维码的操作方法、设备及计算机可读存储介质 | |
CN109995937B (zh) | 应用图标显示方法、移动终端和计算机可读存储介质 | |
CN113342246A (zh) | 操作方法、移动终端及存储介质 | |
CN111752562A (zh) | 跨平台的客户端界面开发方法、装置、终端设备及介质 | |
CN112882745A (zh) | 电子价签固件升级方法、电子终端及计算机可读存储介质 | |
CN112667262A (zh) | 一种fota升级的方法、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |