The present specification relates generally to communication technologies and more particularly to a method, apparatus and system for management of application switching in an electronic device.
In a desktop browsing experience on a desktop computer, Internet traffic bandwidth, computing processing resources, and screen area are less constrained than in the computing device mini-browsing experience. As computing power of computer systems increase, modern desktop operating systems are capable of running multiple applications at once. Furthermore, one application can now run multiple instances of itself with each instance containing multiple objects rendering different content. Content can include, for example, word processing documents and web pages Some applications open a whole new instance of the application whereas other applications open up a new rendering object of the content. One example of an application capable of the latter is the popular desktop browser called Firefox® from Mozilla Foundation, 1981 Landings Drive, Building K, Mountain View, Calif. 94043-0801, USA. Firefox® allows multiple websites to be opened within an instance of Firefox® through tabs where each tab contains same or different web pages. This is also called tabbed browsing. In tabbed browsing, each tab displays the identity of its respective website.
An aspect of this specification provides a method of managing application switching in a computing device, the method comprising: loading a plurality of web pages into storage of the computing device; each of the web pages having a different web page identifier; associating, using a processor in the computing device, each web page identifier with an application switcher application maintained in the storage of the computing device; and, associating, using the processor, at least another application identifier respective to another application, with the application switcher application; invoking the application switcher application in the processor; and, generating, using the processor, each of the web page identifiers and the another application identifier.
Another aspect of this specification provides a computing device configured for application switching comprising: storage configured to maintain a web-browser application, an application switcher application and at least another application; at least one processor connected to the storage and configured to execute the web-browser application and the at least another application; the at least another application having an application identifier; a display connected to the at least one processor and configured to generate web pages via the web-browser application and to generate the at least another application; and an interface connected to the processor; the processor configured to access, via the interface, at least one web-site comprising a plurality of web pages maintained by at least one web-server; each of the web-sites having a different web page identifier; the processor configured to associate each of the web page identifiers with the application switcher application; and, the processor configured to associate the at least another application identifier with the application switcher application, such that upon invocation of the application switcher application each of the web page identifiers and the at least one another application identifier are generated on the display.
Referring to
Referring briefly to
Programming instructions that implement the functional teachings of client machine 54 as described herein are typically maintained, persistently, in non-volatile storage unit 212 and used by processor 208 which in turn makes appropriate utilization of volatile storage 216 during the execution of such programming instructions. Of particular note is that non-volatile storage unit 212 persistently maintains a web-browser application 82, an application switcher application 84, a telephone application 86 and a calendar application 88. Web-browser application 82, application switcher application 84, telephone application 86 and calendar application 88 can each be executed on processor 208 making use of volatile storage 216 as appropriate. Note that telephone application 86 and calendar application 88 are examples, and various other applications (not shown) can be maintained in non-volatile storage unit 212 according to the desired configuration and functioning of client machine 54.
Web-browser application 82 is configured to provide web-browser functionality on client-machine 54. Web-browser application 82 can be referred to as a mini-browser, in the sense that it is provided on client machine 54 which may have a form factor that is “miniaturized”, at least in relation to the form factor of a desktop computer, although in other embodiments it is to be understood that the teachings herein can be applied to desktop web-browser applications. As will be explained further below, web-browser application 82 is configured to render web pages on the relatively small display of client machine 54, and during such rendering attempt to render those pages in a format that, as much as possible, is substantially the same as if those web pages had been rendered on a full browser such as Internet Explorer® or Firefox® on a traditional desktop or laptop computer. Web-browser application 82 thus provides basic hyper text markup language (HTML) and other web-browsing capability, such as Java script, although subject to features provided herein which can obviate or reduce the need for use of Java script. In general, client machine 54 is configured to interact with content available over network 66, including web content on web server 58 and web server 62 via web-browser application 82.
Application switcher application 84 is configured to be accessible from a menu during execution of browser application 82, telephone application 86, calendar application 88 or any other application executing on processor 208 and output from which is being generated on display 224.
Telephone application 86 is configured to provide telephony functionality for client machine 54, while calendar application 88 is configured to provide calendaring functionality for device 54.
Returning again to
Web server 58 and second web server 62 (which can, if desired, be implemented on a single server) can be based on any well-known server environment including a module that houses one or more central processing units, volatile memory (e.g. random access memory), non-volatile or persistent memory (e.g. hard disk devices) and network interfaces to allow servers 58 and 62 to communicate over network 66. For example, server 58 or server 62 or both can be a Sun Fire V480 running a UNIX operating system, from Sun Microsystems, Inc. of Palo Alto Calif., and having four central processing units each operating at about nine-hundred megahertz and having about sixteen gigabytes of random access memory. However, it is to be emphasized that this particular server is merely exemplary, and a vast array of other types of computing environments for servers 58 and 62 are contemplated.
It should now be understood that the nature of network 66 and the links 70, 74 and 78 associated therewith are not particularly limited and are, in general, based on any combination of architectures that will support interactions between client machine 54 and servers 58 and 62. In a present embodiment network 66 itself includes the Internet as well as appropriate gateways, routers and backhauls to links 70, 74 and 78. Accordingly, the links 70, 74 and 78 between network 66 and the interconnected components are complementary to functional requirements of those components.
More specifically, link 70 between client machine 54 and network 66 can be based in a present embodiment on core mobile network infrastructure (e.g. Global System for Mobile communications (“GSM”); Code Division Multiple Access (“CDMA”); CDMA 2000; 3G; Evolution-Data Optimized (“EV-DO”), Universal Mobile Telecommunications System (“UMTS”), High Speed Packet Access (“HSPA”)) or on wireless local area network (“WLAN”) infrastructures such as the Institute for Electrical and Electronic Engineers (“IEEE”) 802.11 Standard (and its variants) or Bluetooth® or the like or hybrids thereof. Note that in an exemplary variation of system 50 it is contemplated that client machine 54 could be other types of client machines whereby link 70 is a wired connection.
Link 74 can be based on a T1, T3, O3 or any other suitable wired or wireless connection between server 58 and network 66. Link 78 can be based on a T1, T3, O3 or any other suitable wired or wireless connection between server 62 and network 66.
Referring now to
To help further explain method 300, and system 50, a specific, simplified, but non-limiting example of web page 94 and web page 98 and are provided.
(As known to those skilled in the art, favicon is short for “favorites icon”. A favicon generally refers to an icon associated with a particular website or webpage, and a web designer can create such an icon and install it into a website (or webpage) by several means, and most graphical web browsers can make use of it. Browsers that provide favicon support typically display a page's favicon in the browser's uniform resource locator (URL) bar and next to the page's name in a list of bookmarks. Browsers that support a tabbed document interface typically show a page's favicon next to the page's title.)
Block 310 comprises opening a web-browser. In system 50, block 310 is performed by client machine 54 via web-browser application 82, by loading and executing web-browser application 82 on processor 208.
Block 315 comprises loading a web page into the browser. In system 50, block 315 is performed by client machine 54 via web-browser application 82, which accesses web page 94 via network 66 from server 58 in the usual manner. Exemplary performance of block 315 is represented in
Block 320 comprises associating a web page identifier with an application switcher application. In system 50, block 320 is performed by client machine 54 which extracts favicon 102 from web page 94 and stores favicon 102 in memory (e.g. storage 212 or storage 216 or both) in such a manner that application switcher application 84 is associated with favicon 102. As part of block 320, application switcher application 84 creates an association with the instance of loaded web page 94, as will be discussed further below.
Block 325 comprises determining if there is a request to load additional web pages. Block 325 can be effected by web-browser 82 receiving an instruction to load another web page in addition to web page 94. If a “yes” determination is made then method 300 cycles back to block 315, at which point the additional web page is loaded in the same manner as previously described.
Exemplary performance of block 315 during this cycle is represented in
As previously discussed, block 320 comprises associating a web page identifier with the application switcher application. During this cycle of block 320, client machine 54 extracts favicon 106 from web page 98 and stores favicon 106 in memory (e.g. storage 212 or storage 216 or both) in such a manner that application switcher application 84 is associated with favicon 106. As part of block 320 application switcher application 84 creates an association with the instance of web-browser 82 as having loaded web page 98, as will be discussed further below.
Continuing with the exemplary performance, during this cycle through block 325, it will be assumed that a “no” determination is made in response to the determination as to whether to load additional web pages. Thus, block 330 comprises a determination as to whether to close any of the loaded web pages. A “yes” determination can be made based on receiving any known command at client machine 54, such as a selection of a “close” command, or the like, within a menu application that can be generated on display 224.
A “yes” determination at block 330 leads to block 335 which comprises unloading the web page selected for closure from the web-browser. Block 335 can be effected by, in substance, reversing the performance of block 315 corresponding to the web page selected for closure. Block 340 comprises removing the association between the web page selected for closure and the application switcher application. Block 340 can be effected by, in substance, reversing the performance of block 320 corresponding to the web page selected for closure.
Block 345 can be reached directly from block 340 or from a “no” determination at block 330. Block 345 comprises determining if the application switcher application has been invoked, and a “yes” determination leads to invocation of the application switcher application at block 350, whereas a “no” determination at block 345 causes method 300 to move from block 345 to block 325. Processor 200 can be instructed to invoke application switcher application 200 in a variety of manners. For example, such instruction to processor 200 can be effected via any desired configuration of user input, such as a hotkey on keyboard 200, or clicking on a menu key on keyboard 200 which results in the generation of a menu list.
Block 410 comprises determining available applications. Block 410 can be based on an examination of processor 208 to determine which applications in client machine 54 are actually running on processor 208, or block 410 can be based on an examination of non-volatile storage 212 to determine the full list of available applications that can be run on processor 208, or both.
Block 415 comprises loading identifiers for each non-web-browser application that was identified as being available at block 410. In the present example, block 415 can comprise loading a telephone icon associated with telephone application 86, and a calendar icon associated with calendar application 88.
Block 420 comprises loading identifiers for each open web page in the browser application. If no web pages are open then no identifiers are loaded. However, continuing the example discussed in relation to method 300 and
Block 425 comprises generating a selection interface on display 224 that permits viewing and selection of available applications which can be accessed and “switched to” directly using application switcher application 84.
Assuming that application switcher application 84 is activated from web page 98 as shown in
As part of block 425, input from pointing device 202 can be received to move selection indicator 122 to different icons, and cause selected application identifier 126 to recite “ABC Comtech Corp.”.
Block 430 comprises determining if a selection has been made. A “yes” determination can be based on an affirmative input received at keyboard 200 or pointing device 202 while selection indicator 122 is at one of the positions shown in any of
If a “yes” determination is made at block 430 while selection indicator 122 is at the position shown in
As discussed earlier, processor 208 can be instructed to invoke application switcher application 84 in a variety of manners. One specific way of effecting such instructions is via a menu application which is invoked by selecting a designated “menu” key on keyboard 200. As a result of depressing that menu key, a menu 130 of the exemplary form shown in
Various advantages will now be explained. Browser application 82 can be easily alternated between two or more web pages via application selection application 84. Application selection application 84 can be dynamically updated, so that upon invocation of application selection application 84 lists the various open web pages within the web-browser application 82, in addition to the other available applications on client machine 54. This functionality can be extended to other applications, other than web-browser application, that open instances of themselves in an analogous fashion to that described herein in relation to web-browser 82. As a further example, when several web pages are open, application selection application 84 facilitates quick and easy differentiation between the various web pages. A user can quickly distinguish the several open web pages based on the appearance of their differing identifiers. This can reduce the frustration and inefficiency associated with manually clicking or otherwise switching to each open web page in a trial-and-error fashion until the user finally finds the desired web page that he or she is trying to switch to. Further, the generation of a favicon is a more readily identifiable than a thumbnail of a particular web-page.
One technical effect of such an improvement is that while processor 208 and storage 212 or storage 216 or both are now caused to manage a plurality of favicons as part of the application switcher application, correspondingly processor 208 is not consequently caused to blindly switch between each of a plurality of open web pages until a desired web page is generated on display 224, thereby reducing the application switching burden on processor 208 and the associated resource hardware burdens of accessing storage 212 and 216, and the corresponding hardware burdens of generating corresponding contents on display 224. Indeed, the application switching burden on processor 208 can be reduced to only a single application switch and therefore only a single invocation of an application switcher application to effect a desired application or web page switch. With reduction in such burden on processor 208, storage 212 and 216, and display 224, there is a concurrent reduction of battery drain.
Those skilled in the art are to understand that subsets, combinations and variations of the foregoing are contemplated. The claims attached hereto define the scope of the monopoly sought.
The present specification claims priority form U.S. Provisional Patent Application 61/121,017 filed Dec. 9, 2008, the contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61121017 | Dec 2008 | US |