CN103809996A - 对移动计算设备传播经更新驱动程序的方法和其传播系统 - Google Patents

对移动计算设备传播经更新驱动程序的方法和其传播系统 Download PDF

Info

Publication number
CN103809996A
CN103809996A CN201310349025.8A CN201310349025A CN103809996A CN 103809996 A CN103809996 A CN 103809996A CN 201310349025 A CN201310349025 A CN 201310349025A CN 103809996 A CN103809996 A CN 103809996A
Authority
CN
China
Prior art keywords
driver
mobile computing
computing device
upgrading
compatibility
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.)
Granted
Application number
CN201310349025.8A
Other languages
English (en)
Other versions
CN103809996B (zh
Inventor
尼古拉斯·黑梅尔
凯西·多诺万
纳拉亚南·斯瓦米纳坦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN103809996A publication Critical patent/CN103809996A/zh
Application granted granted Critical
Publication of CN103809996B publication Critical patent/CN103809996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

对移动计算设备传播经更新驱动程序的方法和其传播系统。本发明所公开的是对移动计算设备提供兼容的设备驱动程序的方法和系统。在一个实施例中,公开了确定设备驱动程序的不同版本和移动计算设备的操作系统之间的兼容性的方法,包括:(1)建立采用移动计算设备的当前操作系统的测试环境,(2)对测试环境应用经更新的驱动程序,以及(3)采用测试环境确定经更新的驱动程序与当前操作系统的系统兼容性,其中确定基于经更新的驱动程序与当前操作系统的直接和隐式兼容性二者。

Description

对移动计算设备传播经更新驱动程序的方法和其传播系统
相关申请的交叉引用
本申请要求由Nicholas Haemel等人于2012年11月8日提交的、序列号为61/724,088、标题为“METHOD FOR DETERMINING DRIVERLIBRARY COMPATIBILITY AND DELIVERING UPDATES”的美国临时申请的优先权,其与本申请共同受让并通过援引的方式在本文中加以合并。
技术领域
本申请总地涉及用于移动计算设备的驱动程序,并且,更具体地,涉及对移动平台的驱动程序兼容性。
背景技术
移动电话除提供语音通信以外还典型地实施许多功能。诸如智能电话的许多移动电话和其他移动计算设备还提供附加的服务,包括文本通信、连接到网络、观看视频、制作视频、照相、玩游戏等的能力。各种计算设备使用许多类型的应用来实施这些不同功能。
应用在不同移动计算设备的操作系统内进行操作。操作系统管理和协调移动计算设备的资源和活动并在用户和其硬件之间提供界面。当用户启动应用时,用于移动计算设备的各设备或模块的驱动程序被调用和使用以在应用和设备之间进行命令和数据的通信。
发明内容
在一个方面中,公开了确定设备驱动程序的不同版本和移动计算设备的操作系统之间的兼容性的方法。在一个实施例中,方法包括:(1)建立采用移动计算设备的当前操作系统的测试环境,(2)对测试环境应用经更新的驱动程序,以及(3)采用测试环境确定经更新的驱动程序与当前操作系统的系统兼容性,其中该确定基于经更新的驱动程序与当前操作系统的直接和隐式兼容性二者。
在另一方面中,提供了对移动计算设备传播设备驱动程序的方法。在一个实施例中,传播方法包括:(1)接收具有操作系统的移动计算设备的具体设备数据,(2)基于具体设备数据确定移动计算设备的操作系统,以及(3)确定与操作系统兼容的经更新的驱动程序是否对于移动计算设备可用。
在又一个方面中,提供了用于对移动计算设备提供经更新的驱动程序的传播系统。在一个实施例中,传播系统包括:(1)接口,配置为与移动计算设备进行通信,以及(2)驱动程序匹配器,配置为确定驱动程序的不同版本和计算设备的操作系统之间的系统兼容性,包括基于经更新的驱动程序与当前操作系统的直接兼容性和隐式兼容性二者来确定经更新的驱动程序与移动计算设备的当前操作系统的兼容性。
在又一个方面中,提供了计算机程序产品,其具有存储在非暂时性计算机可读介质上的、当被发起以实施方法时引导移动计算设备的处理器的操作的一系列操作指令。在一个实施例中,计算机程序产品的方法包括:(1)发送查询以询问是否至少一个与其当前操作系统兼容的经更新的驱动程序可用,其中查询包括指示移动计算设备的当前操作系统的具体设备数据,(2)当兼容时在移动计算设备的存储器中存储经更新的驱动程序,以及(3)采用驱动程序用于执行移动计算设备的应用,其中该采用包括确定经更新的驱动程序中的一个是否用于该应用以及如果可用则从存储器选择经更新的驱动程序中的所述一个。
附图说明
现在对结合附图采取的以下描述进行参考,其中:
图1示出根据本公开的原理所构造的、用于经更新的驱动程序的传播系统的实施例的系统图;
图2示出根据本公开的原理所实行的、确定驱动程序的不同版本和移动计算设备的操作系统之间的兼容性的方法的实施例的流程图;以及
图3示出根据本公开的原理所实行的、对移动计算设备传播驱动程序的方法的实施例的流程图。
具体实施方式
典型地,移动计算设备的用户想要享受应用的最新能力。例如,用户在开发之后尽可能快地想要最好的图形、最快的响应、最新特性等。这样,用户下载应用的经更新版本到其移动计算设备以体验最新特性。
为了完全获得经更新的特性,通常也需要一个或多个驱动程序的经更新版本。然而,用于移动计算设备的驱动程序具体于特定操作系统并且不能单独更新,因为用于移动计算设备的设备映像构建为单个步骤,具有在操作系统和设备的其他部件诸如内部编程接口之间的复杂的相互依赖性、隐式的部件依赖性以及其他架构限制。这样,不同于个人计算机的设计,移动计算设备的操作系统处于单个移动平台映像内。因此更新用于移动操作系统的设备驱动程序典型地要求移动计算设备的整个移动平台的全设备空中下载(over-the-air,OTA)更新。设备OTA是昂贵、耗时以及令人失望的,因为驱动程序故障或者性能问题通常是在设备进行装载(ship)之后才被识别出来。
因此,本公开提供了用于对移动计算设备传播驱动程序更新的系统和方法。本文所使用的驱动程序是用于移动计算设备的模块驱动程序或设备驱动程序。系统和方法检测设备驱动程序与操作系统构建(build)(或版本)的兼容性并传递被视为兼容的驱动程序的经更新版本。关于操作系统兼容的驱动程序是在操作系统内进行操作并正确地支持内部和外部API以及按期望响应测试和查询而不生成错误的驱动程序。为了将驱动程序兼容性映射到操作系统构建,建立测试环境,该测试环境使用操作系统的当前构建并覆盖用于给定模块或设备的经更新的驱动程序。还可使用测试环境在新操作系统构建上测试具体驱动程序模块构建。在一个实施例中,测试环境包括对操作系统和经更新的驱动程序应用测试集的回归系统。测试工具(test harness)可用于回归测试。来自进行中的回归测试的数据创建与操作系统构建的驱动程序模块兼容性的映射,所述操作系统构建为经更新的或者当前的操作系统构建。在一个实施例中,回归系统提供具有设备驱动程序的操作系统的全功能性测试。
本文所公开的传播系统可使用伴随具体设备数据的回归映射来确定用于给定模块的经更新和兼容的驱动程序是否可用。在一个实施例中,充分识别移动计算设备的特定操作平台的具体设备数据包括当前操作系统构建、模块驱动程序版本、内核版本、硬件版本、API版本等。一旦当前操作系统构建被识别,则确定经更新的、兼容的驱动程序的可用性。随后可对移动计算设备提供经更新的驱动程序,例如通过提供用于移动计算设备进行检索的链接。在一些实施例中,可由传播系统向移动计算设备发送经更新的驱动程序。传播系统可响应于来自一个或多个移动计算设备的查询来提供对经更新的驱动程序的访问。在一些实施例中,移动计算设备配置为周期性地生成查找经更新的驱动程序版本的查询。在其他实施例中,经更新的驱动程序被广播到移动计算设备。例如,针对可用的经更新的驱动程序识别移动计算设备列表。可基于设备分析来识别移动计算设备。自所识别的设备生成列表,并且可用的经更新的驱动程序随后被推送到所识别的移动计算设备。本公开还考虑客户端侧的驱动程序兼容性。在一个实施例中,当应在移动计算设备上加载诸如OpenGL驱动程序的驱动程序时,替代地加载垫片驱动程序(shim driver)。所加载的垫片驱动程序检查最新的后台实现驱动程序(例如经由链接所下载或用OTA所装载的)并随后使用内部分派表加载该库。表可存储在移动计算设备的驱动程序库中。移动计算设备的驱动程序选择器可采用垫片驱动程序以选择驱动程序用于执行。
现在转到附图,图1示出传播系统100的实施例的系统图。传播系统100根据本公开的原理配置为对移动计算设备提供经更新的驱动程序。这样,传播系统100配置为检测经更新的驱动程序与移动计算设备的操作系统的兼容性并且还提供用于传递兼容的驱动程序到移动计算设备的机构。在一个实施例中,传播系统100实现在服务器上。这样,服务器包括必要的处理器、存储器、逻辑、电路和通信接口以实施传播系统100的各功能。传播系统100包括接口110、驱动程序匹配器120、驱动程序映射表130和驱动程序传递器140。图1还示出网络160和移动计算设备170以示出传播系统100的操作。选择移动计算设备170中的一个作为其代表并表示为移动计算设备175。
接口110是配置为与移动计算设备进行通信的通信接口。接口110包括必要的电路以经由例如通信网络来传送和接收数据,该通信网络诸如网络160。这样,接口110配置为经由包括例如联网协议的通信协议来进行通信,所述联网协议诸如以太网、Wi-Fi或因特网协议。接口110配置为经由无线或有线连接进行通信。
接口110配置为接收由移动计算设备170所生成的查询,所述查询对与其已有的操作系统兼容的经更新的驱动程序的可用性进行询问。查询可采用符合常规协议标准的格式。查询可包括指示发送查询的移动计算设备的操作系统的具体设备数据。
接口110还可提供对移动计算设备170兼容的经更新的驱动程序。在一个实施例中,接口110将链接从驱动程序传递器140传递到进行请求的移动计算设备170以用于下载兼容的经更新的驱动程序。在其他实施例中,接口110可传递兼容的经更新的驱动程序到移动计算设备170。这样,传播系统100可存储经更新的驱动程序。在这些实施例中,驱动程序映射表130可用来存储经更新的版本。在其他实施例中,传播系统100的存储器的另一段(section)或另一个存储器可用来存储经更新的驱动程序。接口110还可配置为从开发者或厂商接收经更新的驱动程序和操作系统的上载。经更新的驱动程序和操作系统可由设备驱动程序映射器120用来确定驱动程序和操作系统构建之间的兼容性。设备驱动程序映射器120还可用来将所接收的上载引导存储在传播系统100的存储器中。
驱动程序匹配器120配置为确定驱动程序的不同版本和移动计算设备的操作系统之间的系统兼容性。驱动程序匹配器120可建立测试环境用于确定兼容性。可采用测试工具和回归测试。在一个实施例中,驱动程序匹配器120配置为基于经更新的驱动程序与当前操作系统的直接兼容性和隐式兼容性二者来确定经更新的驱动程序与移动计算设备的当前操作系统的兼容性。直接兼容性基于经更新的驱动程序的二进制检查。隐式兼容性是基于与经更新的驱动程序相关联的规则和依赖性检查;其是确定假想情况是否已改变的检查。
在一个实施例中,驱动程序匹配器120配置为通过检测与经更新的驱动程序和当前操作系统相关联的一个或多个应用编程接口(API)的进入点的改变来确定直接兼容性。API用来定义应用程序或系统模块从移动计算设备的库或操作系统或其他部件中请求服务的方式或过程。通过检验API的进入点,驱动程序匹配器120可确定经更新的驱动程序是否包括已改变的、支持其导出的功能。如果针对API中的每一个未检测到导出改变(空集),那么驱动程序匹配器120证实直接兼容性。如果检测到API进入点的改变,那么驱动程序匹配器120确定经更新的驱动程序与当前操作系统不直接兼容。在一个实施例中,除非首先确认直接兼容性,否则驱动程序匹配器120不对隐式兼容性进行确定。这样,直接不兼容性的确定导致系统不兼容性的确定。在这种实施例中,如果确定直接兼容性,那么驱动程序匹配器120随后转到对隐式兼容性进行确定;如果未确定直接兼容性,那么驱动程序匹配器120指示不兼容性。
驱动程序确定器120还配置为确定经更新的驱动程序与当前操作系统构建的隐式兼容性。针对直接兼容性,设备驱动程序映射器120通过检验二进制程序或库来以编程方式检验经更新的驱动程序,以确定API改变是否存在。针对隐式兼容性,设备驱动程序映射器120检验经更新的驱动程序与当前操作系统的隐式依赖性。因此,隐式兼容性检查要检测即使在API尚未改变的情况下是否规则或假想情况已改变。在一个实施例中,驱动程序匹配器120经由具有经更新的驱动程序的当前操作系统的回归测试来确定隐式兼容性。针对回归测试,对测试集加以应用以确定与经更新的驱动程序相关联的所有隐式规则是否符合当前操作系统。测试集可包括质量、性能和功率测试。在一些实施例中,使用由OEM最初用来确定符合操作系统的驱动程序的相同测试集。如果结果与用原始设备驱动程序相同,那么驱动程序匹配器120确定经更新的驱动程序具有隐式兼容性。
驱动程序映射表130包括被视为针对特定操作系统兼容的设备驱动程序列表。驱动程序映射表130由驱动程序匹配器120基于由驱动程序匹配器120所确定的系统兼容性来填充。驱动程序映射表130可实现为列表,该列表包括当前正在移动计算设备上所使用的各种操作系统版本和与其兼容的经更新的驱动程序。在一个实施例中,驱动程序映射表130实现为存储在服务器的存储器或与服务器相关联的存储器上的可搜索的数据库。
在一个实施例中,驱动程序匹配器120每日多次进行操作。在一些实施例中,驱动程序匹配器120在每次设备驱动程序或操作系统改变时运行。这样,驱动程序匹配器120可能一天运行数百次。这些结果中的每一个可存储在驱动程序映射表130中。
在一些实施例中,驱动程序映射表130分成两个段。第一段是私有映射表段132,配置为存储来自驱动程序匹配器120的所有数据。第二段是公共映射表段134,配置为包括存储在私有映射表段132上的内容的子集,该内容例如设备驱动程序。在一个实施例中,私有映射表段132的内容被检视(review),一部分被选择以置于公共映射表段中。检视过程可通过确定设备或设备的类别来开始进行更新。随后实施所选择的设备或设备的类别的质量分析。基于此,公共映射表段134上的设备驱动程序得到更新。在一些实施例中,可手动实施检视过程。
驱动程序传递器140配置为确定驱动程序映射表130是否包括与移动计算设备的当前操作系统和硬件配置兼容的经更新的驱动程序。在一个实施例中,驱动程序传递器140进一步配置为提供用于移动计算设备的指令以当可用时获得经更新的驱动程序。驱动程序传递器140可传送链接到移动计算设备170以用来下载兼容的经更新的驱动程序。在一些实施例中,驱动程序传递器140可传送兼容的经更新的驱动程序到适用的移动计算设备。
驱动程序传递器140配置为基于来自移动计算设备的查询来搜索驱动程序映射表130。查询包括指示移动计算设备的当前操作系统和硬件配置的具体设备数据。驱动程序传递器140使用当前操作系统来搜索驱动程序映射表130以确定是否存在用于该特定当前操作系统的任何兼容的经更新的驱动程序。如果存在,那么驱动程序传递器140转到提供对用于移动计算设备的经更新的驱动程序的访问。
通信网络160是由传播系统100用来传送和接收包括上载、下载、查询等数据的常规网络。如图1中所示,移动计算设备170可经由通信网络160与传播系统100进行通信。接口110和移动计算设备170包括必要的电路以通过采用适当的联网协议的通信网络160进行通信。
移动计算设备170是特别针对使能可移植性的移动架构所构造的计算设备。移动计算设备170包括配置为实施各种功能的移动硬件和软件,所述功能包括与传播系统100进行通信。移动计算设备170可以是智能电话、平板电脑、翻盖手机、游戏设备等。移动计算设备170中的每一个包括至少一个处理器和存储器。本领域技术人员还将理解的是,移动计算设备170中的每一个包括典型地包括在包括显示器、用户界面、电源、通信接口等的这种设备中的其他部件。
除常规部件以外,移动计算设备175还包括驱动程序选择器176和驱动程序库177。在一个实施例中,驱动程序选择器176实现在移动计算设备175的处理器上,并且驱动程序库177实现在移动计算设备175的存储器的数据库上。驱动程序选择器176配置为确定与特定应用一起使用的一个或多个驱动程序。在一个实施例中,驱动程序选择器176可采用将应用与驱动程序配对的列表。列表可以是白名单,其包括例如将使用安装在移动计算设备175上的原始驱动程序的应用。如果在列表上没有,那么驱动程序选择器176可选择或自动地默认被视为针对非列表(non-listed)应用兼容的经更新的驱动程序。列表可由OEM加载以确保某些应用将总是使用原始驱动程序。
在其他实施例中,列表可包括仅用经更新的驱动程序进行工作的应用。这样,设备选择器176可通过选择哪个应用使用哪个驱动程序来优化应用的操作。传播系统100可生成列表(例如来自驱动程序映射表130的列表)并且发送列表到移动计算设备175。移动计算设备175可使用所接收的列表和所提供的经更新的驱动程序用于执行应用。
在一个实施例中,驱动程序选择器176针对每个应用采用垫片驱动程序。垫片驱动程序或垫片层检测应用的启动并且通过查找列表来获得用于应用的驱动程序,确定经更新的驱动程序是否是适用的并且解析驱动程序库177的目录以获取所挑选的驱动程序以用于执行。所挑选的驱动程序可以是经更新的驱动程序。在一个实施例中,驱动程序选择器176读取指示要搜索的目录的文本文件。垫片驱动程序可在OTA期间加载在移动计算设备176上。在另一个实施例中,垫片驱动程序可存储在由移动计算设备175可访问的数据库中。
驱动程序库177配置为存储原始驱动程序和经更新的驱动程序。驱动程序选择器176可确定哪个驱动程序用于应用并从驱动程序库177选择该所挑选的驱动程序。当执行应用时垫片驱动程序可随后调用所挑选的驱动程序。在其他实施例中,移动计算设备175的另一个部件配置为通过调整动态链接或在操作系统中移动文件来将驱动程序交换出来。
图2示出根据本公开的原理所实行的、确定设备驱动程序的不同版本和移动计算设备的操作系统之间的兼容性的方法200的实施例的流程图。在一个实施例中,可通过如本文所公开的传播系统来实行方法200。例如,传播系统或其至少一部分可包括必要的电路、操作指令或其组合以实施方法200的步骤。在各部分中,方法200指单个驱动程序。本领域技术人员应理解的是,方法200可用来确定多个经更新的驱动程序与当前操作系统的兼容性以及确定多个当前驱动程序与经更新的操作系统的兼容性。方法200开始于步骤205。
在步骤210中,建立采用移动计算设备的当前操作系统的测试环境。测试环境以当前操作系统构建为基础。在一些实施例中,测试环境是以当前操作系统构建为基础的测试工具。测试工具可采用测试以执行和测试具有经更新的驱动程序的当前操作系统的整个功能性特性集。
在步骤215中,针对当前操作系统创建基线。通过运行与当前操作系统配对的原始设备驱动程序来在测试环境中建立用于当前操作系统的基线。在步骤220中对测试环境应用经更新的驱动程序。经更新的驱动程序可覆盖在测试环境中的当前操作系统上。
在步骤230中,确定经更新的驱动程序与当前操作系统的兼容性。兼容性采用测试环境来确定,并且是基于经更新的驱动程序与当前操作系统的直接和隐式兼容性二者的。在一个实施例中,基于检测与经更新的驱动程序和当前操作系统相关联的应用编程接口的进入点的改变来确定系统兼容性。在一些实施例中,除非首先确认直接兼容性,否则不实施隐式兼容性的确定。在一些实施例中,隐式兼容性的确定包括具有经更新的驱动程序的当前操作系统的回归测试。
在步骤240中,建立采用用于移动计算设备的经更新的操作系统的另一个测试环境。除该测试环境基于经更新的操作系统而非当前操作系统之外,该测试环境可具有与步骤210的测试环境相同的格式。
在步骤250中采用该其他测试环境确定当前驱动程序与经更新的操作系统的兼容性。可用经更新的操作系统来测试多个驱动程序以确定与经更新的操作系统的兼容性。
在步骤260中,生成与用于移动计算设备的当前和经更新的操作系统兼容的驱动程序的列表。列表可保存为传播系统的驱动程序映射表。列表还可被发送到移动计算设备用于当执行应用时的使用。方法200结束于步骤270。
图3示出根据本公开的原理所实行的、对移动计算设备传播设备驱动程序的方法300的实施例的流程图。如本文所公开的传播系统可实施方法300或其至少部分。这样,传播系统例如传播系统100或其至少一部分可包括必要的电路、操作指令或其组合以实施方法300的步骤。方法300开始于步骤305。
在步骤310中,接收移动计算设备的具体设备数据。具体设备数据指示移动计算设备的当前操作系统。设备数据可从由移动计算设备所生成和传送的查询中接收。
在步骤320中,确定移动计算设备的当前操作系统。确定可基于所接收的具体设备数据。
在步骤330中,对已确定与当前操作系统兼容的经更新的驱动程序是否对于移动计算设备可用做出确定。在一个实施例中,对经更新的驱动程序的可用性和兼容性的确定包括检查列出用于特定操作系统的兼容的驱动程序的驱动程序映射表。列表可包括对于所确定的操作系统可用的驱动程序的兼容版本的范围。在一个实施例中,列表或列表其中的一部分通过确定经更新的驱动程序与当前操作系统的直接和隐式兼容性来生成。
在步骤340中,如果兼容的经更新的驱动程序可用,那么对移动计算设备提供对经更新的驱动程序的访问。可通过传送用于下载经更新的驱动程序的位置信息诸如链接或通过传送经更新的驱动程序来提供访问。在一个实施例中,如果移动计算设备已经包括经更新的驱动程序,那么不提供对经更新的驱动程序的访问。这可通过在传播系统和移动计算设备之间进行通信查询来确定。方法300结束于步骤350。
上文所述的装置、系统或方法的一部分可具体化于各种处理器或计算机中或通过各种处理器或计算机来实施,其中计算机经编程或存储软件指令序列的可执行程序以实施方法的步骤中的一个或多个。这种程序的软件指令可表示算法并可以以机器可执行形式编码在非暂时性数字数据存储媒介上,例如磁或光盘、随机存取存储器(RAM)、磁式硬盘、闪存和/或只读存储器(ROM),以使能各种类型的数字数据处理器或计算机来实施上述的方法中的一个或多个的一个、多个或所有步骤,或实施本文所描述的装置或系统的功能。
部分所公开的实施例可与具有非暂时性计算机可读介质的计算机存储产品相关,所述非暂时性计算机可读介质其上具有程序代码用于实施对装置、系统的一部分或实行本文所阐述的方法的步骤加以具体化的各种计算机实现的操作。本文所使用的非暂时性指除暂时性传输信号以外的所有计算机可读媒介。非暂时性计算机可读媒介的示例包括但不限于:磁性媒介,诸如硬盘、软盘和磁带;光学媒介,诸如CD-ROM盘;磁光媒介,诸如软光盘;以及特别配置为存储和执行程序代码的硬件设备,诸如ROM和RAM设备。程序代码的示例包括诸如由编译器所产生的机器代码以及包含可由计算机使用解释器(interpreter)所执行的更高级别代码的文件二者。
本申请相关的领域的技术人员应理解的是,可对所描述的实施例进行其他和进一步的添加、删除、替换和修改。

Claims (10)

1.一种确定设备驱动程序的不同版本和移动计算设备的操作系统之间的兼容性的方法,包括:
建立采用移动计算设备的当前操作系统的测试环境;
对所述测试环境应用经更新的驱动程序;以及
采用所述测试环境确定所述经更新的驱动程序与所述当前操作系统的系统兼容性,其中所述确定基于所述经更新的驱动程序与所述当前操作系统的直接和隐式兼容性二者。
2.根据权利要求1所述的方法,其中确定所述直接兼容性包括检测与所述经更新的驱动程序和所述当前操作系统相关联的应用编程接口的进入点的改变。
3.根据权利要求1所述的方法,其中确定所述隐式兼容性,除非直接兼容性首先得到确认否则不被实施。
4.根据权利要求1所述的方法,其中确定所述间接兼容性包括具有所述经更新的驱动程序的所述当前操作系统的功能性测试。
5.根据权利要求1所述的方法,进一步包括建立采用用于移动计算设备的经更新的操作系统的另一个测试环境以及采用所述另一个测试环境确定当前设备驱动程序与所述经更新的操作系统的兼容性。
6.根据权利要求5所述的方法,进一步包括确定多个经更新的驱动程序与所述当前操作系统的系统兼容性以及确定多个当前驱动程序与所述经更新的操作系统的兼容性。
7.根据权利要求1所述的方法,进一步包括当所述经更新的驱动程序被视为与所述当前操作系统兼容时,发送位置信息到所述移动计算设备用于访问所述经更新的驱动程序。
8.一种对移动计算设备传播设备驱动程序的方法,包括:
接收具有操作系统的移动计算设备的具体设备数据;
基于所述具体设备数据确定所述移动计算设备的所述操作系统;以及
确定与所述操作系统兼容的经更新的驱动程序是否对于所述移动计算设备可用。
9.一种用于对移动计算设备提供经更新的驱动程序的传播系统,包括:
接口,配置为与移动计算设备进行通信;以及
驱动程序匹配器,配置为确定驱动程序的不同版本和计算设备的操作系统之间的系统兼容性,包括基于所述经更新的驱动程序与所述当前操作系统的直接兼容性和隐式兼容性二者来确定经更新的驱动程序与移动计算设备的当前操作系统的兼容性。
10.根据权利要求9所述的传播系统,进一步包括具有被视为针对特定操作系统兼容的驱动程序的列表的驱动程序映射表,其中所述驱动程序匹配器基于由所述驱动程序匹配器所确定的所述系统兼容性来填充所述驱动程序映射表。
CN201310349025.8A 2012-11-08 2013-08-12 对移动计算设备传播经更新驱动程序的方法和其传播系统 Active CN103809996B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261724088P 2012-11-08 2012-11-08
US61/724,088 2012-11-08
US13/895,166 2013-05-15
US13/895,166 US8978027B2 (en) 2012-11-08 2013-05-15 Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor

Publications (2)

Publication Number Publication Date
CN103809996A true CN103809996A (zh) 2014-05-21
CN103809996B CN103809996B (zh) 2017-09-26

Family

ID=50623436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310349025.8A Active CN103809996B (zh) 2012-11-08 2013-08-12 对移动计算设备传播经更新驱动程序的方法和其传播系统

Country Status (3)

Country Link
US (3) US20140129686A1 (zh)
CN (1) CN103809996B (zh)
TW (1) TWI506555B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462429A (zh) * 2014-06-27 2017-02-22 高通股份有限公司 出于安全的原因对各种软件模块的多个功能等效的变型的动态修补
CN107479482A (zh) * 2017-08-21 2017-12-15 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4276848A3 (en) 2009-09-08 2024-01-17 Abbott Diabetes Care, Inc. Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device
US20140129686A1 (en) 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
US9542172B2 (en) * 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
CN104168160B (zh) * 2014-08-18 2017-11-24 浪潮(北京)电子信息产业有限公司 服务器兼容性测试方法和系统
US9893938B1 (en) * 2014-10-31 2018-02-13 Sorenson Ip Holdings, Llc Apparatuses and methods for distributed configuration management of communication devices
JP2016177554A (ja) * 2015-03-20 2016-10-06 セイコーエプソン株式会社 電子部品搬送装置および電子部品検査装置
US10333778B2 (en) 2015-03-25 2019-06-25 Airwatch, Llc Multiuser device staging
US10862747B2 (en) 2015-03-25 2020-12-08 Airwatch Llc Single user device staging
US9876875B2 (en) * 2015-07-24 2018-01-23 Nvidia Corporation System, method and device for providing crowd-sourced, cloud-based custom tuning for applications
KR102360178B1 (ko) 2015-08-25 2022-02-08 삼성전자주식회사 애플리케이션 리스트를 제공하는 시스템 및 그 방법
US11232372B2 (en) * 2018-11-09 2022-01-25 Cisco Technology, Inc. Merging and optimizing heterogeneous rulesets for device classification
WO2020159548A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Upgrades based on analytics from multiple sources
KR20210004288A (ko) 2019-07-04 2021-01-13 삼성전자주식회사 전자장치 및 그 제어방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050193101A1 (en) * 2004-03-01 2005-09-01 Oliver Mitchell B. Execution of unverified programs in a wireless, device operating environment
CN1722114A (zh) * 2004-06-02 2006-01-18 捷讯研究有限公司 便携式计算设备上硬件的自动配置
CN102055625A (zh) * 2010-12-31 2011-05-11 深圳市普联技术有限公司 一种网络驱动测试方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660868B1 (en) * 1999-04-26 2010-02-09 John Albert Kembel Apparatus and method for interacting with internet content via one or more applications that do not include native web browsing navigation control features
US7065769B1 (en) * 2000-06-30 2006-06-20 Intel Corporation Method for automatically installing and updating drivers
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
US20050234727A1 (en) * 2001-07-03 2005-10-20 Leo Chiu Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response
US20030037325A1 (en) * 2001-08-17 2003-02-20 Hargrove David C. System and methods for automatically installing a correct software version from media containing multiple software versions
US7392527B2 (en) * 2003-12-10 2008-06-24 Microsoft Corporation Driver-specific context for kernel-mode shimming
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7164907B2 (en) * 2004-01-13 2007-01-16 Qualcomm Inc. Automated over the air plug-in device recognition and software driver download
US7676448B2 (en) * 2004-03-12 2010-03-09 Microsoft Corporation Controlling installation update behaviors on a client computer
TWI256565B (en) * 2004-12-07 2006-06-11 Quanta Comp Inc Test system and method for portable device
US20060274869A1 (en) * 2005-06-07 2006-12-07 Yahoo! Inc. Dynamically generating content based on capabilities of a mobile device
US7657871B2 (en) * 2005-07-22 2010-02-02 Sbc Knowledge Ventures, L.P. Method and system of managing configuration profiles of a plurality of deployed network elements
US9329897B2 (en) * 2005-11-10 2016-05-03 The Mathworks, Inc. Use of dynamic profiles for creating and using a distributed computing environment
US7689205B2 (en) * 2005-12-23 2010-03-30 Morgan Stanley Systems and methods for configuration of mobile computing devices
US7779427B2 (en) * 2006-01-18 2010-08-17 Microsoft Corporation Automated application configuration using device-provided data
US20070180445A1 (en) * 2006-01-30 2007-08-02 Microsoft Corporation Download Service For Device Drivers
US20070239722A1 (en) * 2006-03-30 2007-10-11 Phillips Mark E Distributed user-profile data structure
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
JP2008203930A (ja) * 2007-02-16 2008-09-04 Canon Inc サーバ装置、ドライバ処理方法、記憶媒体、プログラム
US8863107B2 (en) * 2007-08-08 2014-10-14 Innopath Software, Inc. Workflow-based user interface system for mobile devices management
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US9313108B2 (en) * 2007-12-14 2016-04-12 Ericsson Ab Flexible and scalable method and apparatus for dynamic subscriber services configuration and management
JP4998314B2 (ja) * 2008-02-19 2012-08-15 コニカミノルタホールディングス株式会社 通信制御方法および通信制御プログラム
US20090260004A1 (en) * 2008-04-10 2009-10-15 Palm, Inc. Computer program updates for mobile computing device
US8332825B2 (en) * 2008-06-26 2012-12-11 Microsoft Corporation Dynamically monitoring application behavior
US20100011380A1 (en) * 2008-07-10 2010-01-14 Reimage System and method for replacing device drivers
US8402321B2 (en) 2010-06-21 2013-03-19 Litepoint Corporation System and method of providing driver software to test controller to facilitate testing by wireless transceiver tester of a device under test
US20120017208A1 (en) * 2010-07-14 2012-01-19 Mark Lussier System and method for updating device drivers
US9450825B2 (en) * 2010-10-19 2016-09-20 Hewlett Packard Enterprise Development Lp Managing settings of computing devices
US8478306B2 (en) * 2010-11-10 2013-07-02 Google Inc. Self-aware profile switching on a mobile computing device
US8813167B2 (en) * 2010-12-30 2014-08-19 Apple Inc. Dynamic device configuration using predicates
US9134996B2 (en) 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
US20120302346A1 (en) * 2011-05-27 2012-11-29 Ami Entertainment Network, Inc. Method of selecting a device profile for provisioning an amusement device
US9389845B2 (en) * 2011-10-24 2016-07-12 Infosys Limited System and method for dynamically generating a user personalized downloadable executable file
US20130173885A1 (en) * 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Processor and Methods of Adjusting a Branch Misprediction Recovery Mode
US8930917B2 (en) * 2012-05-22 2015-01-06 Adobe Systems Incorporated Method and apparatus for mobile application development and testing that avoids repackaging and reinstallation
US20140129686A1 (en) 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050193101A1 (en) * 2004-03-01 2005-09-01 Oliver Mitchell B. Execution of unverified programs in a wireless, device operating environment
CN1722114A (zh) * 2004-06-02 2006-01-18 捷讯研究有限公司 便携式计算设备上硬件的自动配置
CN102055625A (zh) * 2010-12-31 2011-05-11 深圳市普联技术有限公司 一种网络驱动测试方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462429A (zh) * 2014-06-27 2017-02-22 高通股份有限公司 出于安全的原因对各种软件模块的多个功能等效的变型的动态修补
CN107479482A (zh) * 2017-08-21 2017-12-15 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法
CN107479482B (zh) * 2017-08-21 2023-02-28 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法

Also Published As

Publication number Publication date
CN103809996B (zh) 2017-09-26
US20140129686A1 (en) 2014-05-08
US8978027B2 (en) 2015-03-10
TW201421363A (zh) 2014-06-01
US9569197B2 (en) 2017-02-14
TWI506555B (zh) 2015-11-01
US20140130064A1 (en) 2014-05-08
US20150154036A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
CN103809996A (zh) 对移动计算设备传播经更新驱动程序的方法和其传播系统
JP5130073B2 (ja) 情報処理システム、サーバ装置、ユーザ管理装置、情報処理方法、およびプログラム
US8997087B2 (en) Method and system for device configuration and customization during manufacturing process
JP2009544095A (ja) Ota可能な携帯端末のプログラム更新システム及び方法
US8897804B2 (en) System and method for providing customer support using a location-aware portable device
CN104685471B (zh) 软件平台到设备生态系统的自动配设
CN102904878A (zh) 用于数据包的高效下载的方法及系统
JP5004857B2 (ja) アプリケーション更新情報提供システム、及びアプリケーション更新情報提供方法
US9465599B2 (en) Method, device and system for installing terminal software
US8510423B2 (en) Install system and install method
CN103686821A (zh) 根据移动终端唯一标识进行应用程序流量统计的控制方法
US10078532B2 (en) Resource management method and device for terminal system among multiple operating systems
CN103354927A (zh) 用于管理处理设备中的内容的方法和装置
CN113094064A (zh) 网关软件模块升级方法、装置、设备及存储介质
CN110955449B (zh) 客户端的灰度发布方法及装置
CN112286586B (zh) 一种插件的配置方法及相关设备
CN105144090A (zh) 用于在高级操作系统(hlos)启动之前预读连接到智能电话的外围设备的设备驱动的方法和装置
CN104111846A (zh) 页面数据的加载方法和装置
KR101171210B1 (ko) 이동통신 단말의 파일을 관리하는 단말 관리 서버 및 방법
JP2007026318A (ja) 携帯電話機、プログラム作成方式、プログラム更新方式、プログラム作成方法及びプログラム更新方法
CN107493316B (zh) 应用运营管理方法、服务器及计算机可读存储介质
CN108664259B (zh) 一种进行应用安装的方法和终端
KR20140058130A (ko) Ota를 이용한 휴대용 기기의 펌웨어 업그레이드 방법
US20170068532A1 (en) Management apparatus, management method, and computer-readable recording medium
US10810065B1 (en) Application programming interface (API) platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant