US20140129686A1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- US20140129686A1 US20140129686A1 US13/894,869 US201313894869A US2014129686A1 US 20140129686 A1 US20140129686 A1 US 20140129686A1 US 201313894869 A US201313894869 A US 201313894869A US 2014129686 A1 US2014129686 A1 US 2014129686A1
- Authority
- US
- United States
- Prior art keywords
- computing device
- settings
- mobile computing
- profile settings
- profile
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Definitions
- This application is directed, in general, to computing devices and, more specifically, to profile settings for different components of mobile computing devices.
- Mobile telephones typically perform many functions in addition to providing voice communication.
- Many mobile telephones, such as smart phones, and other mobile computing devices now also provide additional services including the ability to communicate by text, connect to the web, watch videos, make videos, take pictures, play games, etc.
- the various computing devices use many types of applications to perform these different functions.
- the disclosure provides a mobile computing device.
- the mobile computing device includes: (1) a settings reservoir configured to store dynamic sets of profile settings and static set of profile settings for the computing device and (2) a profile generator configured to generate coalesced sets of profile settings for applications on the computing device based on the dynamic sets of profiles and the static set of profiles.
- the disclosure provides a method of operating a mobile computing device.
- the method includes: (1) receiving dynamic sets of profile settings based on system characteristics of the computing device, (2) determining a coalesced set of profile settings for the computing device based on the dynamic sets of profile settings and sets of static profile settings stored on the computing device and (3) selecting, for an application on the computing device, settings from a set of the coalesced sets of profile settings for components of the computing device.
- the disclosure provides a method of configuring an apparatus to operate employing profile settings for components thereof that are tailored to particular applications on the apparatus and to characteristics of the components.
- the method of manufacturing includes: (1) configuring the apparatus to store a set of application profiles based on system characteristics of the computing device, (2) configuring the apparatus to generate a coalesced set of application profiles by comparing the set of application profiles with a second set of application profiles from another source and (3) configuring the apparatus to deliver profile settings to components of the apparatus for an application when the application is launched, wherein the profile settings are from a set of the coalesced sets of profile settings.
- the disclosure provides an external source for dynamic profile settings for mobile computing devices.
- the external source includes: (1) a memory configured to store profile settings for applications that execute on mobile computing devices and (2) a processor configured to determine a dynamic set of profile settings for executing an application on a specific one of the mobile computing devices by hierarchically filtering the profile settings according to characteristics of the specific one.
- FIG. 1 illustrates a diagram of an embodiment of a distribution system employed by a mobile computing device to receive dynamic sets of application profiles according to the principles of the disclosure
- FIG. 2 illustrates a block diagram of an embodiment of a mobile computing device constructed according to the principles of the disclosure
- FIG. 3 illustrates a flow chart of an embodiment of a method for operating a mobile computing device carried out according to the principles of the disclosure
- FIG. 4 illustrates a flow diagram of an embodiment of a method of configuring an apparatus for operation carried out according to the principles of the disclosure.
- Mobile computing devices have the ability to perform multiple services or functions under the direction of different applications loaded thereon.
- An application is a computer program or programs designed for use by an end user.
- an application includes both systems programs or software and end-user programs or software.
- the settings for the various components of a mobile computing device can vary for the different applications. For example, one application may have different power requirements and perform optimally according to particular power management guidelines. Another application can ideally operate with particular settings for a display of the mobile computing device compared to other applications. Thus, the optimal settings or profile settings for the various components of a mobile computing device for different applications can change.
- Profile settings as used herein are a group or set of states and/or values of parameters for the components or modules of a mobile computing device.
- a component or module as used herein is a software library or module providing specific system functionality on the mobile computing device such as CPU governor strategy, OpenGL rendering, display composition, etc.
- a mobile computing device is a computing device constructed specifically for a mobile architecture that enables portability.
- a mobile computing device includes the mobile hardware and software that is configured to perform various functions including communicating over a network.
- Mobile computing devices can be mobile telephones including smart phones, tablets, clamshells, game devices, etc., that include at least one processor and memory.
- processors including smart phones, tablets, clamshells, game devices, etc.
- processors include at least one processor and memory.
- each of the mobile computing devices disclosed herein include other components that are typically included in such devices including a display, user interface, power supply, communications interface, etc.
- the coalesced profile settings for an application are generated from dynamic sets of profile settings and at least one static set of profile settings.
- the dynamic sets of profile settings are provided from a source that is external to the mobile computing device, i.e., an external source.
- the external source can be a server that the mobile computing device connects to via, for example, a conventional connection that is wired, wireless or a combination thereof.
- the external source provides a scalable solution to providing profile settings to mobile computing devices.
- the dynamic sets of profile settings include sets of profile settings wherein each of the sets are specifically tailored for the characteristics of the components of the mobile computing device with respect to a particular application on the mobile computing device.
- the dynamic sets of profile settings can include a set of profile settings for a particular game, a set of profile settings for a voice application, a set of profile settings for a texting application, a system application, etc., wherein each of the sets is tailored for the components or modules of the mobile computing device.
- a set of the dynamic sets of profile settings correspond to the specific characteristics of the components of a mobile computing device for each application.
- each set of the dynamic sets of profile settings can be for a particular application and directed to characteristics of a device including, for example, a specific manufacturer, a model, a carrier, an operating system, a version of an operating system, a chip type, a chip family or any combination thereof.
- the dynamic sets of profile settings are hierarchically filtered application profiles that are filtered based on the characteristic data.
- the external source can generate, store and deliver hierarchically filtered application profiles to mobile computing devices.
- the external source is configured to use a hierarchical filtering approach to determine which profile settings to return to a mobile computing device.
- the hierarchical categories for filtering the profile settings can range from general (e.g., operating system, chip family) to specific (e.g., device name, device manufacturer) characteristic data of the mobile computing device.
- the external source is configured to store many profile settings associated with a mobile computing device and only select the correct profile setting to send to the mobile computing device. The correct profile setting is the most specific, hierarchically filtered profile setting for a particular mobile computing device.
- game XYZ may have a general profile setting containing stereo settings stored in the database of the external source.
- a device profile for a specific type of mobile computing device is stored on the external source that describes the stereo settings and power biases for the game XYZ.
- the correct profile returned to the mobile computing device would be the device profile for the specific type of mobile computing device instead of the general profile for the game XYZ.
- the hierarchical filtered application profiles define a set of system states (e.g., CPU/GPU governor biases, CPU caps, screen resolution, screen size, stereo settings, etc.) to be set on a mobile computing device for each desired application.
- the values for a profile set can be determined experimentally or algorithmically and stored in a profile database on an external source (e.g., a server).
- the external source is configured to hierarchically filter a database of profile settings based on the characteristic data from a mobile computing device to determine a dynamic set of profile settings to be returned to the mobile computing device.
- the characteristic data can be provided to the external source via a query from the mobile computing device.
- each mobile computing device can periodically (e.g., every forty eight hours) provide the characteristic data to the external source and receive any updates to its set of application profiles. Additionally, the external source can detect which mobile computing devices are older and control how often they query for new profile settings. Profile settings for older devices change less frequently and this mechanism provides a way to reduce traffic on mobile computing devices nearing end-of-life.
- the external source provides profile settings that vary for different reasons such as different versions of the operating system, different chipsets, etc. Thus, multiple profile settings can be provided for a single application.
- the static set of profile settings is stored on the mobile computing device. Unlike the dynamic sets of profile settings, the static set of profile settings do not change.
- the static set of profile settings includes original equipment manufacturer (OEM) settings for components of the mobile computing device.
- OEM original equipment manufacturer
- multiple static sets of profile settings are stored and employed to generate the coalesced profile settings. In such embodiments, the discussion herein regarding a single static set of profile settings applies to the multiple static sets of profile settings.
- the mobile computing device generates the coalesced profile settings by receiving and loading dynamic sets of profile settings.
- the dynamic sets can be downloaded from a server over a communication network.
- the mobile computing device also loads a static set of profile settings contained on the device and generates the coalesced sets of profile settings based on both the dynamic sets of profile settings and the static set of profile settings.
- the mobile computing device is configured to replace any overlapping profile settings in the dynamic sets with settings from the static profile settings. This can be based on if the settings from the static set of profile settings have override capabilities. If both a static profile and dynamic profile exist for an application, the static set will be chosen.
- the mobile computing device will limit to the static setting of 3.0 watts.
- Settings do not always overlap between the two profile types. In this case the profile settings are used in the only profile type in which they exist. As such, settings from the static set of profile settings override settings from dynamic sets when a conflict exists. The OEM, therefore, can have final say on how components operate on their device. This creates a single set of profiles that persist on the mobile computing device referred to herein as the coalesced sets of profile settings.
- a profile generator on the mobile computing device is used to generate the coalesced sets of profile settings.
- any of the system modules of the mobile computing device such as OpenGL, Power management, 2D, etc., query a profile deliverer of the mobile computing device for the profile settings for that particular application.
- the profile deliverer determines which set of the coalesced sets of profile settings are relevant for the application and deliver the appropriate settings from the set of coalesced sets of profile settings to correctly set up the systems of the mobile computing device to optimally execute the application.
- the profile deliverer determines which set of the coalesced sets of profile settings are to be used when an application is launched, by examining the name of the application, the version of the application, a hash or checksum of the application, or a combination of any of the above. For example, the profile deliverer can examine the name of the application and a hash or checksum of the binary of the application. These are then compared against the database of coalesced sets of profile settings and both must match for an application profile to be used. This prevents applications on the mobile computing device that have been tampered with from loading application profiles. Additionally, this allows developers to be unaffected by existing profile settings while developing updates to their applications which might have profiles for older versions of the applications.
- FIG. 1 illustrates a diagram of an embodiment of a distribution system 100 employed by mobile computing devices to receive dynamic sets of application profiles according to the principles of the disclosure.
- the distribution system 100 includes an external source 110 , a communications network 120 and multiple mobile computing devices 130 .
- the external source 110 includes a communications interface 112 , a processor 116 and a memory 114 .
- the processor 116 can be configured to perform and direct the various operations of the external source 110 disclosed herein. Accordingly, the processor 116 includes the necessary circuitry and logic to perform the disclosed features of the external source 110 .
- the memory 114 can be configured to store the dynamic profile settings.
- Each of the components of the external source 110 is connected via conventional means.
- the external source 110 is a server.
- the external source 110 is configured to store dynamic sets of profile settings for the mobile computing devices 130 . Additionally, the external source 110 is configured to determine a set of profile settings for different types of mobile computing devices according to the characteristics of the mobile computing device. The external source 110 is also configured to send the dynamic sets of profile settings to the mobile computing devices 130 .
- the external source 110 includes a communications interface 112 , a memory 114 and a processor 116 .
- the external source 110 is configured to periodically send the dynamic sets of profile settings to the mobile computing devices 130 .
- the queries and downloads can be communicated according to conventional networking protocols over the network 120 .
- the communications interface 112 is configured to receive and send the queries and downloads.
- the communications interface 112 includes conventional communications circuitry.
- the queries include characteristic data about the mobile computing devices 130 for filtering by device-specific characteristics.
- a query includes a shim that includes multiple data fields pertaining to the specific one of the mobile computing devices 130 that generated the query. For example, a query includes data for “type” that lists the specific type of mobile computing device and components thereof. Additionally, the query includes multiple data sections that further describe the device and components. Furthermore, the query includes a “notes” section wherein additional information or options can be provided for a specific one of the multiple data fields.
- the type column can include device, system, system software, display, features, applications and miscellaneous.
- the data sections can include manufacturer, model, serial number, security ID, carrier and operating system version.
- the data sections can include chip type, memory, memory clock, GPU clock max, CPU clock max, power management mode and network connection.
- the notes for the power management mode can include max performance, balanced, max battery and none.
- the notes section can include type and speed.
- the data sections can include not only the application name but also the version of the application. Accordingly, profile settings, can be matched to specific versions of applications.
- the correct hierarchical filtered profile settings can be selected by the external source 110 for delivery to the appropriate one of the mobile computing devices 130 .
- the processor 116 can be configured to hierarchically filter the profile settings stored on the memory 114 according to the characteristic data provided by the query.
- the external source 110 can log the data provided by the queries, traverse the dynamic sets of profile settings stored thereon based on the data from the mobile computing devices 130 and return one of the dynamic sets of profile settings to the appropriate one of the mobile computing devices 130 .
- the external source 110 is configured to store already determined hierarchical filtered application profiles for possible future downloads.
- the external source 110 communicates with the mobile computing devices 130 via the communications network 120 .
- the communications network 120 is a conventional network that is used by the mobile computing devices to transmit and receive data to and from the external source 110 .
- the external source 110 and the mobile computing devices 130 include the necessary circuitry to communicate over the communications network employing the proper networking protocol.
- the mobile computing device 132 includes an interface 133 , a memory 134 , a memory 135 and a processor 136 .
- the mobile computing device 132 also includes additional components such as a display, a user interface, a microphone, a speaker, etc. that are not illustrated herein.
- the interface 133 is a communication interface that includes the necessary circuitry to transmit and receive data via, for example, the communications network 120 .
- the interface 133 is configured to communicate via communication protocols including, for example, networking protocols such as Ethernet, Wi-Fi or Internet protocol.
- the interface 133 is configured to communicate via wireless or wired connections.
- the interface 133 receives the dynamic sets of profile settings from the external source 110 .
- the dynamic sets are then stored in the memory 134 .
- Receiving, encoding and storing the dynamic sets can be performed in a conventional manner.
- the static set of profile settings is stored in the memory 135 .
- the memory 134 is a dynamic memory and the memory 135 is a static memory.
- the memories 134 , 135 can be partitioned portions of a single memory.
- the processor 136 is configured to generate coalesced sets of profile settings from the dynamic sets and the static set of profile settings. Accordingly, the processor 136 includes the necessary circuitry and logic to load the dynamic sets and the static set of profile settings and generate therefrom the coalesced sets of profile settings. In one embodiment, the coalesced sets of profile settings are then stored in the memory 134 .
- the processor 136 is also configured to deliver settings from a set of the coalesced sets of profile settings to the various components of the mobile computing device 132 for particular applications operating thereon.
- the processor 136 is configured to verify the particular set before selecting and delivering the settings. This can be done by comparing the name of a particular application to the database of coalesced sets of profile settings. In some embodiments, additional security is provided by also comparing a hash or checksum value of an application on the mobile computing device that is, for example, being launched, to a hash or checksum value stored under the name of the application with the coalesced sets of profile settings.
- Communication between the interface 133 , the memory 134 , the memory 135 and the processor 136 and with the various components of the mobile computing device 132 can be via conventional means employing typical protocols known in the art.
- FIG. 2 illustrates a block diagram of an embodiment of a mobile computing device 200 constructed according to the principles of the disclosure.
- the mobile computing device 200 can be one of the mobile computing devices 130 of FIG. 1 .
- the mobile computing device 200 is an apparatus that a user employs for various services or for operating various applications.
- the mobile computing device 200 is a computing device designed for voice communication, such as a smart telephone.
- the mobile computing device 200 is not designed for voice communication over a cellular communication network.
- the mobile computing device 200 includes a communications interface 210 , a settings reservoir 220 , a profile generator 230 and a profile deliverer 240 .
- a communications interface 210 receives a communications from a user.
- a settings reservoir 220 receives a settings from a user.
- a profile generator 230 generates a profile from a profile.
- a profile deliverer 240 delivers a profile to a user.
- additional components represented by components 260 , that are not illustrated such as, a display, a user interface, a power supply, etc.
- the communications interface 210 can be a conventional interface on mobile computing devices that is configured to transmit and receive data.
- the communications interface 210 can include an antenna for wireless communication.
- the communications interface 210 can include a port or connector for wired communication.
- the communications interface 210 is configured to receive the dynamic sets of profile settings.
- the communications interface 210 is configured to receive the dynamic sets of profile settings via a wireless connection.
- the communications interface 210 may employ an antenna to communicate with a server, such as external source 110 , to receive the dynamic sets.
- the dynamic sets of profile settings may be received on a periodic basis. For example, the dynamic sets may be downloaded every 48 hours or another selected time period. In some embodiment, the dynamic sets of profile settings may only be downloaded when a change has been made thereto.
- a query can be used to inquire if a change has been made. As discussed above, the query can include characteristic data of the mobile computing device 200 that details the characteristics and features of the mobile computing device 200 .
- the communications interface 210 may receive the dynamic sets of profile settings from a wired connection such as when coupled to a desk top computer. In some embodiments, the communication interface 210 receives a memory stick that has stored thereon the dynamic sets of profile settings.
- the settings reservoir 220 is configured to store dynamic sets of profile settings and static set of profile settings for the mobile computing device 200 . As such, the settings reservoir 220 is configured to store two distinct sets of profile settings. In one embodiment, the settings reservoir 220 is implemented as a memory or memories. In some embodiments, the dynamic sets of profile settings are stored in a first memory and the static set of profile settings is stored in a second memory distinct from the first memory.
- the first memory can be a RAM and the second memory can be a ROM.
- the profile generator 230 is configured to generate coalesced sets of profile settings for applications on the mobile computing device 200 based on the dynamic sets of profiles and the static set of profiles.
- the profile deliverer 240 is configured to deliver settings from a set of the coalesced profile settings to components of the mobile computing device 200 for the application.
- the profile deliverer 240 is configured to determine the set of the coalesced profile settings by verifying both a name of the application and a hash or checksum of a binary of the application with a database of the coalesced profile settings stored on the settings reservoir.
- the database can include the names of applications, hash or checksum values and other identifying features for security, such as hash or checksum values, version, etc. Additionally, the database includes the settings for each of the different applications.
- the profile deliverer 240 can be prompted to select and deliver the settings in response to the application being launched on the computing device.
- a user can initiate or launch an application employing a user interface. Thereafter, the settings for the various components of the mobile computing device 200 are retrieved for executing the application.
- the profile deliverer 240 identifies the relevant set of coalesced sets of profile settings that correspond to the launched application. As noted above, the application can be verified through various criteria.
- the profile deliverer 240 then delivers the settings of the selected set of coalesced sets of profile settings to the components of the mobile computing device 200 for execution of the application.
- the profile deliverer 240 is configured to deliver the settings in response to a query from the components of the mobile computing device 200 .
- each individual component can individually request settings for executing a particular launched application.
- the profile deliverer 240 still verifies the set of coalesced sets of profile settings for the application and then selects the particular settings for the requesting component from the set and delivers those settings.
- FIG. 3 illustrates a flow chart of an embodiment of a method 300 for operating a mobile computing device carried out according to the principles of the disclosure.
- the method 300 or at least a portion thereof can be implemented as a series of operating instructions stored on a non-transitory computer readable medium that directs the operation of a processor.
- the method 300 may be implemented as a computer program product.
- the method 300 begins in a step 305 .
- a step 310 dynamic sets of profile settings based on system characteristics of the computing device are received.
- the dynamic sets can be received via a server over a communications network.
- Coalesced sets of profile settings are determined in a step 320 for the computing device.
- the coalesced sets of profile settings are generated from the dynamic sets of profile settings and a set of static profile settings stored on the mobile computing device.
- generating the coalesced sets of profile settings includes replacing overlapping profile settings in the dynamic sets of profile settings with profile settings from the static set of profile settings. This can be based on if the particular static settings have override capability.
- a step 330 settings are selected, for an application on the mobile computing device, from a set of the coalesced sets of profile settings for components of the computing device.
- the method 300 includes verifying the application with the relevant settings. Verification can be based on comparing the name of the application with a database of the coalesced sets of profile settings. Other verification procedures that provide additional security can also be used.
- the selected settings are delivered to the components for execution during operation of the application.
- the selected settings can be delivered based on receiving queries from the components in response to launching the application and selecting the set in response to the queries.
- the method 340 ends in a step 350 .
- FIG. 4 illustrates a flow diagram of an embodiment of a method 400 of configuring an apparatus for operation carried out according to the principles of the disclosure.
- the apparatus can be a tablet, a clamshell, a smart phone, a gaming device or another type of mobile computing device, such as a portable device, that executes and operates applications.
- the method 400 may occur at manufacturing of the apparatus. In other embodiments, the method 400 could occur when upgrading the apparatus. Configuring as used herein refers to providing the apparatus with the necessary logic, circuitry, instructions or combination thereof to perform the particular functions.
- the method 400 begins in a step 405 .
- the apparatus is configured to store a set of application profile settings based on system characteristics of the apparatus.
- the apparatus is configured to generate a coalesced set of application profile settings by comparing the set of application profiles with a second set of application profiles from a different source.
- the apparatus is configured to generate the coalesced set of application profile settings by replacing settings for a component of the apparatus with settings for the component from the second set of application profiles. At least a portion of the second set of application profiles can be established during manufacturing of the apparatus.
- the apparatus is configured to select settings for an application from a set of the coalesced sets of profile settings.
- the apparatus is configured to deliver profile settings to components of the apparatus for an application when the application is launched.
- the profile settings are from a set of the coalesced sets of profile settings.
- the method 400 ends in a step 450 .
- a portion of the above-described apparatuses, systems or methods may be embodied in or performed by various processors or computers, wherein the computers are programmed or store executable programs of sequences of software instructions to perform one or more of the steps of the methods.
- the software instructions of such programs may represent algorithms and be encoded in machine-executable form on non-transitory digital data storage media, e.g., magnetic or optical disks, random-access memory (RAM), magnetic hard disks, flash memories, and/or read-only memory (ROM), to enable various types of digital data processors or computers to perform one, multiple or all of the steps of one or more of the above-described methods, or functions of the apparatuses or systems described herein.
- RAM random-access memory
- ROM read-only memory
- Portions of disclosed embodiments may relate to computer storage products with a non-transitory computer-readable medium that have program code thereon for performing various computer-implemented operations that embody a part of an apparatus, system or carry out the steps of a method set forth herein.
- Non-transitory used herein refers to all computer-readable media except for transitory, propagating signals. Examples of non-transitory computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and execute program code, such as ROM and RAM devices.
- Examples of program code include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Abstract
A mobile computing device, a method of operating thereof, a method of manufacturing and an external source for dynamic profile settings for mobile computing devices. In one embodiment, the mobile computing device includes: (1) a settings reservoir configured to store dynamic sets of profile settings and static set of profile settings for the computing device and (2) a profile generator configured to generate coalesced sets of profile settings for applications on the computing device based on the dynamic sets of profiles and the static set of profiles.
Description
- This application claims the benefit of U.S. Provisional Application Ser. No. 61/724,088, filed by Nicholas Haemel, et al., on Nov. 8, 2012, entitled “METHOD FOR DETERMINING DRIVER LIBRARY COMPATIBILITY AND DELIVERING UPDATES,” commonly assigned with this application and incorporated herein by reference.
- This application is directed, in general, to computing devices and, more specifically, to profile settings for different components of mobile computing devices.
- Mobile telephones typically perform many functions in addition to providing voice communication. Many mobile telephones, such as smart phones, and other mobile computing devices now also provide additional services including the ability to communicate by text, connect to the web, watch videos, make videos, take pictures, play games, etc. The various computing devices use many types of applications to perform these different functions.
- In one aspect, the disclosure provides a mobile computing device. In one embodiment, the mobile computing device includes: (1) a settings reservoir configured to store dynamic sets of profile settings and static set of profile settings for the computing device and (2) a profile generator configured to generate coalesced sets of profile settings for applications on the computing device based on the dynamic sets of profiles and the static set of profiles.
- In another aspect, the disclosure provides a method of operating a mobile computing device. In one embodiment, the method includes: (1) receiving dynamic sets of profile settings based on system characteristics of the computing device, (2) determining a coalesced set of profile settings for the computing device based on the dynamic sets of profile settings and sets of static profile settings stored on the computing device and (3) selecting, for an application on the computing device, settings from a set of the coalesced sets of profile settings for components of the computing device.
- In yet another aspect, the disclosure provides a method of configuring an apparatus to operate employing profile settings for components thereof that are tailored to particular applications on the apparatus and to characteristics of the components. In one embodiment, the method of manufacturing includes: (1) configuring the apparatus to store a set of application profiles based on system characteristics of the computing device, (2) configuring the apparatus to generate a coalesced set of application profiles by comparing the set of application profiles with a second set of application profiles from another source and (3) configuring the apparatus to deliver profile settings to components of the apparatus for an application when the application is launched, wherein the profile settings are from a set of the coalesced sets of profile settings.
- In still yet another aspect, the disclosure provides an external source for dynamic profile settings for mobile computing devices. In one embodiment, the external source includes: (1) a memory configured to store profile settings for applications that execute on mobile computing devices and (2) a processor configured to determine a dynamic set of profile settings for executing an application on a specific one of the mobile computing devices by hierarchically filtering the profile settings according to characteristics of the specific one.
- Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 illustrates a diagram of an embodiment of a distribution system employed by a mobile computing device to receive dynamic sets of application profiles according to the principles of the disclosure; -
FIG. 2 illustrates a block diagram of an embodiment of a mobile computing device constructed according to the principles of the disclosure; -
FIG. 3 illustrates a flow chart of an embodiment of a method for operating a mobile computing device carried out according to the principles of the disclosure; and -
FIG. 4 illustrates a flow diagram of an embodiment of a method of configuring an apparatus for operation carried out according to the principles of the disclosure. - Mobile computing devices have the ability to perform multiple services or functions under the direction of different applications loaded thereon. An application is a computer program or programs designed for use by an end user. In some embodiments, an application includes both systems programs or software and end-user programs or software. For optimal enjoyment or execution of an application from a user's perspective or from the perspective of a mobile computing device itself, the settings for the various components of a mobile computing device can vary for the different applications. For example, one application may have different power requirements and perform optimally according to particular power management guidelines. Another application can ideally operate with particular settings for a display of the mobile computing device compared to other applications. Thus, the optimal settings or profile settings for the various components of a mobile computing device for different applications can change. Profile settings as used herein are a group or set of states and/or values of parameters for the components or modules of a mobile computing device. A component or module as used herein is a software library or module providing specific system functionality on the mobile computing device such as CPU governor strategy, OpenGL rendering, display composition, etc.
- Accordingly, the disclosure provides a scheme that allows a mobile computing device to select a set of coalesced profile settings that correspond to a particular application on a mobile computing device. A mobile computing device is a computing device constructed specifically for a mobile architecture that enables portability. A mobile computing device includes the mobile hardware and software that is configured to perform various functions including communicating over a network. Mobile computing devices can be mobile telephones including smart phones, tablets, clamshells, game devices, etc., that include at least one processor and memory. One skilled in the art will also understand that each of the mobile computing devices disclosed herein include other components that are typically included in such devices including a display, user interface, power supply, communications interface, etc.
- The coalesced profile settings for an application are generated from dynamic sets of profile settings and at least one static set of profile settings. The dynamic sets of profile settings are provided from a source that is external to the mobile computing device, i.e., an external source. The external source can be a server that the mobile computing device connects to via, for example, a conventional connection that is wired, wireless or a combination thereof. The external source provides a scalable solution to providing profile settings to mobile computing devices.
- The dynamic sets of profile settings include sets of profile settings wherein each of the sets are specifically tailored for the characteristics of the components of the mobile computing device with respect to a particular application on the mobile computing device. For example, the dynamic sets of profile settings can include a set of profile settings for a particular game, a set of profile settings for a voice application, a set of profile settings for a texting application, a system application, etc., wherein each of the sets is tailored for the components or modules of the mobile computing device. As such, a set of the dynamic sets of profile settings correspond to the specific characteristics of the components of a mobile computing device for each application. Thus, each set of the dynamic sets of profile settings can be for a particular application and directed to characteristics of a device including, for example, a specific manufacturer, a model, a carrier, an operating system, a version of an operating system, a chip type, a chip family or any combination thereof. In some embodiments, the dynamic sets of profile settings are hierarchically filtered application profiles that are filtered based on the characteristic data.
- Thus, in some embodiments the external source can generate, store and deliver hierarchically filtered application profiles to mobile computing devices. As such, the external source is configured to use a hierarchical filtering approach to determine which profile settings to return to a mobile computing device. The hierarchical categories for filtering the profile settings can range from general (e.g., operating system, chip family) to specific (e.g., device name, device manufacturer) characteristic data of the mobile computing device. In one embodiment the external source is configured to store many profile settings associated with a mobile computing device and only select the correct profile setting to send to the mobile computing device. The correct profile setting is the most specific, hierarchically filtered profile setting for a particular mobile computing device. For example, game XYZ may have a general profile setting containing stereo settings stored in the database of the external source. Additionally, a device profile for a specific type of mobile computing device is stored on the external source that describes the stereo settings and power biases for the game XYZ. In this example, the correct profile returned to the mobile computing device would be the device profile for the specific type of mobile computing device instead of the general profile for the game XYZ.
- Accordingly, the hierarchical filtered application profiles define a set of system states (e.g., CPU/GPU governor biases, CPU caps, screen resolution, screen size, stereo settings, etc.) to be set on a mobile computing device for each desired application. The values for a profile set can be determined experimentally or algorithmically and stored in a profile database on an external source (e.g., a server). As such, in one embodiment, the external source is configured to hierarchically filter a database of profile settings based on the characteristic data from a mobile computing device to determine a dynamic set of profile settings to be returned to the mobile computing device. The characteristic data can be provided to the external source via a query from the mobile computing device. In some embodiments, each mobile computing device can periodically (e.g., every forty eight hours) provide the characteristic data to the external source and receive any updates to its set of application profiles. Additionally, the external source can detect which mobile computing devices are older and control how often they query for new profile settings. Profile settings for older devices change less frequently and this mechanism provides a way to reduce traffic on mobile computing devices nearing end-of-life.
- By employing the hierarchical filtered application profiles, the external source provides profile settings that vary for different reasons such as different versions of the operating system, different chipsets, etc. Thus, multiple profile settings can be provided for a single application.
- The static set of profile settings is stored on the mobile computing device. Unlike the dynamic sets of profile settings, the static set of profile settings do not change. In one embodiment, the static set of profile settings includes original equipment manufacturer (OEM) settings for components of the mobile computing device. In some embodiments, multiple static sets of profile settings are stored and employed to generate the coalesced profile settings. In such embodiments, the discussion herein regarding a single static set of profile settings applies to the multiple static sets of profile settings.
- In one embodiment, the mobile computing device generates the coalesced profile settings by receiving and loading dynamic sets of profile settings. As noted above, the dynamic sets can be downloaded from a server over a communication network. The mobile computing device also loads a static set of profile settings contained on the device and generates the coalesced sets of profile settings based on both the dynamic sets of profile settings and the static set of profile settings. In one embodiment, the mobile computing device is configured to replace any overlapping profile settings in the dynamic sets with settings from the static profile settings. This can be based on if the settings from the static set of profile settings have override capabilities. If both a static profile and dynamic profile exist for an application, the static set will be chosen. For example, if the dynamic profile limits total device power to 3.5 watts for a given application and the static profile limits total device power to 3.0 watts, the mobile computing device will limit to the static setting of 3.0 watts. Settings do not always overlap between the two profile types. In this case the profile settings are used in the only profile type in which they exist. As such, settings from the static set of profile settings override settings from dynamic sets when a conflict exists. The OEM, therefore, can have final say on how components operate on their device. This creates a single set of profiles that persist on the mobile computing device referred to herein as the coalesced sets of profile settings. A profile generator on the mobile computing device is used to generate the coalesced sets of profile settings.
- When an application starts on the mobile computing device, any of the system modules of the mobile computing device, such as OpenGL, Power management, 2D, etc., query a profile deliverer of the mobile computing device for the profile settings for that particular application. The profile deliverer determines which set of the coalesced sets of profile settings are relevant for the application and deliver the appropriate settings from the set of coalesced sets of profile settings to correctly set up the systems of the mobile computing device to optimally execute the application.
- In one embodiment, the profile deliverer determines which set of the coalesced sets of profile settings are to be used when an application is launched, by examining the name of the application, the version of the application, a hash or checksum of the application, or a combination of any of the above. For example, the profile deliverer can examine the name of the application and a hash or checksum of the binary of the application. These are then compared against the database of coalesced sets of profile settings and both must match for an application profile to be used. This prevents applications on the mobile computing device that have been tampered with from loading application profiles. Additionally, this allows developers to be unaffected by existing profile settings while developing updates to their applications which might have profiles for older versions of the applications.
-
FIG. 1 illustrates a diagram of an embodiment of adistribution system 100 employed by mobile computing devices to receive dynamic sets of application profiles according to the principles of the disclosure. Thedistribution system 100 includes anexternal source 110, acommunications network 120 and multiplemobile computing devices 130. Theexternal source 110 includes acommunications interface 112, aprocessor 116 and amemory 114. Theprocessor 116 can be configured to perform and direct the various operations of theexternal source 110 disclosed herein. Accordingly, theprocessor 116 includes the necessary circuitry and logic to perform the disclosed features of theexternal source 110. Thememory 114 can be configured to store the dynamic profile settings. Each of the components of theexternal source 110 is connected via conventional means. In one embodiment, theexternal source 110 is a server. - The
external source 110 is configured to store dynamic sets of profile settings for themobile computing devices 130. Additionally, theexternal source 110 is configured to determine a set of profile settings for different types of mobile computing devices according to the characteristics of the mobile computing device. Theexternal source 110 is also configured to send the dynamic sets of profile settings to themobile computing devices 130. Theexternal source 110 includes acommunications interface 112, amemory 114 and aprocessor 116. - In some embodiments, the
external source 110 is configured to periodically send the dynamic sets of profile settings to themobile computing devices 130. The queries and downloads can be communicated according to conventional networking protocols over thenetwork 120. Thecommunications interface 112 is configured to receive and send the queries and downloads. In one embodiment, thecommunications interface 112 includes conventional communications circuitry. - In one embodiment the queries include characteristic data about the
mobile computing devices 130 for filtering by device-specific characteristics. In some embodiments, a query includes a shim that includes multiple data fields pertaining to the specific one of themobile computing devices 130 that generated the query. For example, a query includes data for “type” that lists the specific type of mobile computing device and components thereof. Additionally, the query includes multiple data sections that further describe the device and components. Furthermore, the query includes a “notes” section wherein additional information or options can be provided for a specific one of the multiple data fields. - For example, the type column can include device, system, system software, display, features, applications and miscellaneous. For device, the data sections can include manufacturer, model, serial number, security ID, carrier and operating system version. For system, the data sections can include chip type, memory, memory clock, GPU clock max, CPU clock max, power management mode and network connection. The notes for the power management mode can include max performance, balanced, max battery and none. For the network connection, the notes section can include type and speed. For the applications, the data sections can include not only the application name but also the version of the application. Accordingly, profile settings, can be matched to specific versions of applications. With the specific data from each of the
mobile computing devices 130, the correct hierarchical filtered profile settings can be selected by theexternal source 110 for delivery to the appropriate one of themobile computing devices 130. Theprocessor 116 can be configured to hierarchically filter the profile settings stored on thememory 114 according to the characteristic data provided by the query. - The
external source 110 can log the data provided by the queries, traverse the dynamic sets of profile settings stored thereon based on the data from themobile computing devices 130 and return one of the dynamic sets of profile settings to the appropriate one of themobile computing devices 130. In some embodiment, theexternal source 110 is configured to store already determined hierarchical filtered application profiles for possible future downloads. Theexternal source 110 communicates with themobile computing devices 130 via thecommunications network 120. Thecommunications network 120 is a conventional network that is used by the mobile computing devices to transmit and receive data to and from theexternal source 110. Theexternal source 110 and themobile computing devices 130 include the necessary circuitry to communicate over the communications network employing the proper networking protocol. - One of the
mobile computing devices 130 is selected as a representative and is denoted asmobile computing device 132. Themobile computing device 132 includes aninterface 133, amemory 134, amemory 135 and aprocessor 136. One skilled in the art will understand that themobile computing device 132 also includes additional components such as a display, a user interface, a microphone, a speaker, etc. that are not illustrated herein. - The
interface 133 is a communication interface that includes the necessary circuitry to transmit and receive data via, for example, thecommunications network 120. As such, theinterface 133 is configured to communicate via communication protocols including, for example, networking protocols such as Ethernet, Wi-Fi or Internet protocol. Theinterface 133 is configured to communicate via wireless or wired connections. - The
interface 133 receives the dynamic sets of profile settings from theexternal source 110. The dynamic sets are then stored in thememory 134. Receiving, encoding and storing the dynamic sets can be performed in a conventional manner. - Also stored within the
mobile computing device 132 are static set of profile settings. The static set of profile settings is stored in thememory 135. In one embodiment, thememory 134 is a dynamic memory and thememory 135 is a static memory. In some embodiments, thememories - The
processor 136 is configured to generate coalesced sets of profile settings from the dynamic sets and the static set of profile settings. Accordingly, theprocessor 136 includes the necessary circuitry and logic to load the dynamic sets and the static set of profile settings and generate therefrom the coalesced sets of profile settings. In one embodiment, the coalesced sets of profile settings are then stored in thememory 134. - The
processor 136 is also configured to deliver settings from a set of the coalesced sets of profile settings to the various components of themobile computing device 132 for particular applications operating thereon. Theprocessor 136 is configured to verify the particular set before selecting and delivering the settings. This can be done by comparing the name of a particular application to the database of coalesced sets of profile settings. In some embodiments, additional security is provided by also comparing a hash or checksum value of an application on the mobile computing device that is, for example, being launched, to a hash or checksum value stored under the name of the application with the coalesced sets of profile settings. Communication between theinterface 133, thememory 134, thememory 135 and theprocessor 136 and with the various components of themobile computing device 132 can be via conventional means employing typical protocols known in the art. -
FIG. 2 illustrates a block diagram of an embodiment of amobile computing device 200 constructed according to the principles of the disclosure. Themobile computing device 200 can be one of themobile computing devices 130 ofFIG. 1 . Themobile computing device 200 is an apparatus that a user employs for various services or for operating various applications. In one embodiment, themobile computing device 200 is a computing device designed for voice communication, such as a smart telephone. In another embodiment, themobile computing device 200 is not designed for voice communication over a cellular communication network. - The
mobile computing device 200 includes acommunications interface 210, asettings reservoir 220, aprofile generator 230 and aprofile deliverer 240. One skilled in the art will understand that themobile computing device 200 also includes additional components, represented bycomponents 260, that are not illustrated such as, a display, a user interface, a power supply, etc. - The
communications interface 210 can be a conventional interface on mobile computing devices that is configured to transmit and receive data. Thecommunications interface 210 can include an antenna for wireless communication. In one embodiment, thecommunications interface 210 can include a port or connector for wired communication. - The
communications interface 210 is configured to receive the dynamic sets of profile settings. In one embodiment, thecommunications interface 210 is configured to receive the dynamic sets of profile settings via a wireless connection. Thus, thecommunications interface 210 may employ an antenna to communicate with a server, such asexternal source 110, to receive the dynamic sets. In such embodiments, the dynamic sets of profile settings may be received on a periodic basis. For example, the dynamic sets may be downloaded every 48 hours or another selected time period. In some embodiment, the dynamic sets of profile settings may only be downloaded when a change has been made thereto. A query can be used to inquire if a change has been made. As discussed above, the query can include characteristic data of themobile computing device 200 that details the characteristics and features of themobile computing device 200. - In other embodiments, the
communications interface 210 may receive the dynamic sets of profile settings from a wired connection such as when coupled to a desk top computer. In some embodiments, thecommunication interface 210 receives a memory stick that has stored thereon the dynamic sets of profile settings. - The
settings reservoir 220 is configured to store dynamic sets of profile settings and static set of profile settings for themobile computing device 200. As such, thesettings reservoir 220 is configured to store two distinct sets of profile settings. In one embodiment, thesettings reservoir 220 is implemented as a memory or memories. In some embodiments, the dynamic sets of profile settings are stored in a first memory and the static set of profile settings is stored in a second memory distinct from the first memory. The first memory can be a RAM and the second memory can be a ROM. - The
profile generator 230 is configured to generate coalesced sets of profile settings for applications on themobile computing device 200 based on the dynamic sets of profiles and the static set of profiles. - The
profile deliverer 240 is configured to deliver settings from a set of the coalesced profile settings to components of themobile computing device 200 for the application. In one embodiment, theprofile deliverer 240 is configured to determine the set of the coalesced profile settings by verifying both a name of the application and a hash or checksum of a binary of the application with a database of the coalesced profile settings stored on the settings reservoir. The database can include the names of applications, hash or checksum values and other identifying features for security, such as hash or checksum values, version, etc. Additionally, the database includes the settings for each of the different applications. - The
profile deliverer 240 can be prompted to select and deliver the settings in response to the application being launched on the computing device. Thus, a user can initiate or launch an application employing a user interface. Thereafter, the settings for the various components of themobile computing device 200 are retrieved for executing the application. Theprofile deliverer 240 identifies the relevant set of coalesced sets of profile settings that correspond to the launched application. As noted above, the application can be verified through various criteria. Theprofile deliverer 240 then delivers the settings of the selected set of coalesced sets of profile settings to the components of themobile computing device 200 for execution of the application. In one embodiment, theprofile deliverer 240 is configured to deliver the settings in response to a query from the components of themobile computing device 200. In this embodiment, each individual component can individually request settings for executing a particular launched application. Theprofile deliverer 240 still verifies the set of coalesced sets of profile settings for the application and then selects the particular settings for the requesting component from the set and delivers those settings. -
FIG. 3 illustrates a flow chart of an embodiment of amethod 300 for operating a mobile computing device carried out according to the principles of the disclosure. Themethod 300 or at least a portion thereof can be implemented as a series of operating instructions stored on a non-transitory computer readable medium that directs the operation of a processor. As such, themethod 300 may be implemented as a computer program product. Themethod 300 begins in astep 305. - In a
step 310, dynamic sets of profile settings based on system characteristics of the computing device are received. The dynamic sets can be received via a server over a communications network. - Coalesced sets of profile settings are determined in a
step 320 for the computing device. In one embodiment, the coalesced sets of profile settings are generated from the dynamic sets of profile settings and a set of static profile settings stored on the mobile computing device. In some embodiments, generating the coalesced sets of profile settings includes replacing overlapping profile settings in the dynamic sets of profile settings with profile settings from the static set of profile settings. This can be based on if the particular static settings have override capability. - In a
step 330, settings are selected, for an application on the mobile computing device, from a set of the coalesced sets of profile settings for components of the computing device. In one embodiment, themethod 300 includes verifying the application with the relevant settings. Verification can be based on comparing the name of the application with a database of the coalesced sets of profile settings. Other verification procedures that provide additional security can also be used. - In a
step 340, the selected settings are delivered to the components for execution during operation of the application. The selected settings can be delivered based on receiving queries from the components in response to launching the application and selecting the set in response to the queries. Themethod 340 ends in astep 350. -
FIG. 4 illustrates a flow diagram of an embodiment of amethod 400 of configuring an apparatus for operation carried out according to the principles of the disclosure. The apparatus can be a tablet, a clamshell, a smart phone, a gaming device or another type of mobile computing device, such as a portable device, that executes and operates applications. Themethod 400 may occur at manufacturing of the apparatus. In other embodiments, themethod 400 could occur when upgrading the apparatus. Configuring as used herein refers to providing the apparatus with the necessary logic, circuitry, instructions or combination thereof to perform the particular functions. Themethod 400 begins in astep 405. - In a
step 410, the apparatus is configured to store a set of application profile settings based on system characteristics of the apparatus. - In a
step 420, the apparatus is configured to generate a coalesced set of application profile settings by comparing the set of application profiles with a second set of application profiles from a different source. In one embodiment, the apparatus is configured to generate the coalesced set of application profile settings by replacing settings for a component of the apparatus with settings for the component from the second set of application profiles. At least a portion of the second set of application profiles can be established during manufacturing of the apparatus. - In a
step 430, the apparatus is configured to select settings for an application from a set of the coalesced sets of profile settings. - In a
step 440, the apparatus is configured to deliver profile settings to components of the apparatus for an application when the application is launched. The profile settings are from a set of the coalesced sets of profile settings. Themethod 400 ends in astep 450. - A portion of the above-described apparatuses, systems or methods may be embodied in or performed by various processors or computers, wherein the computers are programmed or store executable programs of sequences of software instructions to perform one or more of the steps of the methods. The software instructions of such programs may represent algorithms and be encoded in machine-executable form on non-transitory digital data storage media, e.g., magnetic or optical disks, random-access memory (RAM), magnetic hard disks, flash memories, and/or read-only memory (ROM), to enable various types of digital data processors or computers to perform one, multiple or all of the steps of one or more of the above-described methods, or functions of the apparatuses or systems described herein.
- Portions of disclosed embodiments may relate to computer storage products with a non-transitory computer-readable medium that have program code thereon for performing various computer-implemented operations that embody a part of an apparatus, system or carry out the steps of a method set forth herein. Non-transitory used herein refers to all computer-readable media except for transitory, propagating signals. Examples of non-transitory computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and execute program code, such as ROM and RAM devices. Examples of program code include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
- Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.
Claims (22)
1. A mobile computing device, comprising:
a settings reservoir configured to store dynamic sets of profile settings and static set of profile settings for said computing device; and
a profile generator configured to generate coalesced sets of profile settings for applications on said computing device based on said dynamic sets of profiles and said static set of profiles.
2. The mobile computing device as recited in claim 1 further comprising a profile deliverer configured to deliver settings from a set of said coalesced profile settings to components of said mobile computing device for said application.
3. The mobile computing device as recited in claim 2 wherein said profile deliverer is configured to deliver said settings in response to components of said mobile computing device requests on said application being launched on said mobile computing device.
4. The mobile computing device as recited in claim 2 wherein said profile deliverer is further configured to determine said set of said coalesced profile settings by verifying both a name of said application and a hash or checksum of a binary of said application with a database of said coalesced profile settings stored on said settings reservoir.
5. The mobile computing device as recited in claim 1 further comprising a communications interface configured to wirelessly receive said dynamic sets of profile settings.
6. The mobile computing device as recited in claim 2 wherein said profile deliverer is further configured to deliver said settings in response to a query from said components.
7. The mobile computing device as recited in claim 1 wherein said static set of profiles are original equipment manufacturer profiles.
8. The mobile computing device as recited in claim 1 wherein said dynamic sets of profile settings are based on characteristics of said mobile computing device.
9. A method of operating a mobile computing device, comprising:
receiving dynamic sets of profile settings based on system characteristics of said computing device;
determining a coalesced set of profile settings for said computing device based on said dynamic sets of profile settings and sets of static profile settings stored on said computing device; and
selecting, for an application on said computing device, settings from a set of said coalesced sets of profile settings for components of said computing device.
10. The method as recited in claim 9 further comprising delivering said settings to said components for execution during operation of said application.
11. The method as recited in claim 9 wherein said determining includes replacing overlapping profile settings in said dynamic sets of profile settings with profile settings from said static set of profile settings.
12. The method as recited in claim 9 further comprising verifying said set of coalesced sets of profile settings correspond to said application based on a name of said application and an additional security check derived from a binary of said application.
13. The method as recited in claim 9 further comprising receiving queries from said components in response to launching said application and selecting said set in response to said queries.
14. The method as recited in claim 9 wherein said dynamic sets of profile settings are based on characteristics of said computing device.
15. The method as recited in claim 9 wherein said sets of static profile settings include original equipment manufacturer settings.
16. A method of configuring an apparatus to operate employing profile settings for components thereof that are tailored to particular applications on said apparatus and to characteristics of the components, the method comprising:
configuring said apparatus to store a set of application profiles based on system characteristics of said computing device;
configuring said apparatus to generate a coalesced set of application profiles by comparing said set of application profiles with a second set of application profiles from another source; and
configuring said apparatus to deliver profile settings to components of said apparatus for an application when said application is launched, wherein said profile settings are from a set of said coalesced sets of profile settings.
17. The method as recited in claim 16 wherein said method occurs during manufacturing of said apparatus.
18. The method as recited in claim 16 wherein apparatus is a mobile computing device.
19. The method as recited in claim 16 further comprising configuring said apparatus to download said set of application profiles from a server including hierarchical filtered profile settings.
20. The method as recited in claim 16 further comprising configuring said apparatus to generate said coalesced set of application profiles by replacing settings for a component of said apparatus with settings for said component from said second set of application profiles, wherein at least a portion of said second set of application profiles are established during manufacturing of said apparatus.
21. An external source for dynamic profile settings for mobile computing devices, comprising:
a memory configured to store profile settings for applications that execute on mobile computing devices; and
a processor configured to determine a dynamic set of profile settings for executing an application on a specific one of said mobile computing devices by hierarchically filtering said profile settings according to characteristics of said specific one.
22. The external source as recited in claim 21 further comprising a communications interface configured to receive a query from said specific one that includes characteristic data thereof, said processor configured to hierarchically filter said profile settings based on said characteristic data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/894,869 US20140129686A1 (en) | 2012-11-08 | 2013-05-15 | 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 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261724088P | 2012-11-08 | 2012-11-08 | |
US13/894,869 US20140129686A1 (en) | 2012-11-08 | 2013-05-15 | 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 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140129686A1 true US20140129686A1 (en) | 2014-05-08 |
Family
ID=50623436
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/894,869 Abandoned US20140129686A1 (en) | 2012-11-08 | 2013-05-15 | 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 |
US13/895,166 Active US8978027B2 (en) | 2012-11-08 | 2013-05-15 | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
US14/613,477 Active US9569197B2 (en) | 2012-11-08 | 2015-02-04 | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/895,166 Active US8978027B2 (en) | 2012-11-08 | 2013-05-15 | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
US14/613,477 Active US9569197B2 (en) | 2012-11-08 | 2015-02-04 | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
Country Status (3)
Country | Link |
---|---|
US (3) | US20140129686A1 (en) |
CN (1) | CN103809996B (en) |
TW (1) | TWI506555B (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168160A (en) * | 2014-08-18 | 2014-11-26 | 浪潮(北京)电子信息产业有限公司 | Method and device for testing compatibility of server |
US20170026486A1 (en) * | 2015-07-24 | 2017-01-26 | Nvidia Corporation | System, method and device for providing crowd-sourced, cloud-based custom tuning for applications |
US9569197B2 (en) | 2012-11-08 | 2017-02-14 | Nvidia Corporation | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
US9893938B1 (en) * | 2014-10-31 | 2018-02-13 | Sorenson Ip Holdings, Llc | Apparatuses and methods for distributed configuration management of communication devices |
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 |
US11232372B2 (en) * | 2018-11-09 | 2022-01-25 | Cisco Technology, Inc. | Merging and optimizing heterogeneous rulesets for device classification |
US11269488B2 (en) | 2015-08-25 | 2022-03-08 | Samsung Electronics Co., Ltd. | System for providing application list and method therefor |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601465B2 (en) | 2009-09-08 | 2013-12-03 | Abbott Diabetes Care Inc. | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
US9542172B2 (en) | 2013-02-05 | 2017-01-10 | Apple Inc. | Automatic updating of applications |
US10019569B2 (en) * | 2014-06-27 | 2018-07-10 | Qualcomm Incorporated | Dynamic patching for diversity-based software security |
JP2016177554A (en) * | 2015-03-20 | 2016-10-06 | セイコーエプソン株式会社 | Electronic component conveying apparatus and electronic component inspection apparatus |
CN107479482B (en) * | 2017-08-21 | 2023-02-28 | 上海博泰悦臻网络技术服务有限公司 | Operating system applied to automotive electronics and implementation method |
CN113168315A (en) | 2019-02-01 | 2021-07-23 | 惠普发展公司,有限责任合伙企业 | Upgrading based on analysis from multiple sources |
KR20210004288A (en) | 2019-07-04 | 2021-01-13 | 삼성전자주식회사 | Electronic apparatus and control method thereof |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099952A1 (en) * | 2000-07-24 | 2002-07-25 | Lambert John J. | Policies for secure software execution |
US20060274869A1 (en) * | 2005-06-07 | 2006-12-07 | Yahoo! Inc. | Dynamically generating content based on capabilities of a mobile device |
US20070162731A1 (en) * | 2005-12-23 | 2007-07-12 | Morgan Stanley | Systems and methods for configuration of mobile computing devices |
US20070239722A1 (en) * | 2006-03-30 | 2007-10-11 | Phillips Mark E | Distributed user-profile data structure |
US20090157852A1 (en) * | 2007-12-14 | 2009-06-18 | Michail Krupkin | Flexible and scalable method and apparatus for dynamic subscriber services configuration and management |
US20090210719A1 (en) * | 2008-02-19 | 2009-08-20 | Konica Minolta Holdings, Inc. | Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program |
US20090260004A1 (en) * | 2008-04-10 | 2009-10-15 | Palm, Inc. | Computer program updates for mobile computing device |
US20090328008A1 (en) * | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Dynamically monitoring application behavior |
US20100094977A1 (en) * | 2005-07-22 | 2010-04-15 | At&T Intellectual Property I, L.P. | Method for Managing Configuration Profiles of Network Elements Deployed in a Network |
US20110106527A1 (en) * | 2001-07-03 | 2011-05-05 | Apptera, Inc. | Method and Apparatus for Adapting a Voice Extensible Markup Language-enabled Voice System for Natural Speech Recognition and System Response |
US20120036235A1 (en) * | 2005-11-10 | 2012-02-09 | The Mathworks, Inc. | Use of dynamic profiles for creating and using a distributed computing environment |
US20120096135A1 (en) * | 2010-10-19 | 2012-04-19 | Steve Berube | Managing settings of computing devices |
US20120115501A1 (en) * | 2010-11-10 | 2012-05-10 | Google Inc. | Self-aware profile switching on a mobile computing device |
US20120302346A1 (en) * | 2011-05-27 | 2012-11-29 | Ami Entertainment Network, Inc. | Method of selecting a device profile for provisioning an amusement device |
US20130104113A1 (en) * | 2011-10-24 | 2013-04-25 | 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 |
US8510406B2 (en) * | 1999-04-26 | 2013-08-13 | Mainstream Scientific, Llc | Component for accessing and displaying internet content |
US8813167B2 (en) * | 2010-12-30 | 2014-08-19 | Apple Inc. | Dynamic device configuration using predicates |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065769B1 (en) * | 2000-06-30 | 2006-06-20 | Intel Corporation | Method for automatically installing and updating drivers |
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 |
US8549166B2 (en) * | 2004-03-01 | 2013-10-01 | Qualcomm Incorporated | Execution of unverified programs in a wireless, device operating environment |
US7676448B2 (en) * | 2004-03-12 | 2010-03-09 | Microsoft Corporation | Controlling installation update behaviors on a client computer |
EP1603036A1 (en) * | 2004-06-02 | 2005-12-07 | Research In Motion Limited | Auto-configuration of hardware on a portable computing device |
TWI256565B (en) * | 2004-12-07 | 2006-06-11 | Quanta Comp Inc | Test system and method for portable device |
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 |
US8584115B2 (en) * | 2006-10-05 | 2013-11-12 | International Business Machines Corporation | Automated operating system device driver updating system |
JP2008203930A (en) * | 2007-02-16 | 2008-09-04 | Canon Inc | Server device, driver processing method, storage medium, and program |
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 |
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 |
CN102055625A (en) * | 2010-12-31 | 2011-05-11 | 深圳市普联技术有限公司 | Network drive testing method |
US9134996B2 (en) | 2011-04-28 | 2015-09-15 | F-Secure Corporation | Updating anti-virus software |
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 |
-
2013
- 2013-05-15 US US13/894,869 patent/US20140129686A1/en not_active Abandoned
- 2013-05-15 US US13/895,166 patent/US8978027B2/en active Active
- 2013-08-09 TW TW102128610A patent/TWI506555B/en active
- 2013-08-12 CN CN201310349025.8A patent/CN103809996B/en active Active
-
2015
- 2015-02-04 US US14/613,477 patent/US9569197B2/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510406B2 (en) * | 1999-04-26 | 2013-08-13 | Mainstream Scientific, Llc | Component for accessing and displaying internet content |
US20020099952A1 (en) * | 2000-07-24 | 2002-07-25 | Lambert John J. | Policies for secure software execution |
US20110106527A1 (en) * | 2001-07-03 | 2011-05-05 | Apptera, Inc. | Method and Apparatus for Adapting a Voice Extensible Markup Language-enabled Voice System for Natural Speech Recognition and System Response |
US20060274869A1 (en) * | 2005-06-07 | 2006-12-07 | Yahoo! Inc. | Dynamically generating content based on capabilities of a mobile device |
US20100094977A1 (en) * | 2005-07-22 | 2010-04-15 | At&T Intellectual Property I, L.P. | Method for Managing Configuration Profiles of Network Elements Deployed in a Network |
US20120036235A1 (en) * | 2005-11-10 | 2012-02-09 | The Mathworks, Inc. | Use of dynamic profiles for creating and using a distributed computing environment |
US20070162731A1 (en) * | 2005-12-23 | 2007-07-12 | Morgan Stanley | Systems and methods for configuration of mobile computing devices |
US7689205B2 (en) * | 2005-12-23 | 2010-03-30 | Morgan Stanley | Systems and methods for configuration of mobile computing devices |
US20070239722A1 (en) * | 2006-03-30 | 2007-10-11 | Phillips Mark E | Distributed user-profile data structure |
US20090157852A1 (en) * | 2007-12-14 | 2009-06-18 | Michail Krupkin | Flexible and scalable method and apparatus for dynamic subscriber services configuration and management |
US20090210719A1 (en) * | 2008-02-19 | 2009-08-20 | Konica Minolta Holdings, Inc. | Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program |
US20090260004A1 (en) * | 2008-04-10 | 2009-10-15 | Palm, Inc. | Computer program updates for mobile computing device |
US20090328008A1 (en) * | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Dynamically monitoring application behavior |
US20120096135A1 (en) * | 2010-10-19 | 2012-04-19 | Steve Berube | Managing settings of computing devices |
US20120115501A1 (en) * | 2010-11-10 | 2012-05-10 | 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 |
US20120302346A1 (en) * | 2011-05-27 | 2012-11-29 | Ami Entertainment Network, Inc. | Method of selecting a device profile for provisioning an amusement device |
US20130104113A1 (en) * | 2011-10-24 | 2013-04-25 | 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 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569197B2 (en) | 2012-11-08 | 2017-02-14 | Nvidia Corporation | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
CN104168160A (en) * | 2014-08-18 | 2014-11-26 | 浪潮(北京)电子信息产业有限公司 | Method and device for testing compatibility of server |
US9893938B1 (en) * | 2014-10-31 | 2018-02-13 | Sorenson Ip Holdings, Llc | Apparatuses and methods for distributed configuration management of communication devices |
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 |
US10911299B2 (en) | 2015-03-25 | 2021-02-02 | Airwatch Llc | Multiuser device staging |
US11411813B2 (en) | 2015-03-25 | 2022-08-09 | Airwatch, Llc. | Single user device staging |
US20170026486A1 (en) * | 2015-07-24 | 2017-01-26 | Nvidia Corporation | System, method and device for providing crowd-sourced, cloud-based custom tuning for applications |
US9876875B2 (en) * | 2015-07-24 | 2018-01-23 | Nvidia Corporation | System, method and device for providing crowd-sourced, cloud-based custom tuning for applications |
US11269488B2 (en) | 2015-08-25 | 2022-03-08 | Samsung Electronics Co., Ltd. | System for providing application list and method therefor |
US11232372B2 (en) * | 2018-11-09 | 2022-01-25 | Cisco Technology, Inc. | Merging and optimizing heterogeneous rulesets for device classification |
Also Published As
Publication number | Publication date |
---|---|
US20150154036A1 (en) | 2015-06-04 |
TW201421363A (en) | 2014-06-01 |
CN103809996A (en) | 2014-05-21 |
US9569197B2 (en) | 2017-02-14 |
US20140130064A1 (en) | 2014-05-08 |
CN103809996B (en) | 2017-09-26 |
US8978027B2 (en) | 2015-03-10 |
TWI506555B (en) | 2015-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140129686A1 (en) | 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 | |
US11016748B2 (en) | Revision locking | |
CN106658475B (en) | Method and device for upgrading over-the-air technology | |
US9990475B2 (en) | Apparatus and method of in-application licensing | |
US8162757B2 (en) | Multiplayer platform for mobile applications | |
US20170295467A1 (en) | Kiosk System for Downloading Media Content | |
CN102469114B (en) | Open mobile terminal widget application platform, realization method thereof and server | |
CN104123149B (en) | Method for upgrading software, device, client and system | |
US20090063179A1 (en) | System and method for customizing user interfaces of electronic devices | |
US20130086695A1 (en) | Method and system for remote access to data stored on a host system | |
WO2016138323A1 (en) | Remote device modification | |
US9853929B2 (en) | Service compatibility check for messages | |
KR20150008546A (en) | Method and apparatus for executing secure download and function | |
CN103513998A (en) | Method and device for generating upgrade package and method and terminal for upgrading dynamic documents in difference mode | |
CN109725952B (en) | Method, system and related device for application program plug-in | |
WO2018033094A1 (en) | Rich communication suite release platform, method and system for version update, and mobile terminal | |
CN110225124A (en) | Vehicle data shares processing method, device, vehicle and medium | |
KR20190061060A (en) | Profile-based content and services | |
US20190005207A1 (en) | Apparatus and method of layered licensing | |
RU2618943C2 (en) | Method, device and system for distribution of applications | |
CN105100132A (en) | Terminal device and terminal device identification method and system | |
EP3977269A1 (en) | Enabling upgrading firmware of a target device | |
CN106201588A (en) | The method for upgrading software of terminal and terminal | |
JP2013517551A (en) | Method, system and apparatus for execution of software applications | |
US10514935B2 (en) | System and method for third party application enablement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NVIDIA CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAEMEL, NICHOLAS;DONOVAN, CATHY;CHAIT, DAVID;REEL/FRAME:030419/0551 Effective date: 20130515 |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |