字体传送服务的制作方法

文档序号:6539826阅读:154来源:国知局
字体传送服务的制作方法
【专利摘要】一种字体服务的方法、系统和架构,以及用于为开发者提供使用多种字体字样来设计用户界面和内容的部件的软件开发工具包(SDK)。SDK可以从字体服务根据需要下载字体,并激活该字体以被呈现在应用程序的用户界面中或该应用程序内的其它文本内容中。可以提供订购服务,其包括用户帐户信息与一个或多个客户端设备访问位于字体库中的一个或多个字体文件的权限相关的其它数据。此外,可以根据在其中运行目标应用程序的操作系统和/或在其上运行目标应用程序的客户端设备的屏幕分辨率优化一个或多个字体文件。
【专利说明】字体传送服务
[0001]相关申请的交叉引用
[0002]本申请对提交于2013年3月13日、题为“字体传送服务”的美国专利申请序列N0.13/798,498要求优先权,所述美国申请的全部内容通过引用据此合并到本申请中。

【技术领域】
[0003]本公开的方面涉及传送一种或多种字体以供在应用程序中使用。例如,本公开的一些方面涉及一种字体服务和用于为软件应用程序传送各种字体字样的软件开发工具包。

【背景技术】
[0004]安装在台式计算机、膝上型计算机、平板电脑、移动电话等上的操作系统包括有限数量的预加载的系统字体。因此,在这些操作系统中最终使用的应用程序的开发者当为在应用程序内呈现的用户界面和/或其它文本内容进行编码时,具有有限数量的字体可供选择。当应用程序将被最终安装在移动设备上时,可供这些开发者选择的字体的数量尤其有限。也就是说,因为这些移动设备上的存储容量相较于,例如,台式计算机可能是更加有限的,因此这些设备可具有所安装的更加有限数量的系统字体供开发者选择。
[0005]因此,仍然需要为软件开发者等提供可在应用程序中(特别是对于最终安装在移动设备上的应用程序)使用的扩展的字体选项。此外,仍然需要根据目标设备来优化所传送的字体文件,以减少带宽和/或发送、存储和激活这些所传送的字体文件所必要的存储容量。


【发明内容】

[0006]下面给出简化概述以提供对本公开的一些方面的基本理解。本概述不是本公开的详尽概述。它既不旨在标识本公开的关键或重要元素,也不描绘本公开的范围。下面的概述仅仅以简化形式呈现本公开的一些概念作为下面的描述的前言。
[0007]本公开的方面涉及一种字体服务的方法、系统和架构,以及用于为开发者等提供使用多种字体字样来设计用户界面和内容的部件的软件开发工具包(SDK)。在一些实施例中,SDK使得能够在开发者的应用程序中使用一种或多种字体字样。例如,当启动应用程序时,SDK (包含在开发者的应用程序的代码中)可以从字体服务根据需要下载所请求的字体文件,并激活软件应用程序中的字体,使得以所请求的字体呈现该应用程序内的用户界面或其它文本内容。
[0008]根据另一个方面,可以在字体服务中提供订购服务。订购服务可以包括帐户信息或与一个或多个客户端设备访问位于字体库中的一个或多个字体文件的权限相关的其它数据。在一些实施例中,订购服务可以包括与应用程序开发者和字体服务之间的许可协议有关的信息。因此,在一些实施例中,可以参考订购信息以在字体文件被传输到客户端设备之前确定对目标应用程序的权限(或缺乏权限)。
[0009]根据又一个方面,可以为在其中运行目标应用程序的操作系统和/或目标客户端设备上的显示器的屏幕分辨率优化一个或多个字体文件。优化字体文件可包括减小字体文件的大小,以减少发送字体文件所需的带宽、减少存储字体文件所需的本地存储容量、和/或减少使用该字体文件来呈现文本内容所需要的时间。在一些实施例中,优化可以包括删除字体微调(font hinting)、OpenType功能、和/或操作系统和/或目标客户端设备的显示器不要求的字体文件的其它属性。

【专利附图】

【附图说明】
[0010]通过考虑附图参照以下描述,可以获得本发明的更完整的理解及其优点,其中相同的标号表示相同的特征,并且其中:
[0011]图1示出在其中可以实践本公开的一个或多个方面的示例计算机系统和环境;
[0012]图2是根据本公开的一个或多个方面的移动设备和字体服务的示意图;
[0013]图3是描绘了启动利用本公开的一个或多个方面的应用程序的方法的流程图;以及
[0014]图4是根据本公开的一个或多个方面的描绘了优化由图3的启动的应用程序使用的字体文件的方法的流程图。

【具体实施方式】
[0015]本公开的方面涉及系统、装置、方法和计算机可读介质,用于提供多种字体给软件开发者等以被最终用于运行在客户端设备上的应用程序中的用户界面和/或其它呈现的文本内容。这里使用的字体可以指字样中的字符集合,并且,在一些实施例中,可以指为该特定字样定义的所有字符集。可以在由操作系统处理并在应用程序中呈现的字体文件中提供字体。字体文件还可以包括字体微调(例如,指令),它包括到操作系统的数学指令以调整轮廓字体的显示,使得它与光栅化的网格对齐。在一些实施例中(例如,在客户端设备的显示器包括低屏幕分辨率的实施例中),字体微调对于制作清楚、易读的文本是很关键的。如将被本领域的技术人员很容易地理解的那样,字体文件可以进一步包括OpenType功能。
[0016]图1示出了根据本公开的一些方面的网络环境,其中字体文件可以被发送和用于呈现用户界面中的文本或应用程序中的其它文本内容。网络100可以被配置为在包括客户端设备103和网络服务器105的多种设备之间提供通信。所述通信可能符合一个或多个通信协议,包括网际协议(IP)、超文本传输协议(HTTP)、文件传输协议(FTP)等。设备103可以包括诸如个人计算机(PC) 103a的固定设备,以及诸如个人数字助理(PDA) 103b、移动电话103c、膝上型计算机103d和平板电脑103e的移动通信设备。网络服务器105可以被配置为存储和承载各种类型的信息,包括网页、音乐内容、视频内容、应用程序等等。在一个配置中,网络服务器105a可以被配置为承载一个或多个字体服务。
[0017]根据一个或多个方面,字体服务和/或网络服务器105b可被配置为存储字体文件。字体文件可以按照各种格式来创建并包括各种指令(例如,字体微调)和属性(例如,OpenType功能),这将被本领域技术人员很容易地理解。因此,可以跨多个设备(例如,客户端设备103a_103e)上的多个平台使用单个字体文件,并且每个设备可使用所提供的字体微调、OpenType功能和/或其它属性以在目标应用程序中呈现清楚、易读的文本。
[0018]类似地,客户端设备103可以包括最终可能会在应用程序中使用以呈现文本内容的多种系统字体。这些系统字体可以是在客户端设备103上全局地可访问的,使得在客户端设备103上运行的任何应用程序都可以使用一种或多种系统字体来呈现文本内容。例如,当软件开发者等开发应用程序时,可以包括代码以在显示文本内容时参考一种或多种这些系统字体,并且相应的应用程序在启动之后可以在客户端设备103上访问包含编码的系统字体的字体文件。在这种示例中,应用程序中的文本内容将因此在显示器上以这种系统字体呈现。然而,如果软件开发者或其他人希望以所提供的系统字体之一以外的字体来呈现文本内容,她可能要么被要求提供具有应用程序的字体文件,或者要求最终用户下载或以其它方式在客户端设备103上安装附加字体文件。例如,软件开发者可能希望以所提供的系统字体之一以外的字体呈现文本内容,但是如果客户端设备103不具有预装的附加字体文件,则文本内容可能最终以所提供的系统字体之一(例如,默认字体)呈现或者客户端设备103可能被要求,例如,在呈现文本内容之前下载附加字体文件。
[0019]根据本公开的一个或多个方面,提供了一种字体服务以允许软件开发者等使用不被提供作为默认系统字体的一种或多种字体来显示应用程序中的文本内容。例如,在一些实施例中,软件开发者可以在呈现文本内容时从包含可能没有预装在客户端设备103上的字体的数据库中选择他们希望使用的字体,并从字体服务“租用”该字体。在这些实施例中,不需要终端用户购买和/或在客户端设备103上安装许多附加字体文件以便以除了默认系统字体之外的字体呈现文本内容,该字体服务可以允许开发者对不被包括作为系统字体的期望的字体进行编码,然后该字体可以仅由特定的应用程序使用(例如,由应用程序租用)。
[0020]图2是根据本公开的一个或多个方面的移动设备201 (作为客户端设备103的一个示例)与字体服务203 (作为字体租用服务的一个示例)通信的示意图。在一些实施例中,字体服务203可以是一种系统和架构,其规定用户帐户、提供特权帐户信息给软件开发工具包(SDK) 211、承载物理字体文件、在字体传送前优化字体,并由SDK211提供对字体文件的特权访问。移动设备201可以是本领域中公知的任何移动设备,并且在一些实施例中,可以是,例如,PDA103B、移动电话103c、膝上型计算机103d或平板电脑103e。此外,移动设备201可以使用本领域中任何已知的方法(例如,无线、蜂窝等)与字体服务203通信,并且在一些实施例中,可以经由网络100进行通信。移动设备201可以包括操作系统205、系统字体207、一个或多个应用程序209和显示器217。应用程序209可以是任何程序、窗口小部件、浏览器、软件等,其代码被存储在移动设备201上,并且当被操作系统205执行时,显示在显示器217上。在一些实施例中,应用程序209可以包括用户界面和/或其它文本内容。当该文本内容最终在显示器217上呈现时,如本文所讨论,内容可以以一个或多个系统字体207进行显示。这些系统字体207可包括存储在移动设备201上的存储器或其它存储空间的一个或多个字体文件中的一种或多种字体,并且可以是全局可用的以供任何应用程序使用。由于,例如,空间约束、许可限制和/或移动设备201的其它限制,可用的系统字体207的数量因此是固有地受限的。
[0021]根据本发明的一些实施例,移动设备201还可以包括包含在应用程序209中(例如,由软件开发者等人编程在应用程序209的代码内)的SDK211,它可被用于协助租用附加字体(例如,除了系统字体207以外的字体和/或在移动设备201上全局可用的其它字体)。这里广泛使用的SDK211是指编程接口、示例、文档等的集合,用于作为公布的字体服务203的界面,并提供给,例如,第三方软件开发者。
[0022]移动设备201还可以包括用于本地地存储租用的字体以供与应用程序209 —起使用的沙盒215和字体贮存器213。如这里所使用的,沙盒215指的是用于将诸如例如应用程序209的正在运行的应用程序从在移动设备201上运行的其它应用程序中分离出来的安全机制。沙盒215可提供诸如磁盘和存储器上的暂存空间的严格控制的一组资源以供客体程序插入。沙盒215可能不允许或者可以严格限制,例如,网络访问、检查主机系统的能力、或从输入设备读取的能力。因此,本领域技术人员可将沙盒215理解为虚拟化的具体示例。
[0023]本发明的一个或多个方面中,操作系统205在沙盒215中运行应用程序209和/或应用程序209的特定部分,从而隔离应用程序209以便防止对一个或多个应用程序209的资源的未经授权的访问(例如,为了防止其它应用程序访问存储在字体贮存器213中的租用字体)。例如,下载的供应用程序209使用的字体可以被存储在沙盒215中(例如,存储在沙盒215中提供的字体贮存器213中),以防止在移动设备201上运行的其它应用程序访问租用的字体。因此,从字体服务203获得的每种字体可因此仅可用于为之而租用它的特定的用途(例如,在所描述的示例中,在应用程序209中使用),而不是全局可用地供移动设备上201的任何应用程序使用。例如,以这种方式将字体贮存器213从在移动设备201上运行的其它应用程序中隔离出来对于字体许可和字体许可限制可以是重要的。
[0024]如图2所示,SDK211与字体服务203的接口 219通信。接口 219与SDK211通信,从而协助下载所请求的字体,这将参照图3和4更详细地讨论。字体服务203可附加地包含字体库221、优化工具223和订购数据库225。字体库221可以包括可被租用和在各种应用程序(例如,应用程序209)中使用的多个字体文件。因为字体库221可被存储在,例如,一个或多个网络服务器105上,因此字体库221可以不遭受与存储在移动设备201上的系统字体207相同的空间约束等。因此,字体库221可以包含比系统字体207更多的字体文件(从而有更多的字体选择)。
[0025]字体服务203可以包括优化工具223。优化工具223可以在将来自字体库221的任何字体文件发送到移动设备201之前对其进行优化。例如,可以执行这种优化以便减少发送该字体文件所需的带宽,减少在移动设备201上本地地存储所接收的字体文件所需的存储器或其他存储空间,和/或减少使用该字体文件在移动设备201上呈现内容所需要的时间。
[0026]优化工具223可以使用任何期望的方法减少该字体文件的大小。在一些实施例中,优化工具223可以删除目标应用程序209的操作系统205不需要和/或不支持的字体微调。如这里所用,字体微调(也称为指令)是指使用数学指令来调整对轮廓字体的显示,使得它与光栅化的网格对齐。例如,在低屏幕分辨率处,字体微调是必要的,以产生清楚、易读的文本。因此,存储在字体库221中的字体文件可以包含字体微调(指令),但目标客户端设备103可能不需要和/或支持这种字体微调。例如,通过确定目标客户端设备103 (例如,移动设备201)所使用的操作系统205和/或显示器217的屏幕分辨率,优化工具223可由此当不需要和/或不支持不必要的字体微调等时,从字体文件中将其删除,从而减少,例如,发送该字体文件所需的带宽、本地地存储该字体文件所需的存储空间(例如,存储器)、和/或在移动设备201上呈现该文本内容所必要的时间。
[0027]在其它实施例中,优化工具223可以被用来,例如,从所请求的字体文件中删除最终未必由目标客户端设备103的操作系统205使用的OpenType功能。例如,某些操作系统205可能不支持和/或利用部分或全部的OpenType功能。在这些实施例中,优化工具223可以在未使用的OpenType功能被发送到客户端设备103 (例如,移动设备201)之前,将其从所请求的字体文件中删除。因此,对于如上所述的字体微调,优化工具223可因此通过删除未使用的OpenType功能来以减少所请求的字体文件的大小,以便减少,例如,发送该字体文件所需的带宽、本地地存储该字体文件所需的存储空间(例如,存储器)、和/或在客户端设备103上呈现该文本内容所必要的时间。
[0028]字体服务203还可以包括订购数据库225。订购数据库225可以包括关于用户帐户、权限等的信息,并且,在一些实施例中,可以包括一个关于用户被允许访问哪些字体的列表。例如,在一些实施例中,第三方软件开发者等可以许可在她开发的应用程序(例如,应用程序209)中使用来自字体库221的特定字体。因此,订购数据库225可包括关于软件开发者的许可协议的信息,使得当客户端设备103 (例如,移动设备201)执行由软件开发者开发的应用程序209时,可以参考订购数据库225以确定应用程序209是否具有权限使用所请求的字体。因此,在一些实施例中,当客户端设备103 (例如,移动设备201)执行应用程序209时,SDK211可以经由接口 219与字体服务203通信,然后字体服务203可提供任何许可的字体文件和/或权限,以根据订购数据库225中提供的条款使用任何许可的字体文件。然而,如果订购数据库225指示应用程序209没有权限访问请求的字体文件(例如,软件开发者没有建立对字体服务203的订购和/或已经建立了不包括所请求字体的订购),则字体服务203可以拒绝访问字体文件。在这些实施例中,可能最终使用默认系统字体207在显示器217上呈现任何文本内容和/或一个错误消息可能会返回给用户,指示她没有权限访问所请求的字体。
[0029]参照图3和4将更容易地理解移动设备201 (或其它客户端设备103)与字体服务203的交互。图3描绘了当经由,例如,SDK211下载并激活字体文件时所涉及的高层次逻辑的实施例。例如,在步骤301,应用程序开始启动。该应用程序可以是任何程序、窗口小部件、浏览器、软件等,并且可以例如,在客户端设备103a_103e的任一上启动。在一些实施例中,在步骤301启动的应用程序可以是在移动设备201上启动的应用程序209。如所讨论的,启动的应用程序209可包括SDK211,以协助与字体服务203的交互,以便,例如,请求要在显示的应用程序209中使用的字体。在步骤303,SDK211可确定所请求的字体是否存储在对应于所启动的应用程序209的沙盒215内。例如,在一些实施例中,一旦字体是从字体服务203传送的,它可被本地地存储在沙盒215中,使得它在对应用程序209的后续使用期间可以容易地被访问(但不是由运行在,例如,移动设备201上的其它应用程序)。因此,在步骤303,如果该字体已经先前被访问(例如,被下载),并存储在沙盒215中,则在步骤303,SDK211可以简单地在本地访问该字体并移动到步骤313,这将更详细地讨论。
[0030]然而,在所请求的字体没有被先前地存储在沙盒215 (例如,如果这是第一次启动应用程序209,并且因此SDK211没有先前地请求过该字体和/或SDK211已被拒绝本地地存储该字体的权限,等等)的实施例中,则该方法前进到步骤305。在步骤305,SDK211建立与字体服务203的连接。如所讨论的,SDK211和字体服务203之间的连接可以通过任何已知的方法来实现,而不脱离本公开的范围。仅通过示例的方式,在启动的应用程序是,例如,在移动设备201上运行的应用程序209的实施例中,SDK211可以经由无线网络连接和/或蜂窝数据传输连接建立与字体服务203的连接。进一步,如图2所示,字体服务203可以包括用于建立与SDK211的连接的接口 219。一旦在步骤305建立了到字体服务203的连接,SDK211可以从字体服务203请求一个或多个字体文件。例如,SDK211可请求与第三方软件开发者等已编程将在呈现应用程序209中的文本内容时要使用的字体相关联的字体文件。
[0031]在步骤307,SDK211 (通过,例如,接口 219)和/或字体服务203可以通过,例如,参考订购数据库225访问客户的订购。再次地,订购数据库225可包含关于一个或多个用户帐户和/或访问存储在字体库221内的一种或多种字体的权限的信息。在一些实施例中,订购数据库225可以包括关于,例如,第三方开发者的订购和/或访问一个或多个字体文件的权限的信息。在步骤309,SDK211和/或字体服务203确定用户是否有权访问所请求的字体。例如,如果第三方者已经,例如,许可使用特定字体以供执行她的应用程序209的任何客户端设备103使用,那么SDK211和/或字体服务203可以在步骤309确定(通过参考,例如订购数据库225)用户有权限访问所请求的字体。但是,如果SDK211和/或字体服务203确定用户无权访问所请求的字体(例如,第三方开发者没有围绕这些请求的字体的订购协议),则该方法前进到步骤311。
[0032]在步骤311,在所请求的字体的位置使用系统字体207 (例如,默认字体)。因此,如果客户端设备103 (例如,移动设备201)最终被拒绝访问所请求的字体,应用程序209中在显示器217上呈现的任何文本内容可以以一种或多种默认系统字体207呈现。在一些实施例中,回退到这个默认系统字体207可以通过,例如调用操作系统205应用程序编程接口(API)方法来完成。如这里所用,API可以指基于源代码的规范,旨在由软件组件用作彼此通信的接口。该API可以包括例程、数据结构、对象类、变量等的规范。在其它实施例中,不是访问系统字体207以显示所呈现的内容,应用程序209可以返回,例如,错误消息或其它提示,指示客户端设备103无权访问所请求的字体。
[0033]然而,如果在步骤309SDK211和/或字体服务203确定用户有权访问所请求的字体(例如,所请求的字体被包括在第三方开发者的订购中),则该方法可以前进到图4 (图3中由圆圈“A”表示)。图4是根据本公开的一些方面的用于从例如,字体服务203向移动设备201传送所请求的字体的方法的流程图。在步骤401,SDK211提供信息给字体服务203。在一些实施例中,在步骤401中从SDK211提供给字体服务203的信息可以包括,例如,平台信息,用于运行目标应用程序209的操作系统205的版本和/或用于显示目标应用程序209的显示器217的屏幕分辨率。
[0034]在步骤403,SDK211和/或字体服务203可确定所请求的字体是否先前已进行了优化。如所讨论的,字体的优化可能包含减小字体文件的大小,以便减少,例如,发送该字体文件所需的带宽、存储该字体文件所需的存储空间(例如存储器)、和/或在显示器217上呈现该字体所需要的时间。在一些实施例中,优化可包括从字体文件去除,例如,字体微调和运行目标应用程序209的客户端设备103 (例如,移动设备201)的操作系统205不需要的其它功能。在其它实施例中,优化可以包括删除,例如,运行目标应用程序209的客户端设备103 (例如,移动设备201)的操作系统205不支持和/或不需要的OpenType功能。在一些实施例中,字体服务203可以将字体文件存储在,例如,已先前对于例如给定的操作系统、屏幕分辨率等优化过的字体库221。因此,在步骤403,SDK211和/或字体服务203可确定所请求的字体文件是否先前已对目标操作系统205和/或显示器217进行了优化。如果是,则字体服务203可以在步骤407提供优化的字体文件(以下更详细地讨论),而不采取进一步行动。然而,如果字体文件没有被先前优化(例如,没有对于操作系统205和/或显示器217进行优化),则该方法前进到步骤405。
[0035]在步骤405,SDK211和/或字体服务203对所请求的字体文件执行实时优化。具体地,可以通过,例如这里所讨论的,从字体文件中去除字体微调、OpenType功能、和/或目标操作系统205和/或显示器217不需要的其它功能来减小所请求的字体文件的大小。在一些实施例中,可以通过,例如,参考在字体服务203中提供的优化工具223来执行步骤405。一旦在步骤405已经执行了任何必要的实时优化,该方法前进到步骤407,其中字体服务203可以将优化的字体文件提供给,例如,SDK211,以用于呈现目标应用程序209的文本内容。
[0036]在一些实施例中,在步骤409,SDK211可以将接收到的优化的字体文件本地地存储在,例如,沙盒215的字体贮存器213中。这可以通过,例如,调用操作系统205API方法来完成。在这样的实施例中,当在稍后的时间启动应用程序209时,所请求的字体可以是在,例如,沙盒215的字体贮存器213中本地可用的(但对于,例如,在移动设备201上运行的其它应用程序不是可用的),以便减少启动时间和/或呈现文本内容所需要的时间等。
[0037]紧接步骤409 (并且如圆圈“B”所指示的返回到图3),在步骤313SDK211激活目标应用程序209中的字体。如这里所用,激活可以指改变字体状态的动作,使得操作系统205可以发现所请求的字体的存在,并且可以使用该字体,犹如该字体被安装在操作系统205本身中。在所描绘的实施例中,在步骤313通过SDK211激活接收到的字体允许仅在目标应用程序209内使用接收到的字体(相较于全局激活的字体,如系统字体207,它对于运行在设备上的所有应用程序是可用的)。在一些实施例中,在步骤313的字体激活可以包括即时字体激活。在这种实施例中,可以根据需要在目标应用程序209需要呈现文本内容的准确(或接近准确)时刻发生字体激活。
[0038]在步骤315,目标应用程序209完成启动。例如,在一些实施例中,应用程序209显示在显示器217上,它的用户界面和/或其它文本内容以从字体服务203接收到的字体字样进行呈现。
[0039]这里所陈述的方法和特征还可以通过能够存储计算机可读指令的任何数量的计算机可读介质来实现。可以使用的计算机可读介质的示例包括RAM、R0M、EEPR0M、闪存或其它存储器技术、CD - ROM、DVD或其它光盘贮存器、磁带盒、磁带、磁贮存器等。
[0040]附加地或可替代地,在至少一些实施例中,这里所陈述的方法和特征可以通过一个或多个集成电路(IC)来实现。例如,集成电路可以是访问编程指令或存储在只读存储器(ROM)中的其它数据的微处理器。在一些这样的实施例中,ROM存储导致IC执行根据这里描述的一种或多种方法的操作的编程指令。在至少一些其它实施例中,这里所描述的一种或多种方法硬连线到1C。换句话说,在这种情况下,IC是专用集成电路(ASIC),其具有专用于计算和在此描述的其它操作的门电路和其它逻辑。在其它实施例中,IC可以基于对从ROM或RAM中读出的编程指令的执行来执行一些操作和硬连线到门电路和IC的其它逻辑的其它操作。此外,IC可以输出图像数据到显示缓冲器。
[0041]如这里所描述的,所提供的系统、装置、方法和计算机可读介质可以提供许多优点给目标用户、第三方软件开发者,等等。例如,所提供的系统、装置、方法和计算机可读介质可以提供多种高质量的字体以供设计和编码软件应用程序209的用户界面和文本内容时进行选择。此外,在一些实施例中,SDK211为第三方开发者处理细节,如在后台线程上下载字体以允许主线程保持响应、将字体存储在应用程序209的沙盒215中,以及激活字体。另夕卜,在一些实施例中,为在其中支持SDK211的客户端设备103优化字体,使得下载该字体所需的带宽可以减少,在客户端设备103上存储该字体所需的存储量可以减少,和/或呈现应用209中的文本内容所需要的时间可以减少。根据一些方面,SDK211可以在应用程序209首次运行时对下载字体进行处理,这可以减少应用程序209的初始下载的大小。这在客户端设备103是,例如,移动设备201时,可能是特别有益的,因为在首次执行时加载资源(而不是把它们封装在应用程序209中)对于移动设备201的应用程序209也许是推荐的最佳做法。所提供的系统、装置、方法和计算机可读介质可提供许多其它优点给目标用户、第三方软件开发者等等,考虑到本公开的益处,这对于本领域技术人员将是显而易见的。
[0042]虽然已经描述了执行各种功能的具体示例,本领域技术人员将会理解,存在上述系统和方法的多种变型和排列,这些都包含在所附权利要求书中所阐明的本公开的精神和范围内。此外,从本公开的回顾的角度,本领域普通技术人员将想到所附权利要求书的精神和范围内的许多其它实施例、修改和变型。
【权利要求】
1.存储计算机可读指令的一个或多个计算机可读介质,所述计算机可读指令当由处理器执行时,使得装置: 接收来自运行在操作系统中的应用程序的第一请求,其中所述第一请求是对于要在该应用程序中使用的第一字体的请求; 确定包括所述第一字体的第一字体文件是否位于对应于该应用程序的安全存储空间; 响应于确定所述第一字体文件不位于对应于该应用程序的安全存储空间: 建立与字体服务的连接; 从字体服务请求第一字体文件;以及 从字体服务接收第一字体文件;以及 在应用程序中激活第一字体。
2.根据权利要求1所述的一个或多个计算机可读介质,存储其它的指令,所述其它的指令当由处理器执行时,使得所述装置: 将第一字体文件存储在安全存储空间,以供该应用程序将来访问。
3.根据权利要求2所述的一个或多个计算机可读介质,存储其它的指令,所述其它的指令当由处理器执行时,使得所述装置: 接收来自运行在操作系统中的应用程序的第二请求,其中所述第二请求是在晚于第一请求的时间的时间的对于要在该应用程序中使用的第一字体的请求;以及从安全存储空间取得第一字体文件。
4.根据权利要求1所述的一个或多个计算机可读介质,其中所述第一字体文件通过删除下列之一来进行优化:操作系统不使用的字体微调和OpenType特征。
5.根据权利要求1所述的一个或多个计算机可读介质,其中在应用程序中激活第一字体包括以所述第一字体呈现该应用程序的文本内容。
6.根据权利要求1所述的一个或多个计算机可读介质,其中所述装置是移动设备,并且其中经由下列之一建立与字体服务的连接:无线网络连接和蜂窝数据连接。
7.根据权利要求1所述的一个或多个计算机可读介质,其中所述应用程序包含软件开发工具包。
8.根据权利要求7所述的一个或多个计算机可读介质,在软件开发工具包和字体服务之间建立于字体服务的连接。
9.根据权利要求8所述的一个或多个计算机可读介质,其中从字体服务接收第一字体文件是进一步响应于由软件开发工具包确定第一字体包含在该应用程序的开发者的订购协议中。
10.存储计算机可读指令的一个或多个计算机可读介质,所述计算机可读指令当由处理器执行时,使得装置: 接受来自客户端设备的连接: 接收对于要在所述客户端设备上的应用程序中使用的第一字体文件的第一请求; 取得对应于该应用程序的订购; 确定对应于该应用程序的订购是否包括对第一字体文件的访问;以及 响应于确定对应于该应用程序的订购包括对第一字体文件的访问:确定客户端设备所使用的操作系统; 为该客户端设备所使用的操作系统优化第一字体文件;以及 发送所述第一字体文件到客户端设备。
11.根据权利要求10所述的一个或多个计算机可读介质,其中优化第一字体文件包括减小第一字体文件的大小。
12.根据权利要求11所述的一个或多个计算机可读介质,其中优化第一字体文件还包括删除下列之一:客户端设备所使用的操作系统不使用的字体微调和OpenType特征。
13.根据权利要求11所述的一个或多个计算机可读介质,其中优化第一字体文件还包括从数据库取得与客户端设备所使用的操作系统对应的第一字体文件的优化版本。
14.根据权利要求10所述的一个或多个计算机可读介质,其中确定对应于该应用程序的订购是否包括对第一字体文件的访问包括确定该第一字体是否包括在该应用程序的开发者的订购协议中。
15.根据权利要求10所述的一个或多个计算机可读介质,其中所述客户端设备是移动设备,并且其中经由下列之一接受来自客户端设备的连接:无线网络连接和蜂窝数据连接。
16.—种移动设备,包括: 至少一个处理器;以及 存储器,可操作地耦接到所述至少一个处理器并存储计算机可读指令,所述计算机可读指令当由所述至少一个处理器执行时,使得所述移动设备: 接收来自运行在该移动设备的操作系统中的应用程序的第一请求,其中所述第一请求是对于要在该应用程序中使用的第一字体的请求; 确定包括所述第一字体的第一字体文件是否位于对应于该应用程序的安全存储空间; 响应于确定所述第一字体文件不位于所述安全存储空间: 建立与该应用程序相关联的软件开发工具包和字体服务之间的连接; 从字体服务请求第一字体文件;以及 由该软件开发工具包从字体服务接收第一字体文件,其中为操作系统优化所接收的第一字体文件; 将该第一字体文件存储在安全存储空间中;以及 在应用程序中激活该第一字体。
17.根据权利要求16所述的移动设备,其中所述存储器存储其它的计算机可读指令,所述其它的指令当由所述至少一个处理器执行时,使得所述移动设备: 接收来自运行在操作系统中的应用程序的第二请求,其中所述第二请求是在晚于第一请求的时间的时间的对于要在该应用程序中使用的第一字体的请求;以及响应于接收第二请求,从安全存储空间取得第一字体文件。
18.根据权利要求16所述的移动设备,其中所述第一字体文件通过删除下列之一来进行优化:操作系统不使用的字体微调和OpenType特征。
19.根据权利要求16所述的移动设备,其中在应用程序中激活字体包括以所述第一字体呈现该应用程序的文本内容。
20.根据权利要求16所述的移动设备,其中从字体服务接收第一字体文件是进一步响应于由软件开发工具包确 定第一字体包含在该应用程序的开发者的订购协议中。
【文档编号】G06F21/53GK104050412SQ201410083205
【公开日】2014年9月17日 申请日期:2014年3月7日 优先权日:2013年3月13日
【发明者】W.E.施瓦尼茨, S.J.拉塞尔, C.R.斯拉特 申请人:塞拉特姆股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1