US20160314060A1 - Systems including network simulating for mobile application development - Google Patents
Systems including network simulating for mobile application development Download PDFInfo
- Publication number
- US20160314060A1 US20160314060A1 US15/083,186 US201615083186A US2016314060A1 US 20160314060 A1 US20160314060 A1 US 20160314060A1 US 201615083186 A US201615083186 A US 201615083186A US 2016314060 A1 US2016314060 A1 US 2016314060A1
- Authority
- US
- United States
- Prior art keywords
- application
- mobile device
- network
- display
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011161 development Methods 0.000 title description 93
- 238000012360 testing method Methods 0.000 claims description 24
- 230000003993 interaction Effects 0.000 claims description 12
- 238000013515 script Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 46
- 238000004891 communication Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000006855 networking Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000010154 cross-pollination Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Definitions
- Flash Player provides a common application platform for playing applications on the mobile devices and allows developers to develop applications that may be played on multiple mobile devices that include the Flash Player.
- Applications for mobile devices are typically developed on a personal computer (PC) or workstation and target one or more types of mobile device that include a Flash Player. These applications require real-time testing of the application on all applicable mobile devices.
- PC personal computer
- Each mobile device has a certain amount of resources, such as processor, memory, graphics and networking. A certain portion of these resources is available for use by the application when it is executed (i.e., run) on the mobile device.
- a Flash Player application may operate correctly on one mobile device model, it may crash when playing on a different mobile device model.
- a NOKIA 6600 has a 16% reduction in ARM CPU speed and available memory resources compared to a NOKIA 7610, thus an application that plays correctly on the NOKIA 761O may not play correctly on the NOKIA 6600 due to this drop in inherent resources.
- Development packages e.g., FlashMX by Macromedia
- FlashMX by Macromedia
- these development packages may simulate operation of the application playing on the targeted mobile device, they do not determine if the application will play correctly on the targeted mobile device based upon resource usage.
- the only way to determine if an application plays on a particular mobile device is to transfer the application to the device and play it.
- an application author may transfer and play the application hundreds of times (development life cycles) on the targeted mobile device before identifying and correcting all system resource problems within the application.
- an application is targeted to play on many types of mobile device, it must be transferred and tested on a mobile device representative of each targeted mobile device type. This transferring and testing process is time-consuming and therefore costly for the application author.
- a method emulates and profiles an application playing on a mobile device that includes an application player. Characteristics defining performance of the mobile device are loaded. The mobile device is emulated using a model based upon the characteristics. The application is played and monitored within the model to determine resource utilization of the application for the mobile device.
- a method authors, emulates and profiles an application playing on a mobile device that includes an application player.
- An application development tool authors the application and the mobile device is emulated using a model based upon the characteristics. The application is played within the model and the model is monitored to determine resource utilization of the application for the selected mobile device.
- an environment for authoring an application to play on a mobile device that includes an application player.
- the application is authored using an application development tool.
- Resource utilization of the application for the mobile device is estimated. The steps of authoring and estimating are repeated until the resource utilization is less than or equal to the resources available on the mobile device.
- an emulator profiles an application of a mobile device that includes an application player, including: means for generating a model of the mobile device based upon mobile device characteristics, and means for playing the application within the model to determine resource utilization of the application when played by the mobile device.
- a method determines whether a frame-based application of a mobile device is operable. Characteristics are downloaded over the Internet for one or more mobile devices to be emulated and the application for the mobile devices is tested, via the Internet, using an emulator to determine if the application is operable on the mobile device.
- FIG. 1A shows one exemplary embodiment of a system for emulating, authoring and visually profiling a frame-based application playing on a mobile device that includes an application player.
- FIG. 1B shows one exemplary embodiment of the system of FIG. 1A within a computer.
- FIG. 2 is a block diagram illustrating detail of an emulator of the system of FIGS. 1A and 1B .
- FIG. 3 is a display showing one exemplary frame-based profile graph.
- FIG. 4 is a display showing the modeled mobile device of FIGS. 1A and 1B .
- FIG. 5 shows one exemplary window that includes the display of FIG. 3 , the display of FIG. 4 and an exemplary user interface.
- FIG. 6 is a flowchart illustrating a method for modeling and profiling a frame-based application to play on a mobile device that includes an application player.
- FIG. 7 is a flowchart illustrating one method for authoring, emulating and profiling a frame-based application to play on a mobile device that includes an application player.
- FIG. 8 is a block diagram illustrating the emulator of FIG. 1 interacting with an operator development server via the Internet for simulating playing of the application within a mobile device connected to a wireless network.
- FIGS. 9, 10, 11 and 12 show exemplary user interface screens for interacting with the emulator of FIG. 1 to configure and test operation of the application within the model of the mobile device when connected to a wireless network.
- FIG. 13 is a flowchart illustrating one exemplary method for configuring network simulation.
- FIG. 14 is a flowchart illustrating one method for determining whether a frame-based application of a mobile device is operable.
- FIG. 15 shows one exemplary authoring environment for emulating and profiling running of a frame-based application on multiple mobile devices.
- FIG. 16 shows one exemplary development scenario illustrating an authoring environment connecting to a development server to retrieve and utilize one or more network models and one or more device models.
- FIG. 17 shows one exemplary para-authoring environment wherein two application authoring environments cooperate to develop a frame-based application for a mobile device.
- FIG. 18 shows one exemplary para-authoring system illustrating presence and social interaction between three authoring environments.
- FIG. 19 shows one exemplary para-authoring system wherein a frame-based application is developed across three cooperating authoring environments.
- FIG. 20 shows the para-authoring system of FIG. 19 wherein the authoring environment includes the emulator and the network simulator to host emulation of the application.
- FIG. 21 shows an exemplary display illustrating profiled data that combines CPU, memory, graphics, and network utilization
- FIG. 22 shows an exemplary display illustrating profiled data for CPU utilization
- FIG. 23 shows an exemplary display illustrating profiled data for memory utilization
- FIG. 24 shows an exemplary display illustrating profiled data for graphic resource utilization
- FIG. 25 shows an exemplary display illustrating profiled data for network resource utilization
- FIG. 26 shows an exemplary screen illustrating profiled data for total system resource utilization.
- a software developer When developing a software program, a software developer often utilizes a software profiler to generate a report on the amount of time a processor spends in each routine of the software program during execution.
- the report may be used to find and optimize resource intensive areas of the software program.
- Some profiling modes report units other than time (such as call counts) and/or report at granularities other than per-routine.
- the term profiler may refer to a utility or function that determines or estimates mobile device resource utilization by an application running on that mobile device. For example, resource utilization may be determined for each output frame of a running frame-based application and displayed as a percentage of available resources for a particular mobile device.
- FIG. 1A shows one exemplary embodiment of a system 100 for emulating and profiling a frame-based application 104 playing on a mobile device 114 that includes an application player 116 .
- System 100 is shown with an emulator 101 and a profiler 106 .
- Emulator 101 generates a mobile device model 102 , based upon characteristics 115 of mobile device 114 .
- Model 102 emulates mobile device 114 to play frame-based application 104 and may, for example, generate an emulated mobile device display 111 that represents mobile device 114 .
- Emulated mobile device display 111 may be interactive to allow a user to interact (in a manner similar to interacting with mobile device 114 ) with application 104 while playing within model 102 .
- Mobile device 114 provides resources, such as processor resources, memory resources, graphic resources and networking resources, for use by application 104 when played within application player 116 .
- Processor resources available for running application 104 may be defined as a percentage of total processing resources of mobile device 114 ; memory resources may be defined as a percentage of total memory within mobile device 114 ; graphic resources may be defined as a percentage of total graphical resources of mobile device 114 ; and networking resources may be defined as a percentage of total networking resources of mobile device 114 .
- 40% of a processor resource within a mobile device is available for running application 104 , indicating that application 104 may not exceed 40% of the available instruction cycles of the processor without potentially ‘crashing’ the mobile device.
- Profiler 106 monitors playing of frame-based application 104 within model 102 to estimate resource usage of application 104 and generates a profile data display window 110 .
- Profile data display window 110 allows a user of system 100 to identify areas within application 104 that would exceed resources of mobile device 114 .
- Application 104 may be developed using a frame-based application development tool 112 (indicated in dashed outline).
- Frame-based application development tool 112 may, for example, represent Flash MX or Studio 8 from Macromedia (now Adobe Systems) and application 104 may represent a Flash application.
- development tool 112 can be instructed to publish application 104 to mobile device 114 , as shown.
- development tool 112 is used to develop frame-based application 104 .
- Application 104 is transferred to emulator 101 for playing within mobile device model 102 to estimate resource usage of application 104 when played on mobile device 114 .
- emulator 101 Upon playing application 104 within model 102 , emulator 101 utilizes profiler 106 to determine resource utilization of application 104 based upon mobile device characteristics 115 .
- emulator 101 is integrated with development tool 112 to form an authoring environment 122 that facilitates development and testing of application 104 without the need to continually load application 104 into mobile device 114 .
- emulator 101 is an add-in module that may be configured to operate within development tool 112 .
- Mobile device 114 is shown with application player 116 , display 118 and input keys 120 .
- application player 116 is Flash Lite from Macromedia (Adobe Systems).
- Mobile device 114 may, for example, represent one of: a cell phone, a personal digital assistant (PDA), an interactive home appliances and other such devices.
- display 118 represents a color liquid crystal display (LCD) device for displaying text and images to a user of mobile device 114 and input keys 120 represent buttons that allow the user to interact with mobile device 114 .
- LCD liquid crystal display
- FIG. 1B shows one exemplary embodiment of system 100 within a computer 130 .
- Computer 130 includes memory 132 , storage 134 and a processor 136 .
- Memory 132 is for example random access memory (RAM) and storage 134 is for example a disk drive or other non-volatile storage media.
- RAM random access memory
- storage 134 is for example a disk drive or other non-volatile storage media.
- Storage 134 is shown with emulator 101 , mobile device characteristics 115 and application 104 . Storage 134 may also include development tool 112 , if desired, for developing application 104 .
- Emulator 101 includes model algorithms 148 and profiler 106 .
- Model algorithms 148 represent one or more algorithms that operate to generate mobile device model 102 to emulate mobile device 114 while executing application 104 . Specifically, model algorithms 148 define operation of mobile device 114 based upon mobile device characteristics 115 .
- Table 1 Mobile Device Characteristics' shows exemplary characteristics that may be used to specify hardware attributes and performance of model 102 to emulate mobile device 114 .
- the characteristics have the following meaning: ‘Processor’ specifies the type of the processor in mobile device 114 ; ‘Processor Speed’ specifies the clocked speed of the processor within mobile device 114 ; ‘Storage Access Speed’ specifies the rate at which data can be moved from storage to memory and/or screen within mobile device 114 ; ‘RAM Size’ specifies the size of the RAM in mobile device 114 ; ‘Storage Size’ specifies the size of the non-volatile memory in mobile device 114 ; ‘Display Width’ specifies the number horizontal pixels on display 118 of mobile device 114 ; ‘Display Height’ specifies the number of vertical pixels of display 118 ; ‘Pixel Depth’ specifies the number of bits per pixel (e.g., the color depth) of display 118 ; ‘Processor Availability’ specifies the percentage of processing resource available
- Table 1 may be represented as a data structure (e.g., shown as mobile device characteristics 115 within storage 134 ) and may be stored in a file (not shown) or a database (not shown) within storage 134 , or stored remotely (e.g., on operator development server 808 , FIG. 8 , for download into authoring environment 122 as necessary).
- System 100 may include mobile device characteristics (e.g., mobile device characteristics 115 ) for multiple devices (e.g., mobile device 114 ). For example, characteristics 115 may be included for each mobile device type targeted by application 104 . A user of system 100 may then select one or more target mobile devices from a list based upon available characteristics 115 . As appreciated, additional or fewer characteristics may be included within characteristics 115 to specify hardware attributes and performance of mobile device 114 without departing from the scope hereof.
- additional mobile device characteristics 115 may be easily created to specify hardware attributes and performance of the new device types, allowing application development to start before a physical mobile device is available. For example, if a company introduces a new series of six mobile phone handsets, six additional sets of mobile device characteristics 115 may be created based upon measured (e.g., by running benchmarks on the new handsets or prototype) or determined (e.g., by estimating performance based upon previous models) performance thereby allowing emulation and evaluation of applications targeting these new devices.
- mobile device characteristics 115 may be supplied with a device model specific to one mobile device. For example, a manufacturer may supply a combined device model and characteristics for each mobile device 114 . Emulator 101 may then utilize the combined device model as device model 102 .
- computer 130 may include an interface (not shown) that provides communication with mobile device 114 via one or more of: USB, Ethernet, infra-red, Bluetooth, WiFi and other similar communication media.
- This interface may, for example, allow application 104 to be deployed on mobile device 114 for final testing of application 104 .
- processor 136 loads at least part of emulator 101 into memory 132 for execution.
- Emulator 101 then generates mobile device model 102 , based upon characteristics 115 , within memory 132 .
- Emulator 101 then loads and plays application 104 within model 102 .
- emulation is performed on a processor extrinsic to the mobile device being emulated.
- Emulator 101 may load all or part of profiler 106 into memory 132 to monitor resources and/or performance of application 104 within model 102 .
- profiler 106 monitors and records, as profiled data 152 , resources utilized by application 104 .
- Profiled data 152 may be stored (as shown in dashed outline) within storage 134 and/or displayed as profile data display window 11 O on display 140 of terminal 138 .
- profile data display 11 O may be used to identify areas within application 104 whereupon playing of application 104 within mobile device 114 , performance of mobile device 114 would be stressed. Thus, areas where failure may occur within application 104 may be identified prior to running application 104 on mobile device 114 .
- emulator 101 may display all or part of profiled data 152 on display 140 to facilitate development of application 104 .
- FIG. 2 is a block diagram illustrating emulator 101 of FIGS. 1A and 1B in further detail.
- profiler 106 within emulator 101 , is shown with a processor profile module 202 , a memory profile module 204 , a graphic profile module 206 and a system profile module 208 .
- Processor profile module 202 may, for example, estimate processor utilization of application 104 within model 102 .
- Memory profile module 204 may, for example, estimate memory utilization by application 104 within model 102 .
- Graphic profile module 206 may, for example, estimate utilization of 30 fill rate and 30 polygon count of application 104 within model 102 .
- System profile module 208 may, for example, determine overall system utilization of application 104 within model 102 . More or fewer profile modules may be included within profiler 106 without departing from the scope hereof.
- Device model 102 within emulator 101 , has a modeled display 210 , a modeled processor 212 , modeled input keys 214 , modeled memory 216 and modeled non-volatile storage 218 .
- modeled display 21 O represents display 118 of mobile device 114
- FIG. 1 processor 212 represents a processor (not shown) of mobile device 114
- modeled input keys 214 represent input keys 120 of mobile device 114
- modeled memory 216 represents memory (e.g., RAM) of mobile device 114
- modeled non-volatile storage 218 represents non-volatile storage (e.g., flash memory, disk drive storage) of mobile device 114 .
- Fewer or more elements and/or components of mobile device 114 may be modeled within device model 102 without departing from the scope hereof.
- Modeled non-volatile storage 218 is shown with application player 154 that may be the same as, or similar to, application player 116 , FIG. 1 .
- application player 154 has similar operation to application player 116 , but includes modifications that facilitate monitoring of application 104 within model 102 by profiler 106 .
- Flash applications are based upon a timeline of frames that may include graphical information and action scripts, FS Commands, network protocols, selected frame rate, etc.
- Application player 116 within mobile device 114 thus operates upon a time line of frames within application 104 to provide graphical displays (e.g., animations, rich media content) upon display 118 .
- profiled data 152 may also be based upon the timeline and frames of application 104 and displayed (e.g., via profile data display window 110 ) as resource utilization related to one or more of: timeline, frames and processing performance of action scripts.
- each frame of frames 223 may include graphics and/or action scripts that generate the graphical image for display.
- an action script may reference one or more graphic files (e.g., movie file 224 ) to provide graphical images for emulated mobile device display 111 .
- each frame of frames 223 includes multiple graphic elements and/or action scripts that involve image manipulation (e.g., retrieving data from non-volatile storage, avatar manipulations, animations, etc.), each frame may require differing resources in order to display correctly.
- a frame includes Avatar (e.g., an animated character) manipulation
- Avatar e.g., an animated character
- a frame that is based upon movie file 224 may simply require data transfer time.
- mobile device 114 has insufficient processor resources (e.g., because the animation is too complex for the targeted mobile device), application 104 may crash (i.e., cease to function correctly). Thus, it is important to determine the ‘stress’ applied by application 104 to resources of mobile device 114 .
- application player 154 plays application 104 within model 102 .
- player 154 processes frames 223 of application 104 based upon ordering of frames 223 within timeline 222 .
- One or more profile modules 202 , 204 , 206 and 208 within profiler 106 monitor resource utilization of each frame, storing results as profiled data 152 .
- Profiled data 152 is then displayed as profile data display window 11 O on display 140 for review by the user.
- Profiled data 152 may be displayed in real time as application 104 is played within model 102 .
- the user may scroll through profiled data 152 as desired by interacting with profile data display 110 .
- profiled data 152 may be output as a report (not shown).
- the user interacts with emulated mobile device display 111 to control application 104 as if application were running on mobile device 114 .
- FIG. 3 shows one exemplary profile data display window 11 O showing a frame-based display of profiled data 152 , FIG. 1B , determined by processor profile module 202 .
- profile window 11 O is shown with a time line 302 that represents timeline 222 of application 104 .
- each bar 304 indicates processor resource utilization for each of certain frames 223 of application 104 .
- each bar may, alternatively, represent a particular point or period in time during the execution of an application 104 which is non-frame-based.
- a current position indicator 306 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 111 (see FIG. 4 ).
- a capacity line 308 indicates the maximum processor resource available to application 104 . Where bars 304 rise above capacity line 308 at locations 310 , resource utilization for indicated frames of application 104 exceed the available processor resources of mobile device 114 ; thus application 104 may ‘capout’ or crash when playing those frames.
- Profile window 11 O displays per-frame (or point-in-time) processor resource utilization of application 104 , thereby facilitating assessment of stresses applied to mobile device 114 when playing application 104 . Where the number of frames 223 of application 104 exceeds the display capacity of profile window 110 , a scroll bar 312 allows the user to scroll through bars 304 for application 104 .
- profile modules 204 , 206 and 208 may have similar displays that indicate resource utilization during playing of application 104 within model 102 , thereby estimating resource utilization of application 104 when played within mobile device 114 .
- FIG. 4 shows one exemplary display 400 generated from device model 102 within emulator 101 , FIG. 1 .
- display 400 shows an image (e.g., generated from a bitmap of mobile device 114 ) of mobile device 114 with a display area 402 and input keys 404 .
- Display 400 allows the user to see and interact with an application running within device model 102 .
- display area 402 may represent display 118 of mobile device 114 and input keys 404 may represent input keys 120 of mobile device 114 .
- FIG. 5 shows an exemplary window 500 that includes profile window 11 O of FIG. 3 and display 400 of FIG. 4 and an exemplary user interface.
- window 500 shows selection of a mobile device (i.e., NOKIA 3650 in this example) from a pull-down list 502 that results in display of characteristics 504 of the selected mobile device in system information window 506 .
- Characteristics 504 may represent characteristics 115 of FIG. 1A , for example.
- System information window 506 may contain information related to system resource utilization with respect to the handset CPU and memory, the executing application, and network and various system resources.
- Window 500 facilitates interaction with model 102 through display 400 and monitoring of resource utilization of application 104 through profile window 110 .
- pull-down list 502 allows easy selection of further mobile devices upon which application 104 is to be profiled.
- FIG. 6 is a flowchart illustrating a method 600 for modeling and profiling an application playing on a mobile device that includes an application player.
- Method 600 may, for example, be implemented within emulator 101 .
- step 602 method 600 loads characteristics defining hardware attributes and performance of the mobile device.
- a user of window 500 selects a mobile device using pull-down list 502 and emulator 101 loads mobile device characteristics 115 into memory 132 .
- step 604 method 600 emulates the mobile device using a model based upon the characteristics.
- emulator 101 generates device model 102 based upon mobile device characteristics 115 .
- step 606 method 600 loads the application into the model.
- emulator 101 loads application 104 into device model 102 .
- step 608 method 600 plays the application within the model.
- emulator 101 plays application 104 within model 102 .
- step 610 method 600 monitors the application playing in the model to determine resource utilization of the application for the mobile device.
- emulator 101 utilizes profiler 106 to monitor application 104 playing within model 102 to determine profiled data 152 .
- step 612 method 600 displays the resource utilization information.
- emulator 101 displays all or part of profiled data 152 as frame-based profile data display window 11 O on display 140 .
- FIG. 7 is a flowchart illustrating one method 700 for authoring, emulating and profiling an application to play on a mobile device that includes an application player.
- Method 700 may be implemented within emulator 101 , for example.
- step 702 method 700 receives instructions for authoring an application for a mobile device.
- a user interacts with frame-based application development tool 112 to author application 104 .
- step 704 method 700 plays the application within an emulation of the mobile device.
- emulator 101 generates model 102 based upon characteristics 115 of mobile device 114 and then loads and plays application 104 within model 102 .
- step 706 method 700 determines resource utilization of the playing application.
- emulator 101 utilizes one or more profile modules 202 , 204 , 206 and 208 of profiler 106 to determine resource utilization of application 104 within model 102 and stores the resource utilization information as profiled data 152 .
- step 708 method 700 evaluates resource utilization in view of characteristics of the mobile device.
- emulator 101 evaluates profiled data 152 to determine, based upon characteristics 115 , if resource utilization is within available resources of mobile device 114 .
- Step 71 O is a decision. If in step 710 , method 700 determines that the resource utilization of step 708 is within available resources of mobile device 114 (i.e., OK), method 700 continues with step 714 ; otherwise method 700 continues with step 712 .
- step 712 method 700 receives instructions for authoring the application to resolve resource issues.
- the user modifies application 104 , based upon determined resource utilization of step 708 , using development tool 112 .
- Method 700 continues with step 704 . Steps 704 though 712 thus repeat until the estimated resources requirement of the application is within available resources of the mobile device.
- Step 714 is optional and is particularly suited for testing applications (e.g., application 104 ) running on a mobile device (e.g., mobile device 114 ) that is a mobile phone.
- emulator 101 interacts with one or more operator development servers (e.g., operator development server 808 , FIG. 8 ) to configure device model 102 for simulated network operation to allow testing of application 104 within a simulated wireless network environment (e.g., a simulated mobile phone wireless network environment). Simulated network operation is described in further detail below and shown in FIGS. 8 though 13 .
- step 716 method 700 transfers the application to the mobile device.
- emulator 101 instructs development tool 112 to publish application 104 to mobile device 114 .
- FIG. 8 is a block diagram illustrating interaction of emulator 101 with an operator development server 808 via Internet 822 for simulating playing of application 104 within a mobile device connected to a wireless network (e.g., a mobile phone wireless network).
- FIGS. 9, 10, 11 and 12 show exemplary windows that allow a user to interact with emulator 101 for configuring and testing operation of application 104 within model 102 when simulating connection to a wireless network.
- FIGS. 8, 9, 10, 11 and 12 are best viewed together with the following description.
- Emulator 101 is shown with an operator interface 802 that interacts with operator development server 808 via Internet 822 .
- Internet 822 may, for example, represent the world wide web (WWW), an Intranet or any fixed or wireless server connection.
- Operator development server 808 is shown with a simulator 810 , characteristic data 815 and model data 820 .
- Model data 820 may, for example, represent live network profiles.
- a user of emulator 101 purchases a subscription from a provider of operator development server 808 (or from a third party) that allows emulator 101 to connect to operator development server 808 via Internet 822 .
- emulator 101 may download characteristic data 815 from operator development server 808 for one or more mobile device types supported by operator development server 808 (i.e., supported by the operator's wireless network). Characteristic data 815 may, for example, represent mobile device characteristics 115 of FIG. 1 . Further, emulator 101 may download additional model data 820 for use within device model 102 for increasing simulated functionality of model 102 (e.g., simulating additional handset functionality and/or network functionality). The user of emulator 101 may, for example, purchase model data 820 for additional mobile device types as they become available, thereby allowing emulator 101 to include modeling capability for a new pre-release mobile device, scheduled release mobile device and current mobile devices.
- characteristic data 815 and model data 820 may be included within a monthly subscription fee, thereby allowing the user to author applications for new mobile devices (e.g., new mobile phone models and live mobile profiles) provided by an operator (e.g., mobile phone wireless network operator).
- new mobile devices e.g., new mobile phone models and live mobile profiles
- operator e.g., mobile phone wireless network operator
- emulator 101 downloads a network simulator interface 804 from operator development server 808 into device model 102 as shown in FIG. 8 .
- Network simulator interface 804 includes functionality that allows device model 102 to communicate with simulator 810 to simulate connectivity of mobile device 114 with a wireless network.
- network simulator interface 804 within model 102 interacts with data provider 812 and event generator 814 to determine resource utilization resulting from network interaction by model 102 .
- the effects of mobile device 114 interacting with a wireless network are simulated such that frame-based profile data display window 11 O shows resource utilization that includes the live or scripted effects of interaction with the wireless network.
- capacity line 308 in profile data display window 11 O is dynamically modified to show actual resource availability to application 104 resulting from resource utilization by simulated wireless network activity within device model 102 . For example, if a message is received and/or retrieved by model 102 while playing application 104 , certain resources are required to handle the received message, and therefore available resources for application 104 is reduced accordingly.
- Simulator 810 is shown with a data provider 812 and an event generator 814 .
- Data provider 812 may, for example, simulate data transfers within a wireless network. For example, the data transfer may be cased upon a certain bandwidth associated with the wireless network.
- Event generator 814 may, for example, generate certain events (e.g., incoming calls, incoming text messages, etc) that occur within a wireless network. Simulator 810 , using data provider 812 and event generator 814 , thus interacts with network simulator interface 804 to model operation of a wireless network (e.g., a mobile phone network).
- a wireless network e.g., a mobile phone network
- Operator interface 802 may interact with multiple operator development servers 808 to facilitate testing of application 104 with many operators' networks.
- operator network simulation removes the burden of traveling to operator network locations from application developers, since application operation on a mobile device connected to a network may be simulated by emulator 101 and thus measured back against the authoring environment.
- FIG. 9 shows one exemplary window 900 for selecting operator networks based upon a desired geographic location.
- Window 900 shows a menu item 902 that, upon selection by the user, displays a world map 904 that allows the user to select a geographical region in which mobile device 114 is to operate.
- window 900 shows a mouse pointer 906 selecting the United Kingdom, resulting in a sub-map display 908 of the selected location showing available wireless networks 910 .
- Sub-map display 908 is, for example a ‘mouse-over’ event.
- world map 904 is replaced by sub-map 908 of the selected location and a pull-down list 1004 of available operators within that location as shown in window 1000 , FIG. 10 .
- the use may select menu item 1002 to display pull-down list 1004 .
- emulator 101 Upon selection of an operator within pull-down list 1004 , emulator 101 displays a pull-down list 1104 of mobile devices supported by the selected operator, as shown in window 1100 of FIG. 11 . Alternatively, the use may select the menu item 1102 to display list 1104 . Upon selection of a mobile device from list 1104 , window 1200 , FIG. 12 , is displayed to allow the user to select desired network characteristics for simulation.
- Window 1200 shows a pull-down list 1202 of network characteristics that may be simulated by simulator 810 .
- simulator 810 may allow control of scripted events (e.g., cell tower identification, service message, bandwidth, etc.), consumer events (e.g., checking email, checking messages, browsing network, available minutes, selecting images, etc.) and incoming events (e.g., phone calls, WAP Messages, receiving MMS, receiving SMS, etc.).
- a second list may be presented to allow further simulation requirements to be entered.
- consumer events entry of list 1202 was selected, resulting in display of pull-down list 1204 from which check messages was selected resulting in the display of pull-down list 1206 .
- the user may select ‘send message’ from list 1206 to evaluate the performance of application 104 while a message is received from the network.
- maps 904 , 908 and lists 1004 , 1104 , 1202 , 1204 and 1206 are based upon information received by operator interface 802 from one or more operator development servers 808 .
- functionality of model 102 and selectable simulations of simulator 810 may be easily updated by the operator as new mobile devices are created without requiring updates to software of emulator 101 .
- the user may select menu item 901 , FIG. 9 , to immediately locate, download and import modeling characteristics into emulator 101 . These characteristics may be stored within storage 134 of computer 130 , FIG. 1B .
- FIG. 13 is a flowchart illustrating one exemplary method 1300 for configuring wireless network simulation.
- step 1302 method 1300 selects a geographic location of the wireless network.
- emulator 101 displays window 900 and the user selects the United Kingdom as the wireless network location.
- step 1304 method 1300 selects a network operator from within the selected location.
- emulator 101 displays window 1000 including pull-down list 1004 of network operators within the location selected in step 1302 .
- step 1306 method 1300 connects to the selected network operator's development server.
- emulator 101 utilizes operator interface 802 to connect to operator development server 808 based upon the operator selected in step 1304 .
- step 1308 method 1300 downloads a list of mobile devices supported by the simulator of the operator selected in step 1304 .
- emulator 101 downloads characteristic data 815 from server 808 to determine mobile devices supported by simulator 810 and populates list 1104 of window 1100 .
- an operator may add functionality to simulator 810 based upon a new mobile device prior to supporting the device within the operator's wireless network, thereby encouraging development of applications for the new device before its launch, increasing operator and/or author revenues.
- step 1310 method 1300 selects a mobile device from the list of supported mobile devices.
- the user selects a mobile device for emulation from list 1104 of window 1100 .
- emulator 101 automatically selects the same device, if available, from list 1104 .
- step 1312 method 1300 downloads a network simulator interface for the selected mobile device.
- emulator 101 instructs operator interface 802 to download network simulator interface 804 from server 808 .
- step 1314 method 1300 loads the network simulator interface into the mobile device model.
- emulator 101 loads network simulator interface 804 into model 102 .
- step 1316 method 1300 selects network characteristics to simulate.
- the user utilizes lists 1202 , 1204 and 1206 of window 1200 to specify network characteristics for simulation by simulator 810 .
- step 1318 method 1300 models the application running within a mobile device connected to a wireless network.
- model 102 interacts with simulator 810 via network simulator interface 804 and internet 822 while playing application 104 and displaying profile window 110 .
- the user may purchase and download simulator 810 from operator development server 808 to facilitate local simulation of the wireless network (i.e., without utilizing Internet 822 ).
- simulator 810 may operate within emulator 101 , within authoring environment 122 or within computer 130 to provide interaction with model 102 .
- Emulator 101 may utilize operator interface 802 to interact with one or more operator development servers 808 to download characteristics (e.g., characteristic data 815 ) and modeling data (e.g., model data 820 ) for generating mobile device model 102 .
- characteristics e.g., characteristic data 815
- modeling data e.g., model data 820
- emulator 101 though a subscription service with an operator, for example, may download this additional functionality for use in model 102 .
- These characteristics e.g., characteristic data 815
- Wireless network operators participate by updating their development servers (e.g., development servers 808 ) to provide the latest emulation information and functionality for each supported mobile device (e.g., mobile phone handset) and by updating their network simulators (e.g., simulator 810 ) to includes functionality and/or proposed functionality of their wireless networks.
- development servers e.g., development servers 808
- network simulators e.g., simulator 810
- Application authors e.g., users of emulator 101
- a visual authoring environment in which the authored application may be emulated as operating within one or more modeled mobile devices (that are optionally connected to a simulated wireless network) without leaving the authoring environment.
- the emulator (e.g., emulator 101 ) may be provided as part of the authoring environment, or as an add-on to an existing development tool.
- characteristics for each mobile device to be emulated are downloaded from a server for a determined price or subscription fee. Since new mobile devices are continually being produced, application authors continually require new modeling characteristics to be able to test their applications. For example, a subscribed charge of $10-15 dollars per handset saves each developer from purchasing a mobile device ($100-200 dollars) and alleviates the need to travel to a wireless network location when testing each mobile device. Thus, the wireless network operator may receive revenue from developers by providing the developers with online network simulation capability. The application authors, via the Internet, are then able to test applications for mobile devices running on wireless networks worldwide.
- Characteristics for each mobile device to be emulated may be downloaded from a server for a determined price, licensing or subscription fee. It is estimated that nearly 700 million new mobile devices will be shipped in 2005, with a new handset model being launched every other day. This rapid mobile device development requires that applications designed to run on these mobile devices also sustain rapid development. Development systems targeted at one mobile device may become obsolete and possibly of little value to the developer at the time it is shipped. Since a new mobile device is being launched every other day, application authors continually require purchasing all addressable targeted devices prior to consumer release. For example, a charge of $10-15 dollars per modeled handset would save each developer purchasing each target mobile device ($100-200 dollars) as well as alleviating the need to travel to a wireless network location whilst testing each mobile device before public release, two substantial development and release costs.
- an application author may transfer and play the application hundreds of times (development life cycles) on the targeted mobile device before identifying and correcting all system resource problems within the application.
- Live server and profile updates would substantially reduce and alleviate a high churn rate of development life cycles, enabling a more cost effective authoring model for the developer.
- the purchase of a ‘static’ PC authoring environment may become obsolete due to the ongoing release of new mobile handsets (the target release platform) emulator 101 and operator development server 808 maintains a live and continually updatable business model and authoring platform long after the initial authoring platform has released to the market.
- FIG. 14 is a flowchart illustrating one method for determining whether an application of a mobile device is operable.
- method 1400 downloads characteristics over Internet for one or more mobile devices to be emulated.
- method 1400 tests the application for the mobile devices, via the Internet, using an emulator to determine if the application is operable on the mobile device.
- FIG. 15 shows one exemplary authoring environment 1502 for emulating and profiling running of a frame-based application 1506 on multiple mobile devices.
- Authoring environment 1502 includes a display 1540 and an input device 1542 that allow a user to interact with authoring environment 1502 .
- Display 1540 may represent one or more computer displays and input device 1542 may represent one or more input devices such as keyboard, mouse, graphic tablet, etc.
- input device 1542 may represent one or more input devices such as keyboard, mouse, graphic tablet, etc.
- display 1540 and input device 1542 are combined in the form of a touch screen.
- Authoring environment 1502 also includes an application developer 1504 (e.g., Flash MX for Flash Lite applications, xCode and Instruments for Apple applications, and Android for Google applications) that is used to create and/or modify application 1506 .
- an application developer 1504 e.g., Flash MX for Flash Lite applications, xCode and Instruments for Apple applications, and Android for Google applications
- Application 1506 is, for example, a Flash Lite application for use on a mobile device running a Flash Lite environment, or an Android application for use on a mobile device implementing Android.
- Authoring environment 1502 also includes an emulator 151 O and one or more device models 1512 for emulating operation of one or more mobile devices to allow the user to test operation of application 1506 on each device.
- Emulator 151 O may output, to display 1540 , one or more frame-based profile data displays 1544 and one or more emulated mobile device displays 1548 . Displays 1544 and 1548 are for example shown within windows and/or frames on display 1540 .
- Authoring environment 1502 may also include a network simulator 1520 that simulates a service provider network and interacts 1526 with one or more emulated device models 1512 .
- Network simulator 1520 includes a data provider 1522 that provides data to device models 1512 and an event generator 1524 that generates network events to simulate connection of device models 1512 to a real service provider network. That is, data and events of the real network are simulated by network simulator 1520 .
- Application developer 1504 , emulator 151 O and network simulator 1520 may each be a part of authoring environment 1502 , or may each be an external software program that is configured to cooperate with components of authoring environment 1502 . That is, authoring environment 1502 may incorporate one or more software programs to facilitate creation, modification and testing of application 1506 .
- the user creates and/or edits application 1506 by interacting with application developer 1504 via display 1540 and input device 1542 .
- Application 1506 is then loaded into one or more selected device models 1512 and one or more frame-based profile data displays 1544 and emulated mobile device displays 1548 are shown on display 1540 .
- the user may modify application 1506 using application developer 1504 .
- the user interacts with application developer 1504 to modify application 1506 , which then, through cross pollination 1508 , updates each device model 1512 . That is, application 1506 is updated within each device model 1512 automatically such that changes to application 1506 within application developer 1504 are duplicated within each device model 1512 .
- the user modifies application 1506 within device model 1512 by interacting with one or more of frame-based profile data displays 1544 and/or emulated mobile device displays 1548 .
- the user may select a frame of application 1506 to edit by manipulating a current position indicator (e.g., position indicator 306 , FIG. 3 ).
- Authoring environment 1502 through cross pollination 1508 , automatically updates application 1506 within application developer 1504 and application 1506 within any other device model 1512 , such that each application 1506 within authoring environment 1502 remains ‘current’.
- the user emulates multiple device models 1512 within emulator 151 O to test application 1506 within each device model 1512 simultaneously.
- Emulator 1510 through emulation of device models 1512 , identifies problems within application 1506 that are specific to each emulated device model 1512 . For example, where CPU and/or memory over utilization of the emulated device model 1512 occurs when running application 1506 , device model 1512 and/or emulator 151 O identifies the location (i.e., frame) within application 1506 of such over utilization problems and they are reported to the user within frame-based profile display data 1544 (and optionally other summary displays generated by emulator 1510 ).
- Emulator 151 O may operate such that emulated mobile device display 1548 , network display 1554 and application display 1552 for each emulated device model 1512 appears to operate substantially in real time (i.e., as if application 1506 is actually running on the mobile device being emulated). More specifically, emulator 151 O may provide runtime profiling of real time mobile device resource utilization by application 1506 to produce frame based profile data display 1544 , emulated mobile device display 1548 , network display 1554 and application display 1552 .
- emulator 151 O emulates more than one device model 1512
- these device models may be synchronized at an application frame level. That is, for each device model 1512 , the currently frame of application 1506 within each frame based profile data display 1544 , emulated mobile device display 1548 , network display 1554 and application display 1552 , is the same. Further, interaction with any one of frame based profile data display 1544 , emulated mobile device display 1548 , network display 1554 and application display 1552 , of any device model 1512 , may automatically be propagated to any other device model 1512 running within emulator 1510 .
- a user may interact with one or more of frame based profile data displays 1544 of device model 1512 to modify resources available to application 1506 .
- the user may interactively adjust a resource capacity line (e.g., capacity line 308 , FIG. 3 ) of one or more of frame based profile data displays 1544 to control the resource amount available to application 1506 within the associated device.
- a user may move a processor resource capacity line up to increase the available processor resource above that defined for the emulated mobile device.
- the user may increase the available processor resources to pass a processor intensive frame within application 1506 , thereby allowing evaluation of frames within application 1506 beyond a point where application 1506 would otherwise crash.
- the user may decrease a memory resource available to application 1506 (e.g., by lowering the memory capacity line within the memory display 1544 ) in order to ‘stress test’ application 1506 .
- Emulator 1510 may also emulate device models 1512 at speeds other than real time.
- a user of application developer 1504 and emulator 151 O may elect to emulate device model 1512 at half speed during testing of at least part of application 1506 .
- the user may elect to emulate device models 1512 as fast as possible.
- the user may define one or more input scripts 1562 for use with application 1506 such that user interaction with each device model 1512 is not required unless resource utilization is exceeded by application 1506 for that model.
- input scripts 1562 may predefine user interaction at defined frames of application 1506 .
- each device model 1512 operates, within emulator 1510 , independently of any other device model 1512 , allowing the user to interact with (or define an input script for) each device model 1512 independently.
- FIG. 16 shows one exemplary development scenario 1600 illustrating an authoring environment 1602 connecting to a development server 1660 to retrieve and utilize one or more network models 1606 and one or more device models 1608 .
- Authoring environment 1602 may represent authoring environment 1502 , FIG. 15 , and authoring environment 122 and include similar functionality.
- Development server 1660 may represent development server 808 , FIG. 8 , and include similar functionality.
- Authoring environment 1602 and development server 1660 may include additional functionality, as described below.
- At least one service provider 1642 ( 1 ) generates a network model 1606 ( 1 ) based upon characteristics of a real network service of service provider 1642 ( 1 ).
- Service provider 1642 ( 1 ) provides network model 1606 ( 1 ) to development server 1660 where it is stored within a network model library 1662 .
- Development server 1660 may receive other network models (e.g., network model 1606 ( 2 )) from other service providers (e.g., service provider 1642 ( 2 )), each of which may be stored within network model library 1662 .
- a device manufacturer 1644 ( 1 ) generates a device model 1608 ( 1 ) based upon a mobile device developed by device manufacturer 1644 ( 1 ). That is, device model 1608 ( 1 ) is designed to emulate characteristics of the mobile device.
- Device manufacturer 1644 ( 1 ) provides device model 1608 ( 1 ) to development server 1660 where it is stored within a device model library 1664 .
- Development server 1660 may receive other device models (e.g., device model 1608 ( 2 )) from other device manufacturers (e.g., device manufacturer 1644 ( 2 )), each of which may be stored within device model library 1664 .
- an author using authoring environment 1602 ( 2 ) may also submit new and/or amended device models (e.g., device model 1608 ( 1 )′) to development server 1660 for use by authors and authoring environments 1602 .
- Development server 1660 may employ one or more techniques for managing updates to network model library 1662 and device model library 1664 to prevent unauthorized changes.
- Development server 1660 may also store authoring environment software 1666 for download by a user to create or update an authoring environment 1602 .
- the user logs into an account manager 1668 of development server 1660 that, upon validation of the user using account data 1670 , allows the user to download authoring environment software 1666 and one or more network models 1606 and/or one or more device models 1608 , based upon a subscription status of the user.
- Account manager 1668 may store account information of the user within account data 1670 that includes subscription status for accessing development server 1660 .
- the user subscribes to development server 1660 to access authoring environment software 1666 , and any updates thereto.
- the user subscribes to device model library 1664 , and any updates thereto.
- the user subscribes to network model library 1662 , and any updates thereto.
- These subscriptions may be based upon time, e.g., a monthly subscription fee, or may be based upon a number of accesses (e.g., the user may download X network models 1606 and Y device models 1608 , where the user has prepaid for X network models and Y device models).
- Development server 1660 provides a single source for obtaining development tools for creation and/or modification of application 1612 and allows the user to retrieve the latest models from device manufacturers 1644 and service providers 1642 .
- authoring environment 1602 is configured to automatically obtain the latest software and models, as they become available, based upon the user's subscription (or upon paid fees) to development server 1660 .
- FIG. 17 shows one exemplary ‘para-authoring’ environment 1700 wherein two application authors use authoring environments 1702 ( 1 ) and 1702 ( 2 ) to cooperate to develop a frame-based application 1704 for a mobile device.
- the term ‘para-authoring’ is defined as the simultaneous or near-simultaneous collaborative authoring of a particular application by more than one author. In the present system, para-authoring may be performed via an Internet connection between two or more sites, or locally in a desktop/online environment.
- Authoring environments 1702 may represent authoring environment 1602 , FIG. 16 , as well as the authoring environments shown in FIGS. 9 through 12 , as they relate to one or more developers authoring a frame based application, and may include similar functionality.
- Authoring environments 1702 may include additional functionality, as described below.
- Authoring environments 1702 ( 1 ) and 1702 ( 2 ) may each be used to develop a subsection of frame-based application 1704 and cooperate, through facilities of development server 1706 to combine and test these parts as one application 1704 .
- Authoring environments 1702 may be located anywhere providing that communication with development server 1706 is possible. That is, authoring environments 1702 need not be located proximate to one another to be able to provide para-authoring environment 1700 .
- FIG. 18 shows one exemplary para-authoring system 1800 illustrating presence and social (collaborative) interaction between three authoring environments 1802 .
- Each authoring environment 1802 includes a suite of development tools 1804 that facilitate development of a frame-based application 1806 that is formed of subsections (labeled (1), (2) and (3) in this example, although application 1806 may include more or fewer subsections of varying sizes without departing from the scope hereof).
- application 1806 may include a background section, a foreground section, a menu section, and a data section, each of which may be authored within a different authoring environment.
- three authoring environments cooperate to develop frame-based application 1806 .
- subsection (1) is developed within authoring environment 1802 ( 1 )
- subsection (2) is developed within authoring environment 1802 ( 2 )
- subsection (3) is developed within authoring environment 1802 ( 3 ).
- certain or all subsections of application 1806 may be loaded into each authoring environment 1802 as they are made available (i.e., published) by the respective authoring environment.
- Each authoring environment 1802 includes a para-monitor 1808 that publishes status information 1810 indicating activity of that authoring environment to a para-authoring manager 1812 .
- para-monitor 1808 ( 1 ) publishes status information of authoring environment 1802 ( 1 )
- para-monitor 1808 ( 2 ) publishes status information of authoring environment 1802 ( 2 )
- para-monitor 1808 ( 3 ) publishes status information of authoring environment 1802 ( 3 ); each of para-monitors 1808 ( 1 ), 1808 ( 2 ) and 1808 ( 3 ) sending status information 1810 ( 1 ), 1810 ( 2 ) and 1810 ( 3 ), respectively, to para-authoring manager 1812 .
- Para-authoring manager 1812 operates to receive published online status 1814 from para-monitor 1808 and maintains a group 1813 association of related status information 1810 .
- Group 1813 in this example is identified as associating authoring environments 1802 ( 1 ), 1802 ( 2 ) and 1802 ( 3 ).
- Para-authoring manager 1812 may store other groups with more or fewer associations, without departing from the scope hereof. That is, manager 1812 maintains presence information of authoring environments 1802 .
- manager 1812 is located on a development server (e.g., development servers 1660 and 1706 ).
- Para-authoring manager 1812 may also include a repository for storing sections of application 1806 to facilitate retrieval by associated authoring environments 1802 .
- para-authoring manager 1812 is located within one of authoring environments 1802 .
- Para-monitor 1808 within each authoring environment 1802 , receives (either by request or by a ‘publish on change’ mechanism-push) published status information 1810 of associated authoring environments 1802 , and displays this status information as one or both of online status 1814 and application status 1818 within authoring environment 1802 .
- para-monitor 1808 ( 1 ) may display status of authoring environments 1802 ( 2 ) and 1802 ( 3 ) and availability of associated sections of application 1806 .
- Para-monitor 1808 may also provide other communication facilities, such as, but not limited to, one or more of video conferencing facilities 1850 , audio conferencing facilities 1852 , and text communication facilities 1816 .
- para-monitor 1808 may publish status information on one or more of network simulator 1824 , emulator 1822 and application editor 1830 (collectively development tools 1804 ), thereby allowing para-authors using associated (grouped) authoring environments 1802 to receive status of associated development of application 1806 .
- FIG. 19 shows one exemplary para-authoring system 1900 wherein a frame-based application 1906 is developed across three cooperating authoring environments 1902 ( 1 ), 1902 ( 2 ) and 1902 ( 3 ).
- a development server 1912 includes a para-authoring manager 1914 , a network simulator 1924 and an emulator 1922 .
- Development server 1912 may represent development server 1660 of FIG. 16 and include functionality of development server 1660 .
- Para-authoring manager 1914 may represent para-authoring manager 1812 of FIG. 18 and include functionality of para-authoring manager 1812 .
- Network simulator 1924 and emulator 1922 may represent network simulator 1620 and emulator 1622 , respectively, and include similar functionality.
- Authoring environment 1902 may represent authoring environment 1602 and authoring environment 1802 of FIG. 18 and include similar functionality.
- Each authoring environment 1902 is used to develop a section of application 1906 .
- Authoring environments 1902 each include a viewer 1930 that operates to view application 1906 playing on an emulated mobile device within emulator 1922 of development server 1912 , described in further detail below.
- Viewer 1930 may represent a web browser where output of emulator 1922 is in the form of an interactive web page.
- development server 1912 under control of authoring environment 1902 , loads application 1906 into emulator 1922 where it is profiled running on a model (e.g., device model 102 , FIGS. 1A, 1B, 2, and 8, 1512 , FIGS. 15, and 1608 , FIG. 16 ) of a mobile device.
- emulator 1922 generates profile data 1942 and device view 1944 based upon the emulated application and selected device model.
- Profile data 1942 includes data defining estimated application utilization of the mobile devices resources, including one or more of: processor resources, memory resources, graphic resources, and networking resources.
- Profile data 1942 is similar to profile data 152 , FIG. 1B , and may be displayed (e.g., within viewers 1930 ) numerically and/or graphically (e.g., as a graph, such as shown in profile window 110 , FIG. 3 ).
- Device view 1944 is a graphical representation of application 1906 running within the device model of the mobile device.
- device view 1944 shows output of application 1906 on the mobile device and may allow one or more para-authors to interact with application 1906 and/or the emulated mobile device (i.e., the device model).
- the device model interacts with network simulator 1924 to simulate use of the emulated mobile device on a real network. That is, network simulator 1924 interacts with the emulated device model to simulate operation of the mobile device within a real network.
- Emulator 1922 may also generate a control screen 1946 that allows authoring environment 1902 ( 1 ) to control operating of emulator 1922 and optionally network simulator 1924 .
- Para-authoring manager 1914 also allows authoring environments 1902 ( 2 ) and 1902 ( 3 ) to view, using viewers 1930 ( 2 ) and 1930 ( 3 ), respectively, profile data 1942 and device view 1944 during emulation of application 1906 .
- authoring environment 1902 ( 1 ) controls emulator 1922 and network simulator 1924 through control screen 1946 and viewer 1930 ( 1 ).
- Para-monitor 1908 ( 1 ) publishes activity status of environment 1902 ( 1 ) to para-authoring manager 1914 , which in turn updates environments 1902 ( 2 ) and 1902 ( 3 ) as to this activity. Environments 1902 ( 2 ) and 1902 ( 3 ) may then elect, through para-monitor 1908 ( 2 ) and 1908 ( 3 ), to also view profile data 1942 and device view 1944 on viewers 1930 ( 2 ) and 1930 ( 3 ), respectively.
- Para-monitor 1908 as shown with para-monitor 1808 in FIG.
- environments 1902 ( 1 ) and 1902 ( 3 ) may be allowed to interact with the emulated device model through device view 1944 .
- control screen 1946 may be transferred between environments 1902 to allow control of emulator 1922 and network simulator 1924 to be transferred between para-authors.
- environment 1902 ( 1 ) may transfer control screen 1946 to environment 1902 ( 2 ) such that the para-author using environment 1902 ( 2 ) may control application 1906 within emulator 1922 .
- authoring environment 1902 ( 1 ) includes emulator 1922 and network simulator 1924 , and hosts emulation of application 1906 .
- FIG. 20 shows para-authoring system 1900 wherein an application 1906 is developed across three cooperating authoring environments 1902 ( 1 ), 1902 ( 2 ) and 1902 ( 3 ). More or fewer para-authoring environments may cooperate without departing from the scope hereof.
- Para-monitor 1908 ( 1 ) publishes activities of environment 1902 ( 1 ) to para-monitor ( 1908 ( 2 ) and 1908 ( 3 ), such that para-authors using environments 1902 ( 2 ) and 1902 ( 3 ) may selectively view emulation of application 1906 via internet 1920 .
- para-monitors 1908 may cooperate to form one or more direct peer-to-peer communication links between environments 1902 to allow profile data 1942 and device view 1944 to be viewed within authoring environments 1902 ( 2 ) and 1902 ( 3 ).
- Para-monitor 1908 may still operate with para-authoring manager 1914 to determine communication configuration possibilities, but providing direct peer-to-peer communication links between environments 1902 may allow faster data transfer between environments and avoid overload of development server 1912 .
- FIG. 21 shows one exemplary display 2100 illustrating a display of profiled data 152 , that combines CPU, memory, graphics, and network utilization as determined by processor profile module 202 , memory profile module 204 , graphic profile module 206 , and system profile module 208 .
- display 2100 is shown with a time line 2102 that represents timeline 222 of application 104 .
- each bar 2104 indicates total resource utilization for each of certain frames 223 of application 104 .
- Each bar 2104 may, alternatively, represent a particular point or period in time during the execution of the application 104 . Bars 2104 are displayed prior to execution of the application to indicate a pre-execution profile of the program.
- a current position indicator 2106 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 111 .
- a capacity line 2108 indicates the maximum total resources available to application 104 . Where bars 2104 rise above capacity line 2108 , resource utilization for indicated frames of application 104 exceed the available resources of mobile device 114 ; thus application 104 may ‘capout’ or crash when playing those frames.
- Display 2100 also includes a resource utilization level indicator 2114 that shows the total resource utilization for the current frame of application 104 (i.e., as indicated by current position indicator 2106 ).
- Display 2100 illustrates total resource utilization by frames 223 of application 104 , thereby facilitating assessment of stresses applied to mobile device 114 when playing application 104 .
- a scroll bar 2112 allows the user to scroll through bars 2104 for application 104 .
- the displayed bars 2104 are also shown grouped to indicate different sections, including “Introduction” 2122 , “Main Menu” 2124 , “Network” 2126 , and “Advertisements-Ending” 2128 , of application 104 .
- section 2122 represents initial frames of application 104 that correspond to the ‘introduction’ of an application, i.e., the beginning preamble or introductory material prior to a ‘main menu’.
- the ‘introduction’ of an application might consist of introducing the corporate sponsors for a given event, including setting up the landscape of the application which leads into the main menu.
- FIG. 22 shows one exemplary display 2200 illustrating a frame based display of profiled data 152 for CPU utilization as determined by processor profile module 202 .
- display 2200 is shown with a time line 2202 that represents timeline 222 of application 104 .
- each bar 2204 indicates processor resource utilization for certain frames 223 of application 104 .
- a current position indicator 2206 shows the frame (frame 1 in this example) currently displayed by emulated mobile device display 111 (see FIG. 4A ).
- Capacity line 2208 indicates the maximum processor resource available to application 104 .
- Display 2200 illustrates processor resource utilization by frames 223 of application 104 , thereby facilitating assessment of processor stresses applied to mobile device 114 when playing application 104 .
- a scroll bar 2212 allows the user to scroll through bars 2204 for application 104 .
- Display 2200 further shows one exemplary line graph 2242 illustrating alternate display options for frames 2204 , and the use of a movement tool 2244 to adjust capacity line 2208 and/or the amount of available processor resource.
- FIG. 23 shows one exemplary display 2300 illustrating a frame based display of profiled data 152 for memory utilization as determined by memory profile module 204 .
- display 2300 is shown with a time line 2302 that represents timeline 222 of application 104 .
- each bar 2304 indicates memory resource utilization for certain frames 223 of application 104 .
- a current position indicator 2306 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 111 (see FIG. 4 ).
- a capacity line 2308 indicates the maximum memory resources available to application 104 .
- Display 2300 illustrates memory resource utilization by frames 223 of application 104 , thereby facilitating assessment of memory stresses applied to mobile device 114 when playing application 104 .
- a scroll bar 2312 allows the user to scroll through bars 2304 for application 104 .
- FIG. 24 shows one exemplary display 2400 illustrating a frame based display of profiled data 152 for graphic resource utilization as determined by graphic profile module 206 .
- display 2400 is shown with a time line 2402 that represents timeline 222 of application 104 .
- each bar 2404 indicates graphic resource utilization for certain frames 223 of application 104 .
- a current position indicator 2406 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 111 (see FIG. 4 ).
- a capacity line 2408 indicates the maximum graphic resources available to application 104 .
- Display 2400 illustrates graphic resource utilization by frames 223 of application 104 in profile window 110 , thereby facilitating assessment of graphic stresses applied to mobile device 114 when playing application 104 .
- a scroll bar 2412 allows the user to scroll through bars 2404 for application 104 .
- FIG. 25 shows one exemplary display 2500 illustrating a frame based display of profiled data 152 for network resource utilization as determined by system profile module 208 .
- display 2500 is shown with a time line 2502 that represents timeline 222 of application 104 .
- each bar 2504 indicates network resource utilization for certain frames 223 of application 104 .
- a current position indicator 2506 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 111 (see FIG. 4 ).
- a capacity line 2508 indicates the maximum network resources available to application 104 .
- Display 2500 illustrates network resource utilization by frames 223 of application 104 , thereby facilitating assessment of network stresses applied to mobile device 114 when playing application 104 .
- a scroll bar 2512 allows the user to scroll through bars 2504 for application 104 .
- FIG. 26 shows one exemplary screen 2600 illustrating a frame based display of profiled data 1942 , FIG. 20 , for total system resource utilization as determined by one or more profilers within emulator 1922 .
- screen 2600 is shown with a time line 2602 that represent a timeline of application 1906 .
- each bar 2604 indicates total resource utilization for certain frames of application 1906 .
- a current position indicator 2606 shows the frame (i.e., frame 1 in this example) currently displayed by emulated mobile device display 2652 .
- a capacity line 2608 indicates the maximum total resources available to application 1906.
- Display 2600 illustrates total resource utilization by frames of application 1906 , thereby facilitating assessment of total stresses applied to mobile device 114 when playing application 1906 .
- a scroll bar 2612 allows the user to scroll through bars 2604 for application 1906 .
- Screen 2600 may be simultaneously viewed within viewer 1930 of one or more authoring environments 1902 .
- each authoring environment 1902 may display screen 2600 to show profile data 1942 and device view 1944 within viewer 1930 through operation of para-monitor 1908 .
- the application is developed by four cooperating developers (1-4), each developing one of four parts 2662 , 2664 , 2666 , and 2668 , respectively, of the application.
- developer #1 may be working on a first part of the application, while developer #2 is working on a second part and developer #3 is working on a third part of the application.
Abstract
Description
- This application is a division of U.S. application Ser. No. 14/084,321, filed Nov. 19, 2013 (now U.S. Pat. No. 9,298,864), which claims priority to U.S. application Ser. No. 12/705,913, filed Feb. 15, 2010 (now U.S. Pat. No. 8,589,140), which claims priority to U.S. Application No. 61/152,934, filed Feb. 16, 2009, and is a continuation-in-part of U.S. application Ser. No. 11/449,958, filed Jun. 9,2006 (now U.S. Pat. No. 7,813,910), which claims priority to U.S. Application No. 60/689,101, filed Jun. 10, 2005, all of which are incorporated herein by reference.
- It is estimated that the mobile market is evolving at five times the speed of the eCommerce market. It is estimated that nearly 700 million new mobile devices will be shipped in 2005, with a new handset model being launched every other day. This rapid mobile device development requires that applications designed to run on these mobile devices also sustain rapid development. Development systems targeted at one mobile device may become obsolete and possibly of little value to the developer at the time it is shipped as well as development life cycles.
- Many new mobile devices include a display management engine called a Flash Player; one example of a Flash Player suitable for mobile devices is FlashLite from Macromedia. The Flash Player provides a common application platform for playing applications on the mobile devices and allows developers to develop applications that may be played on multiple mobile devices that include the Flash Player. Applications for mobile devices are typically developed on a personal computer (PC) or workstation and target one or more types of mobile device that include a Flash Player. These applications require real-time testing of the application on all applicable mobile devices. Each mobile device has a certain amount of resources, such as processor, memory, graphics and networking. A certain portion of these resources is available for use by the application when it is executed (i.e., run) on the mobile device. Although a Flash Player application may operate correctly on one mobile device model, it may crash when playing on a different mobile device model. For example, a NOKIA 6600 has a 16% reduction in ARM CPU speed and available memory resources compared to a NOKIA 7610, thus an application that plays correctly on the NOKIA 761O may not play correctly on the NOKIA 6600 due to this drop in inherent resources.
- Development packages (e.g., FlashMX by Macromedia) are available to run on a PC and allow development of Flash Player applications for one or more mobile devices. However, although these development packages may simulate operation of the application playing on the targeted mobile device, they do not determine if the application will play correctly on the targeted mobile device based upon resource usage. Currently, the only way to determine if an application plays on a particular mobile device is to transfer the application to the device and play it. During development of an application for a mobile device, an application author may transfer and play the application hundreds of times (development life cycles) on the targeted mobile device before identifying and correcting all system resource problems within the application. Where an application is targeted to play on many types of mobile device, it must be transferred and tested on a mobile device representative of each targeted mobile device type. This transferring and testing process is time-consuming and therefore costly for the application author.
- Furthermore, having accessibility to all available mobile devices in targeted geographical markets worldwide as well as real-time interaction with network operators to measure and emulate network characteristics within each market is presently not possible.
- In one embodiment, a method emulates and profiles an application playing on a mobile device that includes an application player. Characteristics defining performance of the mobile device are loaded. The mobile device is emulated using a model based upon the characteristics. The application is played and monitored within the model to determine resource utilization of the application for the mobile device.
- In another embodiment, a method authors, emulates and profiles an application playing on a mobile device that includes an application player. An application development tool authors the application and the mobile device is emulated using a model based upon the characteristics. The application is played within the model and the model is monitored to determine resource utilization of the application for the selected mobile device.
- In another embodiment, an environment is provided for authoring an application to play on a mobile device that includes an application player. The application is authored using an application development tool. Resource utilization of the application for the mobile device is estimated. The steps of authoring and estimating are repeated until the resource utilization is less than or equal to the resources available on the mobile device.
- In another embodiment, an emulator profiles an application of a mobile device that includes an application player, including: means for generating a model of the mobile device based upon mobile device characteristics, and means for playing the application within the model to determine resource utilization of the application when played by the mobile device.
- In another embodiment, a method determines whether a frame-based application of a mobile device is operable. Characteristics are downloaded over the Internet for one or more mobile devices to be emulated and the application for the mobile devices is tested, via the Internet, using an emulator to determine if the application is operable on the mobile device.
-
FIG. 1A shows one exemplary embodiment of a system for emulating, authoring and visually profiling a frame-based application playing on a mobile device that includes an application player. -
FIG. 1B shows one exemplary embodiment of the system ofFIG. 1A within a computer. -
FIG. 2 is a block diagram illustrating detail of an emulator of the system ofFIGS. 1A and 1B . -
FIG. 3 is a display showing one exemplary frame-based profile graph. -
FIG. 4 is a display showing the modeled mobile device ofFIGS. 1A and 1B . -
FIG. 5 shows one exemplary window that includes the display ofFIG. 3 , the display ofFIG. 4 and an exemplary user interface. -
FIG. 6 is a flowchart illustrating a method for modeling and profiling a frame-based application to play on a mobile device that includes an application player. -
FIG. 7 is a flowchart illustrating one method for authoring, emulating and profiling a frame-based application to play on a mobile device that includes an application player. -
FIG. 8 is a block diagram illustrating the emulator ofFIG. 1 interacting with an operator development server via the Internet for simulating playing of the application within a mobile device connected to a wireless network. -
FIGS. 9, 10, 11 and 12 show exemplary user interface screens for interacting with the emulator ofFIG. 1 to configure and test operation of the application within the model of the mobile device when connected to a wireless network. -
FIG. 13 is a flowchart illustrating one exemplary method for configuring network simulation. -
FIG. 14 is a flowchart illustrating one method for determining whether a frame-based application of a mobile device is operable. -
FIG. 15 shows one exemplary authoring environment for emulating and profiling running of a frame-based application on multiple mobile devices. -
FIG. 16 shows one exemplary development scenario illustrating an authoring environment connecting to a development server to retrieve and utilize one or more network models and one or more device models. -
FIG. 17 shows one exemplary para-authoring environment wherein two application authoring environments cooperate to develop a frame-based application for a mobile device. -
FIG. 18 shows one exemplary para-authoring system illustrating presence and social interaction between three authoring environments. -
FIG. 19 shows one exemplary para-authoring system wherein a frame-based application is developed across three cooperating authoring environments. -
FIG. 20 shows the para-authoring system ofFIG. 19 wherein the authoring environment includes the emulator and the network simulator to host emulation of the application. -
FIG. 21 shows an exemplary display illustrating profiled data that combines CPU, memory, graphics, and network utilization; -
FIG. 22 shows an exemplary display illustrating profiled data for CPU utilization; -
FIG. 23 shows an exemplary display illustrating profiled data for memory utilization; -
FIG. 24 shows an exemplary display illustrating profiled data for graphic resource utilization; -
FIG. 25 shows an exemplary display illustrating profiled data for network resource utilization; and -
FIG. 26 shows an exemplary screen illustrating profiled data for total system resource utilization. - When developing a software program, a software developer often utilizes a software profiler to generate a report on the amount of time a processor spends in each routine of the software program during execution. The report may be used to find and optimize resource intensive areas of the software program. Some profiling modes report units other than time (such as call counts) and/or report at granularities other than per-routine. In the following description and examples, the term profiler may refer to a utility or function that determines or estimates mobile device resource utilization by an application running on that mobile device. For example, resource utilization may be determined for each output frame of a running frame-based application and displayed as a percentage of available resources for a particular mobile device.
-
FIG. 1A shows one exemplary embodiment of asystem 100 for emulating and profiling a frame-basedapplication 104 playing on amobile device 114 that includes anapplication player 116.System 100 is shown with anemulator 101 and aprofiler 106.Emulator 101 generates amobile device model 102, based uponcharacteristics 115 ofmobile device 114.Model 102 emulatesmobile device 114 to play frame-basedapplication 104 and may, for example, generate an emulated mobile device display 111 that representsmobile device 114. Emulated mobile device display 111 may be interactive to allow a user to interact (in a manner similar to interacting with mobile device 114) withapplication 104 while playing withinmodel 102. -
Mobile device 114 provides resources, such as processor resources, memory resources, graphic resources and networking resources, for use byapplication 104 when played withinapplication player 116. Processor resources available for runningapplication 104 may be defined as a percentage of total processing resources ofmobile device 114; memory resources may be defined as a percentage of total memory withinmobile device 114; graphic resources may be defined as a percentage of total graphical resources ofmobile device 114; and networking resources may be defined as a percentage of total networking resources ofmobile device 114. In one example, 40% of a processor resource within a mobile device is available for runningapplication 104, indicating thatapplication 104 may not exceed 40% of the available instruction cycles of the processor without potentially ‘crashing’ the mobile device. -
Profiler 106 monitors playing of frame-basedapplication 104 withinmodel 102 to estimate resource usage ofapplication 104 and generates a profiledata display window 110. Profile data displaywindow 110 allows a user ofsystem 100 to identify areas withinapplication 104 that would exceed resources ofmobile device 114. -
Application 104 may be developed using a frame-based application development tool 112 (indicated in dashed outline). Frame-based application development tool 112 may, for example, represent Flash MX or Studio 8 from Macromedia (now Adobe Systems) andapplication 104 may represent a Flash application. Once the user ofsystem 100 has verified that the execution ofapplication 104 does not exceed resources ofmobile device 114, development tool 112 can be instructed to publishapplication 104 tomobile device 114, as shown. - In one example of operation, development tool 112 is used to develop frame-based
application 104.Application 104 is transferred toemulator 101 for playing withinmobile device model 102 to estimate resource usage ofapplication 104 when played onmobile device 114. Upon playingapplication 104 withinmodel 102,emulator 101 utilizesprofiler 106 to determine resource utilization ofapplication 104 based uponmobile device characteristics 115. - In one embodiment,
emulator 101 is integrated with development tool 112 to form anauthoring environment 122 that facilitates development and testing ofapplication 104 without the need to continually loadapplication 104 intomobile device 114. - In another embodiment,
emulator 101 is an add-in module that may be configured to operate within development tool 112. -
Mobile device 114 is shown withapplication player 116,display 118 andinput keys 120. In one embodiment,application player 116 is Flash Lite from Macromedia (Adobe Systems).Mobile device 114 may, for example, represent one of: a cell phone, a personal digital assistant (PDA), an interactive home appliances and other such devices. In one example,display 118 represents a color liquid crystal display (LCD) device for displaying text and images to a user ofmobile device 114 andinput keys 120 represent buttons that allow the user to interact withmobile device 114. -
FIG. 1B shows one exemplary embodiment ofsystem 100 within a computer 130. Computer 130 includes memory 132, storage 134 and a processor 136. Memory 132 is for example random access memory (RAM) and storage 134 is for example a disk drive or other non-volatile storage media. - Storage 134 is shown with
emulator 101,mobile device characteristics 115 andapplication 104. Storage 134 may also include development tool 112, if desired, for developingapplication 104.Emulator 101 includes model algorithms 148 andprofiler 106. Model algorithms 148 represent one or more algorithms that operate to generatemobile device model 102 to emulatemobile device 114 while executingapplication 104. Specifically, model algorithms 148 define operation ofmobile device 114 based uponmobile device characteristics 115. -
TABLE 1 Mobile Device Characteristics Parameter Value Name NOKIA 3650 Processor ARM 4T Processor Speed 104 MHz Storage Access 5.88 Speed files/second RAM Size 256 MB Storage Size 512 MB Display Width 256 Display Height 394 Pixel Depth 24 Processor Availability 60 % RAM Availability 60 % Storage Availability 40% - Table 1 Mobile Device Characteristics', shows exemplary characteristics that may be used to specify hardware attributes and performance of
model 102 to emulatemobile device 114. For example, in Table 1, the characteristics have the following meaning: ‘Processor’ specifies the type of the processor inmobile device 114; ‘Processor Speed’ specifies the clocked speed of the processor withinmobile device 114; ‘Storage Access Speed’ specifies the rate at which data can be moved from storage to memory and/or screen withinmobile device 114; ‘RAM Size’ specifies the size of the RAM inmobile device 114; ‘Storage Size’ specifies the size of the non-volatile memory inmobile device 114; ‘Display Width’ specifies the number horizontal pixels ondisplay 118 ofmobile device 114; ‘Display Height’ specifies the number of vertical pixels ofdisplay 118; ‘Pixel Depth’ specifies the number of bits per pixel (e.g., the color depth) ofdisplay 118; ‘Processor Availability’ specifies the percentage of processing resource available for use by applications (e.g., wheremobile device 114 represents a cell phone, the phone has to maintain ‘phone’ operations while running any applications, thus there may only be a portion of the maximum processing resource available to applications); ‘RAM Availability’ specifies the percentage of RAM available to applications; and ‘Storage Availability’ specifies the percentage of non-volatile storage space available to applications. - Table 1 may be represented as a data structure (e.g., shown as
mobile device characteristics 115 within storage 134) and may be stored in a file (not shown) or a database (not shown) within storage 134, or stored remotely (e.g., onoperator development server 808,FIG. 8 , for download intoauthoring environment 122 as necessary).System 100 may include mobile device characteristics (e.g., mobile device characteristics 115) for multiple devices (e.g., mobile device 114). For example,characteristics 115 may be included for each mobile device type targeted byapplication 104. A user ofsystem 100 may then select one or more target mobile devices from a list based uponavailable characteristics 115. As appreciated, additional or fewer characteristics may be included withincharacteristics 115 to specify hardware attributes and performance ofmobile device 114 without departing from the scope hereof. - As new mobile device types are created, additional
mobile device characteristics 115 may be easily created to specify hardware attributes and performance of the new device types, allowing application development to start before a physical mobile device is available. For example, if a company introduces a new series of six mobile phone handsets, six additional sets ofmobile device characteristics 115 may be created based upon measured (e.g., by running benchmarks on the new handsets or prototype) or determined (e.g., by estimating performance based upon previous models) performance thereby allowing emulation and evaluation of applications targeting these new devices. - In one embodiment,
mobile device characteristics 115 may be supplied with a device model specific to one mobile device. For example, a manufacturer may supply a combined device model and characteristics for eachmobile device 114.Emulator 101 may then utilize the combined device model asdevice model 102. - In one example, computer 130 may include an interface (not shown) that provides communication with
mobile device 114 via one or more of: USB, Ethernet, infra-red, Bluetooth, WiFi and other similar communication media. This interface may, for example, allowapplication 104 to be deployed onmobile device 114 for final testing ofapplication 104. - In one example of operation, processor 136 loads at least part of
emulator 101 into memory 132 for execution.Emulator 101 then generatesmobile device model 102, based uponcharacteristics 115, within memory 132.Emulator 101 then loads and playsapplication 104 withinmodel 102. In all embodiments described herein, it is to be noted that emulation is performed on a processor extrinsic to the mobile device being emulated.Emulator 101 may load all or part ofprofiler 106 into memory 132 to monitor resources and/or performance ofapplication 104 withinmodel 102. Specifically, asapplication 104 is played (i.e., utilizing an application player 154) withinmodel 102,profiler 106 monitors and records, as profiled data 152, resources utilized byapplication 104. Profiled data 152 may be stored (as shown in dashed outline) within storage 134 and/or displayed as profile data display window 11O on display 140 of terminal 138. In particular, profile data display 11O may be used to identify areas withinapplication 104 whereupon playing ofapplication 104 withinmobile device 114, performance ofmobile device 114 would be stressed. Thus, areas where failure may occur withinapplication 104 may be identified prior to runningapplication 104 onmobile device 114. For example,emulator 101 may display all or part of profiled data 152 on display 140 to facilitate development ofapplication 104. -
FIG. 2 is a blockdiagram illustrating emulator 101 ofFIGS. 1A and 1B in further detail. In particular,profiler 106, withinemulator 101, is shown with aprocessor profile module 202, amemory profile module 204, agraphic profile module 206 and asystem profile module 208.Processor profile module 202 may, for example, estimate processor utilization ofapplication 104 withinmodel 102.Memory profile module 204 may, for example, estimate memory utilization byapplication 104 withinmodel 102.Graphic profile module 206 may, for example, estimate utilization of 30 fill rate and 30 polygon count ofapplication 104 withinmodel 102.System profile module 208 may, for example, determine overall system utilization ofapplication 104 withinmodel 102. More or fewer profile modules may be included withinprofiler 106 without departing from the scope hereof. -
Device model 102, withinemulator 101, has a modeleddisplay 210, a modeledprocessor 212, modeledinput keys 214, modeledmemory 216 and modeled non-volatile storage 218. In this example, modeled display 21O representsdisplay 118 ofmobile device 114,FIG. 1 ,processor 212 represents a processor (not shown) ofmobile device 114, modeledinput keys 214 representinput keys 120 ofmobile device 114, modeledmemory 216 represents memory (e.g., RAM) ofmobile device 114 and modeled non-volatile storage 218 represents non-volatile storage (e.g., flash memory, disk drive storage) ofmobile device 114. Fewer or more elements and/or components ofmobile device 114 may be modeled withindevice model 102 without departing from the scope hereof. - Modeled non-volatile storage 218 is shown with
application player 154 that may be the same as, or similar to,application player 116,FIG. 1 . In one example,application player 154 has similar operation toapplication player 116, but includes modifications that facilitate monitoring ofapplication 104 withinmodel 102 byprofiler 106. - Flash applications are based upon a timeline of frames that may include graphical information and action scripts, FS Commands, network protocols, selected frame rate, etc.
Application player 116 withinmobile device 114 thus operates upon a time line of frames withinapplication 104 to provide graphical displays (e.g., animations, rich media content) upondisplay 118. Accordingly, profiled data 152 may also be based upon the timeline and frames ofapplication 104 and displayed (e.g., via profile data display window 110) as resource utilization related to one or more of: timeline, frames and processing performance of action scripts. - In
FIG. 2 ,application 104 is shown with atimeline 222 that includes frames 223. Each frame offrames 223 may include graphics and/or action scripts that generate the graphical image for display. For example, an action script may reference one or more graphic files (e.g., movie file 224) to provide graphical images for emulated mobile device display 111. Where each frame offrames 223 includes multiple graphic elements and/or action scripts that involve image manipulation (e.g., retrieving data from non-volatile storage, avatar manipulations, animations, etc.), each frame may require differing resources in order to display correctly. For example, where a frame includes Avatar (e.g., an animated character) manipulation, a certain amount of processor resource is required, whereas a frame that is based uponmovie file 224 may simply require data transfer time. Ifmobile device 114 has insufficient processor resources (e.g., because the animation is too complex for the targeted mobile device),application 104 may crash (i.e., cease to function correctly). Thus, it is important to determine the ‘stress’ applied byapplication 104 to resources ofmobile device 114. - In one example of operation,
application player 154 playsapplication 104 withinmodel 102. In particular,player 154 processes frames 223 ofapplication 104 based upon ordering offrames 223 withintimeline 222. One ormore profile modules profiler 106 monitor resource utilization of each frame, storing results as profiled data 152. Profiled data 152 is then displayed as profile data display window 11O on display 140 for review by the user. Profiled data 152 may be displayed in real time asapplication 104 is played withinmodel 102. Alternatively, the user may scroll through profiled data 152 as desired by interacting withprofile data display 110. Alternatively, profiled data 152 may be output as a report (not shown). The user interacts with emulated mobile device display 111 to controlapplication 104 as if application were running onmobile device 114. -
FIG. 3 shows one exemplary profile data display window 11O showing a frame-based display of profiled data 152,FIG. 1B , determined byprocessor profile module 202. In particular, profile window 11O is shown with atime line 302 that representstimeline 222 ofapplication 104. In this example, eachbar 304 indicates processor resource utilization for each ofcertain frames 223 ofapplication 104. In each embodiment of the present system described herein, each bar may, alternatively, represent a particular point or period in time during the execution of anapplication 104 which is non-frame-based. During play ofapplication 104 withinmodel 102, acurrent position indicator 306 shows the frame (i.e.,frame 1 in this example) currently displayed by emulated mobile device display 111 (seeFIG. 4 ). A capacity line 308 (capout line) indicates the maximum processor resource available toapplication 104. Where bars 304 rise abovecapacity line 308 atlocations 310, resource utilization for indicated frames ofapplication 104 exceed the available processor resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames. Profile window 11O displays per-frame (or point-in-time) processor resource utilization ofapplication 104, thereby facilitating assessment of stresses applied tomobile device 114 when playingapplication 104. Where the number offrames 223 ofapplication 104 exceeds the display capacity ofprofile window 110, ascroll bar 312 allows the user to scroll throughbars 304 forapplication 104. -
Other profile modules application 104 withinmodel 102, thereby estimating resource utilization ofapplication 104 when played withinmobile device 114. -
FIG. 4 shows oneexemplary display 400 generated fromdevice model 102 withinemulator 101,FIG. 1 . In particular,display 400 shows an image (e.g., generated from a bitmap of mobile device 114) ofmobile device 114 with adisplay area 402 andinput keys 404.Display 400 allows the user to see and interact with an application running withindevice model 102. For example,display area 402 may representdisplay 118 ofmobile device 114 andinput keys 404 may representinput keys 120 ofmobile device 114. -
FIG. 5 shows anexemplary window 500 that includes profile window 11O ofFIG. 3 and display 400 ofFIG. 4 and an exemplary user interface. In particular,window 500 shows selection of a mobile device (i.e.,NOKIA 3650 in this example) from a pull-down list 502 that results in display ofcharacteristics 504 of the selected mobile device insystem information window 506.Characteristics 504 may representcharacteristics 115 ofFIG. 1A , for example.System information window 506 may contain information related to system resource utilization with respect to the handset CPU and memory, the executing application, and network and various system resources.Window 500 facilitates interaction withmodel 102 throughdisplay 400 and monitoring of resource utilization ofapplication 104 throughprofile window 110. Furthermore, pull-down list 502 allows easy selection of further mobile devices upon whichapplication 104 is to be profiled. -
FIG. 6 is a flowchart illustrating amethod 600 for modeling and profiling an application playing on a mobile device that includes an application player.Method 600 may, for example, be implemented withinemulator 101. - In
step 602,method 600 loads characteristics defining hardware attributes and performance of the mobile device. In one example ofstep 602, a user ofwindow 500 selects a mobile device using pull-down list 502 andemulator 101 loadsmobile device characteristics 115 into memory 132. - In
step 604,method 600 emulates the mobile device using a model based upon the characteristics. In one example ofstep 604,emulator 101 generatesdevice model 102 based uponmobile device characteristics 115. - In
step 606,method 600 loads the application into the model. In one example ofstep 606, emulator 101loads application 104 intodevice model 102. - In
step 608,method 600 plays the application within the model. In one example ofstep 608,emulator 101 playsapplication 104 withinmodel 102. - In
step 610,method 600 monitors the application playing in the model to determine resource utilization of the application for the mobile device. In one example ofstep 610,emulator 101 utilizesprofiler 106 to monitorapplication 104 playing withinmodel 102 to determine profiled data 152. - In
step 612,method 600 displays the resource utilization information. In one example ofstep 612,emulator 101 displays all or part of profiled data 152 as frame-based profile data display window 11O on display 140. -
FIG. 7 is a flowchart illustrating onemethod 700 for authoring, emulating and profiling an application to play on a mobile device that includes an application player.Method 700 may be implemented withinemulator 101, for example. - In
step 702,method 700 receives instructions for authoring an application for a mobile device. In one example ofstep 702, a user interacts with frame-based application development tool 112 toauthor application 104. - In
step 704,method 700 plays the application within an emulation of the mobile device. In one example ofstep 704,emulator 101 generatesmodel 102 based uponcharacteristics 115 ofmobile device 114 and then loads and playsapplication 104 withinmodel 102. - In
step 706,method 700 determines resource utilization of the playing application. In one example ofstep 706,emulator 101 utilizes one ormore profile modules profiler 106 to determine resource utilization ofapplication 104 withinmodel 102 and stores the resource utilization information as profiled data 152. - In
step 708,method 700 evaluates resource utilization in view of characteristics of the mobile device. In one example ofstep 708,emulator 101 evaluates profiled data 152 to determine, based uponcharacteristics 115, if resource utilization is within available resources ofmobile device 114. - Step 71O is a decision. If in
step 710,method 700 determines that the resource utilization ofstep 708 is within available resources of mobile device 114 (i.e., OK),method 700 continues withstep 714; otherwisemethod 700 continues withstep 712. - In
step 712,method 700 receives instructions for authoring the application to resolve resource issues. In one example ofstep 712, the user modifiesapplication 104, based upon determined resource utilization ofstep 708, using development tool 112.Method 700 continues withstep 704.Steps 704 though 712 thus repeat until the estimated resources requirement of the application is within available resources of the mobile device. - Step 714 is optional and is particularly suited for testing applications (e.g., application 104) running on a mobile device (e.g., mobile device 114) that is a mobile phone. In
step 714,emulator 101 interacts with one or more operator development servers (e.g.,operator development server 808,FIG. 8 ) to configuredevice model 102 for simulated network operation to allow testing ofapplication 104 within a simulated wireless network environment (e.g., a simulated mobile phone wireless network environment). Simulated network operation is described in further detail below and shown inFIGS. 8 though 13. - In
step 716,method 700 transfers the application to the mobile device. In one example ofstep 716,emulator 101 instructs development tool 112 to publishapplication 104 tomobile device 114. -
FIG. 8 is a block diagram illustrating interaction ofemulator 101 with anoperator development server 808 viaInternet 822 for simulating playing ofapplication 104 within a mobile device connected to a wireless network (e.g., a mobile phone wireless network).FIGS. 9, 10, 11 and 12 show exemplary windows that allow a user to interact withemulator 101 for configuring and testing operation ofapplication 104 withinmodel 102 when simulating connection to a wireless network.FIGS. 8, 9, 10, 11 and 12 are best viewed together with the following description. -
Emulator 101 is shown with anoperator interface 802 that interacts withoperator development server 808 viaInternet 822.Internet 822 may, for example, represent the world wide web (WWW), an Intranet or any fixed or wireless server connection.Operator development server 808 is shown with asimulator 810,characteristic data 815 andmodel data 820.Model data 820 may, for example, represent live network profiles. To facilitate connection tooperator development server 808, a user ofemulator 101 purchases a subscription from a provider of operator development server 808 (or from a third party) that allowsemulator 101 to connect tooperator development server 808 viaInternet 822. Upon connection tooperator development server 808,emulator 101 may downloadcharacteristic data 815 fromoperator development server 808 for one or more mobile device types supported by operator development server 808 (i.e., supported by the operator's wireless network).Characteristic data 815 may, for example, representmobile device characteristics 115 ofFIG. 1 . Further,emulator 101 may downloadadditional model data 820 for use withindevice model 102 for increasing simulated functionality of model 102 (e.g., simulating additional handset functionality and/or network functionality). The user ofemulator 101 may, for example,purchase model data 820 for additional mobile device types as they become available, thereby allowingemulator 101 to include modeling capability for a new pre-release mobile device, scheduled release mobile device and current mobile devices. Alternatively, the use ofcharacteristic data 815 andmodel data 820 may be included within a monthly subscription fee, thereby allowing the user to author applications for new mobile devices (e.g., new mobile phone models and live mobile profiles) provided by an operator (e.g., mobile phone wireless network operator). - In one example of operation,
emulator 101 downloads anetwork simulator interface 804 fromoperator development server 808 intodevice model 102 as shown inFIG. 8 .Network simulator interface 804 includes functionality that allowsdevice model 102 to communicate withsimulator 810 to simulate connectivity ofmobile device 114 with a wireless network. Specifically,network simulator interface 804 withinmodel 102 interacts withdata provider 812 andevent generator 814 to determine resource utilization resulting from network interaction bymodel 102. Thus, asapplication 104 plays withinmodel 102, the effects ofmobile device 114 interacting with a wireless network are simulated such that frame-based profile data display window 11O shows resource utilization that includes the live or scripted effects of interaction with the wireless network. In one embodiment,capacity line 308 in profile data display window 11O is dynamically modified to show actual resource availability toapplication 104 resulting from resource utilization by simulated wireless network activity withindevice model 102. For example, if a message is received and/or retrieved bymodel 102 while playingapplication 104, certain resources are required to handle the received message, and therefore available resources forapplication 104 is reduced accordingly. -
Simulator 810 is shown with adata provider 812 and anevent generator 814.Data provider 812 may, for example, simulate data transfers within a wireless network. For example, the data transfer may be cased upon a certain bandwidth associated with the wireless network.Event generator 814 may, for example, generate certain events (e.g., incoming calls, incoming text messages, etc) that occur within a wireless network.Simulator 810, usingdata provider 812 andevent generator 814, thus interacts withnetwork simulator interface 804 to model operation of a wireless network (e.g., a mobile phone network). -
Operator interface 802 may interact with multipleoperator development servers 808 to facilitate testing ofapplication 104 with many operators' networks. As appreciated, whereapplication 104 is designed to function on multiple mobile devices operating on wireless networks worldwide, operator network simulation removes the burden of traveling to operator network locations from application developers, since application operation on a mobile device connected to a network may be simulated byemulator 101 and thus measured back against the authoring environment. -
FIG. 9 shows oneexemplary window 900 for selecting operator networks based upon a desired geographic location.Window 900 shows amenu item 902 that, upon selection by the user, displays aworld map 904 that allows the user to select a geographical region in whichmobile device 114 is to operate. For example,window 900 shows amouse pointer 906 selecting the United Kingdom, resulting in asub-map display 908 of the selected location showingavailable wireless networks 910.Sub-map display 908 is, for example a ‘mouse-over’ event. Upon selection of the location,world map 904 is replaced bysub-map 908 of the selected location and a pull-down list 1004 of available operators within that location as shown inwindow 1000,FIG. 10 . Alternatively, the use may selectmenu item 1002 to display pull-down list 1004. - Upon selection of an operator within pull-
down list 1004,emulator 101 displays a pull-down list 1104 of mobile devices supported by the selected operator, as shown inwindow 1100 ofFIG. 11 . Alternatively, the use may select themenu item 1102 to displaylist 1104. Upon selection of a mobile device fromlist 1104,window 1200,FIG. 12 , is displayed to allow the user to select desired network characteristics for simulation. -
Window 1200 shows a pull-down list 1202 of network characteristics that may be simulated bysimulator 810. For example,simulator 810 may allow control of scripted events (e.g., cell tower identification, service message, bandwidth, etc.), consumer events (e.g., checking email, checking messages, browsing network, available minutes, selecting images, etc.) and incoming events (e.g., phone calls, WAP Messages, receiving MMS, receiving SMS, etc.). Based upon selection fromlist 1202, a second list may be presented to allow further simulation requirements to be entered. In the example ofwindow 1200, consumer events entry oflist 1202 was selected, resulting in display of pull-down list 1204 from which check messages was selected resulting in the display of pull-down list 1206. In this example, the user may select ‘send message’ fromlist 1206 to evaluate the performance ofapplication 104 while a message is received from the network. - In one embodiment, maps 904, 908 and lists 1004, 1104, 1202, 1204 and 1206 are based upon information received by
operator interface 802 from one or moreoperator development servers 808. Thus, functionality ofmodel 102 and selectable simulations ofsimulator 810 may be easily updated by the operator as new mobile devices are created without requiring updates to software ofemulator 101. - Optionally, the user may select
menu item 901,FIG. 9 , to immediately locate, download and import modeling characteristics intoemulator 101. These characteristics may be stored within storage 134 of computer 130,FIG. 1B . -
FIG. 13 is a flowchart illustrating oneexemplary method 1300 for configuring wireless network simulation. - In
step 1302,method 1300 selects a geographic location of the wireless network. In one example ofstep 1302,emulator 101displays window 900 and the user selects the United Kingdom as the wireless network location. - In
step 1304,method 1300 selects a network operator from within the selected location. In one example ofstep 1304,emulator 101displays window 1000 including pull-down list 1004 of network operators within the location selected instep 1302. - In
step 1306,method 1300 connects to the selected network operator's development server. In one example ofstep 1306,emulator 101 utilizesoperator interface 802 to connect tooperator development server 808 based upon the operator selected instep 1304. - In
step 1308,method 1300 downloads a list of mobile devices supported by the simulator of the operator selected instep 1304. In one example ofstep 1308,emulator 101 downloadscharacteristic data 815 fromserver 808 to determine mobile devices supported bysimulator 810 and populateslist 1104 ofwindow 1100. Of note, an operator may add functionality tosimulator 810 based upon a new mobile device prior to supporting the device within the operator's wireless network, thereby encouraging development of applications for the new device before its launch, increasing operator and/or author revenues. - In
step 1310,method 1300 selects a mobile device from the list of supported mobile devices. In one example ofstep 1310, the user selects a mobile device for emulation fromlist 1104 ofwindow 1100. In another example, where the user has already selected a mobile device from pull-down list 502,emulator 101 automatically selects the same device, if available, fromlist 1104. - In
step 1312,method 1300 downloads a network simulator interface for the selected mobile device. In one example ofstep 1312,emulator 101 instructsoperator interface 802 to downloadnetwork simulator interface 804 fromserver 808. - In
step 1314,method 1300 loads the network simulator interface into the mobile device model. In one example ifstep 1314, emulator 101 loadsnetwork simulator interface 804 intomodel 102. - In
step 1316,method 1300 selects network characteristics to simulate. In one example ofstep 1316, the user utilizeslists window 1200 to specify network characteristics for simulation bysimulator 810. - In
step 1318,method 1300 models the application running within a mobile device connected to a wireless network. In one example ofstep 1318,model 102 interacts withsimulator 810 vianetwork simulator interface 804 andinternet 822 while playingapplication 104 and displayingprofile window 110. - In one embodiment, the user may purchase and download
simulator 810 fromoperator development server 808 to facilitate local simulation of the wireless network (i.e., without utilizing Internet 822). In this embodiment,simulator 810 may operate withinemulator 101, withinauthoring environment 122 or within computer 130 to provide interaction withmodel 102. -
Emulator 101 may utilizeoperator interface 802 to interact with one or moreoperator development servers 808 to download characteristics (e.g., characteristic data 815) and modeling data (e.g., model data 820) for generatingmobile device model 102. As new mobile devices are made available, each application author (i.e., user) is able to download these modeling characteristics and test applications for the new mobile device. As mobile devices become more sophisticated and include additional hardware and functionality,emulator 101, though a subscription service with an operator, for example, may download this additional functionality for use inmodel 102. These characteristics (e.g., characteristic data 815) may include bitmaps, characteristics handset profiles, modeling algorithms, complete mobile device models, bandwidths etc. thereby automatically updating functionality ofauthoring environment 122. Wireless network operators participate by updating their development servers (e.g., development servers 808) to provide the latest emulation information and functionality for each supported mobile device (e.g., mobile phone handset) and by updating their network simulators (e.g., simulator 810) to includes functionality and/or proposed functionality of their wireless networks. - Application authors (e.g., users of emulator 101) are provided with a visual authoring environment in which the authored application may be emulated as operating within one or more modeled mobile devices (that are optionally connected to a simulated wireless network) without leaving the authoring environment.
- The emulator (e.g., emulator 101) may be provided as part of the authoring environment, or as an add-on to an existing development tool.
- In an embodiment, characteristics for each mobile device to be emulated are downloaded from a server for a determined price or subscription fee. Since new mobile devices are continually being produced, application authors continually require new modeling characteristics to be able to test their applications. For example, a subscribed charge of $10-15 dollars per handset saves each developer from purchasing a mobile device ($100-200 dollars) and alleviates the need to travel to a wireless network location when testing each mobile device. Thus, the wireless network operator may receive revenue from developers by providing the developers with online network simulation capability. The application authors, via the Internet, are then able to test applications for mobile devices running on wireless networks worldwide.
- Characteristics for each mobile device to be emulated may be downloaded from a server for a determined price, licensing or subscription fee. It is estimated that nearly 700 million new mobile devices will be shipped in 2005, with a new handset model being launched every other day. This rapid mobile device development requires that applications designed to run on these mobile devices also sustain rapid development. Development systems targeted at one mobile device may become obsolete and possibly of little value to the developer at the time it is shipped. Since a new mobile device is being launched every other day, application authors continually require purchasing all addressable targeted devices prior to consumer release. For example, a charge of $10-15 dollars per modeled handset would save each developer purchasing each target mobile device ($100-200 dollars) as well as alleviating the need to travel to a wireless network location whilst testing each mobile device before public release, two substantial development and release costs.
- During development of an application for a mobile device, an application author may transfer and play the application hundreds of times (development life cycles) on the targeted mobile device before identifying and correcting all system resource problems within the application. Live server and profile updates would substantially reduce and alleviate a high churn rate of development life cycles, enabling a more cost effective authoring model for the developer. As well, although the purchase of a ‘static’ PC authoring environment may become obsolete due to the ongoing release of new mobile handsets (the target release platform)
emulator 101 andoperator development server 808 maintains a live and continually updatable business model and authoring platform long after the initial authoring platform has released to the market. -
FIG. 14 is a flowchart illustrating one method for determining whether an application of a mobile device is operable. Instep 1402,method 1400 downloads characteristics over Internet for one or more mobile devices to be emulated. Instep 1404,method 1400 tests the application for the mobile devices, via the Internet, using an emulator to determine if the application is operable on the mobile device. -
FIG. 15 shows oneexemplary authoring environment 1502 for emulating and profiling running of a frame-basedapplication 1506 on multiple mobile devices.Authoring environment 1502 includes adisplay 1540 and aninput device 1542 that allow a user to interact withauthoring environment 1502.Display 1540 may represent one or more computer displays andinput device 1542 may represent one or more input devices such as keyboard, mouse, graphic tablet, etc. In one embodiment,display 1540 andinput device 1542 are combined in the form of a touch screen.Authoring environment 1502 also includes an application developer 1504 (e.g., Flash MX for Flash Lite applications, xCode and Instruments for Apple applications, and Android for Google applications) that is used to create and/or modifyapplication 1506. The user interacts withapplication developer 1504, viainput device 1542 anddisplay 1540, to create anapplication 1506.Application 1506 is, for example, a Flash Lite application for use on a mobile device running a Flash Lite environment, or an Android application for use on a mobile device implementing Android. -
Authoring environment 1502 also includes an emulator 151O and one ormore device models 1512 for emulating operation of one or more mobile devices to allow the user to test operation ofapplication 1506 on each device. Emulator 151O may output, to display 1540, one or more frame-based profile data displays 1544 and one or more emulated mobile device displays 1548.Displays 1544 and 1548 are for example shown within windows and/or frames ondisplay 1540. -
Authoring environment 1502 may also include anetwork simulator 1520 that simulates a service provider network and interacts 1526 with one or more emulateddevice models 1512.Network simulator 1520 includes adata provider 1522 that provides data todevice models 1512 and anevent generator 1524 that generates network events to simulate connection ofdevice models 1512 to a real service provider network. That is, data and events of the real network are simulated bynetwork simulator 1520. -
Application developer 1504, emulator 151O andnetwork simulator 1520 may each be a part ofauthoring environment 1502, or may each be an external software program that is configured to cooperate with components ofauthoring environment 1502. That is,authoring environment 1502 may incorporate one or more software programs to facilitate creation, modification and testing ofapplication 1506. - In one example of operation, the user creates and/or
edits application 1506 by interacting withapplication developer 1504 viadisplay 1540 andinput device 1542.Application 1506 is then loaded into one or moreselected device models 1512 and one or more frame-based profile data displays 1544 and emulatedmobile device displays 1548 are shown ondisplay 1540. If, during running ofapplication 1506 on emulateddevice model 1512, a problem or optimization is identified, the user may modifyapplication 1506 usingapplication developer 1504. In one example, the user interacts withapplication developer 1504 to modifyapplication 1506, which then, throughcross pollination 1508, updates eachdevice model 1512. That is,application 1506 is updated within eachdevice model 1512 automatically such that changes toapplication 1506 withinapplication developer 1504 are duplicated within eachdevice model 1512. - In another example of operation, the user modifies
application 1506 withindevice model 1512 by interacting with one or more of frame-based profile data displays 1544 and/or emulated mobile device displays 1548. The user may select a frame ofapplication 1506 to edit by manipulating a current position indicator (e.g.,position indicator 306,FIG. 3 ).Authoring environment 1502, throughcross pollination 1508, automatically updatesapplication 1506 withinapplication developer 1504 andapplication 1506 within anyother device model 1512, such that eachapplication 1506 withinauthoring environment 1502 remains ‘current’. - In another example of operation, the user emulates
multiple device models 1512 within emulator 151O to testapplication 1506 within eachdevice model 1512 simultaneously.Emulator 1510, through emulation ofdevice models 1512, identifies problems withinapplication 1506 that are specific to each emulateddevice model 1512. For example, where CPU and/or memory over utilization of the emulateddevice model 1512 occurs when runningapplication 1506,device model 1512 and/or emulator 151O identifies the location (i.e., frame) withinapplication 1506 of such over utilization problems and they are reported to the user within frame-based profile display data 1544 (and optionally other summary displays generated by emulator 1510). - Emulator 151O may operate such that emulated
mobile device display 1548,network display 1554 andapplication display 1552 for each emulateddevice model 1512 appears to operate substantially in real time (i.e., as ifapplication 1506 is actually running on the mobile device being emulated). More specifically, emulator 151O may provide runtime profiling of real time mobile device resource utilization byapplication 1506 to produce frame based profile data display 1544, emulatedmobile device display 1548,network display 1554 andapplication display 1552. - Where emulator 151O emulates more than one
device model 1512, these device models may be synchronized at an application frame level. That is, for eachdevice model 1512, the currently frame ofapplication 1506 within each frame based profile data display 1544, emulatedmobile device display 1548,network display 1554 andapplication display 1552, is the same. Further, interaction with any one of frame based profile data display 1544, emulatedmobile device display 1548,network display 1554 andapplication display 1552, of anydevice model 1512, may automatically be propagated to anyother device model 1512 running withinemulator 1510. - A user may interact with one or more of frame based profile data displays 1544 of
device model 1512 to modify resources available toapplication 1506. For example, the user may interactively adjust a resource capacity line (e.g.,capacity line 308,FIG. 3 ) of one or more of frame based profile data displays 1544 to control the resource amount available toapplication 1506 within the associated device. In particular, a user may move a processor resource capacity line up to increase the available processor resource above that defined for the emulated mobile device. For example, the user may increase the available processor resources to pass a processor intensive frame withinapplication 1506, thereby allowing evaluation of frames withinapplication 1506 beyond a point whereapplication 1506 would otherwise crash. In another example, the user may decrease a memory resource available to application 1506 (e.g., by lowering the memory capacity line within the memory display 1544) in order to ‘stress test’application 1506. -
Emulator 1510 may also emulatedevice models 1512 at speeds other than real time. For example, a user ofapplication developer 1504 and emulator 151O may elect to emulatedevice model 1512 at half speed during testing of at least part ofapplication 1506. Alternatively, whereapplication 1506 is being tested for operability on a plurality of mobiles devices, the user may elect to emulatedevice models 1512 as fast as possible. In one example, the user may define one ormore input scripts 1562 for use withapplication 1506 such that user interaction with eachdevice model 1512 is not required unless resource utilization is exceeded byapplication 1506 for that model. For example,input scripts 1562 may predefine user interaction at defined frames ofapplication 1506. - In an embodiment, when all of frame based profile data display 1544, emulated
mobile device display 1548,network display 1554 andapplication display 1552 of afirst device model 1512 are minimized (i.e., not currently displaying content within display 1540), input made to anyother device model 1512 is automatically propagated to thatfirst device model 1512. - In an alternate embodiment, each
device model 1512 operates, withinemulator 1510, independently of anyother device model 1512, allowing the user to interact with (or define an input script for) eachdevice model 1512 independently. -
FIG. 16 shows oneexemplary development scenario 1600 illustrating anauthoring environment 1602 connecting to adevelopment server 1660 to retrieve and utilize one ormore network models 1606 and one ormore device models 1608.Authoring environment 1602 may representauthoring environment 1502,FIG. 15 , andauthoring environment 122 and include similar functionality.Development server 1660 may representdevelopment server 808,FIG. 8 , and include similar functionality.Authoring environment 1602 anddevelopment server 1660 may include additional functionality, as described below. - At least one service provider 1642(1) generates a network model 1606(1) based upon characteristics of a real network service of service provider 1642(1). Service provider 1642(1) provides network model 1606(1) to
development server 1660 where it is stored within anetwork model library 1662.Development server 1660 may receive other network models (e.g., network model 1606(2)) from other service providers (e.g., service provider 1642(2)), each of which may be stored withinnetwork model library 1662. - A device manufacturer 1644(1) generates a device model 1608(1) based upon a mobile device developed by device manufacturer 1644(1). That is, device model 1608(1) is designed to emulate characteristics of the mobile device. Device manufacturer 1644(1) provides device model 1608(1) to
development server 1660 where it is stored within adevice model library 1664.Development server 1660 may receive other device models (e.g., device model 1608(2)) from other device manufacturers (e.g., device manufacturer 1644(2)), each of which may be stored withindevice model library 1664. Further, an author using authoring environment 1602(2) may also submit new and/or amended device models (e.g., device model 1608(1)′) todevelopment server 1660 for use by authors andauthoring environments 1602.Development server 1660 may employ one or more techniques for managing updates tonetwork model library 1662 anddevice model library 1664 to prevent unauthorized changes. -
Development server 1660 may also storeauthoring environment software 1666 for download by a user to create or update anauthoring environment 1602. In one example of operation, the user logs into anaccount manager 1668 ofdevelopment server 1660 that, upon validation of the user usingaccount data 1670, allows the user to downloadauthoring environment software 1666 and one ormore network models 1606 and/or one ormore device models 1608, based upon a subscription status of the user.Account manager 1668 may store account information of the user withinaccount data 1670 that includes subscription status for accessingdevelopment server 1660. At a first subscription level, the user subscribes todevelopment server 1660 to accessauthoring environment software 1666, and any updates thereto. At a second subscription level, the user subscribes todevice model library 1664, and any updates thereto. At a third subscription level, the user subscribes to networkmodel library 1662, and any updates thereto. These subscriptions may be based upon time, e.g., a monthly subscription fee, or may be based upon a number of accesses (e.g., the user may downloadX network models 1606 andY device models 1608, where the user has prepaid for X network models and Y device models). -
Development server 1660 provides a single source for obtaining development tools for creation and/or modification ofapplication 1612 and allows the user to retrieve the latest models fromdevice manufacturers 1644 andservice providers 1642. In certain embodiments,authoring environment 1602 is configured to automatically obtain the latest software and models, as they become available, based upon the user's subscription (or upon paid fees) todevelopment server 1660. -
FIG. 17 shows one exemplary ‘para-authoring’environment 1700 wherein two application authors use authoring environments 1702(1) and 1702(2) to cooperate to develop a frame-basedapplication 1704 for a mobile device. For the purposes of the present document, the term ‘para-authoring’ is defined as the simultaneous or near-simultaneous collaborative authoring of a particular application by more than one author. In the present system, para-authoring may be performed via an Internet connection between two or more sites, or locally in a desktop/online environment.Authoring environments 1702 may representauthoring environment 1602,FIG. 16 , as well as the authoring environments shown inFIGS. 9 through 12 , as they relate to one or more developers authoring a frame based application, and may include similar functionality.Authoring environments 1702 may include additional functionality, as described below. - Authoring environments 1702(1) and 1702(2) may each be used to develop a subsection of frame-based
application 1704 and cooperate, through facilities ofdevelopment server 1706 to combine and test these parts as oneapplication 1704.Authoring environments 1702 may be located anywhere providing that communication withdevelopment server 1706 is possible. That is,authoring environments 1702 need not be located proximate to one another to be able to providepara-authoring environment 1700. -
FIG. 18 shows oneexemplary para-authoring system 1800 illustrating presence and social (collaborative) interaction between threeauthoring environments 1802. Eachauthoring environment 1802 includes a suite ofdevelopment tools 1804 that facilitate development of a frame-basedapplication 1806 that is formed of subsections (labeled (1), (2) and (3) in this example, althoughapplication 1806 may include more or fewer subsections of varying sizes without departing from the scope hereof). For example,application 1806 may include a background section, a foreground section, a menu section, and a data section, each of which may be authored within a different authoring environment. In the example ofFIG. 18 , three authoring environments cooperate to develop frame-basedapplication 1806. In particular, ofapplication 1806, subsection (1) is developed within authoring environment 1802(1), subsection (2) is developed within authoring environment 1802(2), and subsection (3) is developed within authoring environment 1802(3). However, for complete application evaluation, certain or all subsections ofapplication 1806 may be loaded into eachauthoring environment 1802 as they are made available (i.e., published) by the respective authoring environment. - Each
authoring environment 1802 includes a para-monitor 1808 that publishesstatus information 1810 indicating activity of that authoring environment to apara-authoring manager 1812. For example, para-monitor 1808(1) publishes status information of authoring environment 1802(1), para-monitor 1808(2) publishes status information of authoring environment 1802(2), and para-monitor 1808(3) publishes status information of authoring environment 1802(3); each of para-monitors 1808(1), 1808(2) and 1808(3) sending status information 1810(1), 1810(2) and 1810(3), respectively, topara-authoring manager 1812. -
Para-authoring manager 1812 operates to receive published online status 1814 from para-monitor 1808 and maintains agroup 1813 association ofrelated status information 1810.Group 1813 in this example is identified as associating authoring environments 1802(1), 1802(2) and 1802(3).Para-authoring manager 1812 may store other groups with more or fewer associations, without departing from the scope hereof. That is,manager 1812 maintains presence information ofauthoring environments 1802. In one embodiment,manager 1812 is located on a development server (e.g.,development servers 1660 and 1706).Para-authoring manager 1812 may also include a repository for storing sections ofapplication 1806 to facilitate retrieval by associatedauthoring environments 1802. In another embodiment,para-authoring manager 1812 is located within one ofauthoring environments 1802. - Para-monitor 1808, within each
authoring environment 1802, receives (either by request or by a ‘publish on change’ mechanism-push) publishedstatus information 1810 of associatedauthoring environments 1802, and displays this status information as one or both of online status 1814 and application status 1818 withinauthoring environment 1802. For example, para-monitor 1808(1) may display status of authoring environments 1802(2) and 1802(3) and availability of associated sections ofapplication 1806. Para-monitor 1808 may also provide other communication facilities, such as, but not limited to, one or more ofvideo conferencing facilities 1850,audio conferencing facilities 1852, andtext communication facilities 1816. - More specifically, para-monitor 1808 may publish status information on one or more of
network simulator 1824,emulator 1822 and application editor 1830 (collectively development tools 1804), thereby allowing para-authors using associated (grouped)authoring environments 1802 to receive status of associated development ofapplication 1806. -
FIG. 19 shows oneexemplary para-authoring system 1900 wherein a frame-basedapplication 1906 is developed across three cooperating authoring environments 1902(1), 1902(2) and 1902(3). Adevelopment server 1912 includes apara-authoring manager 1914, anetwork simulator 1924 and anemulator 1922.Development server 1912 may representdevelopment server 1660 ofFIG. 16 and include functionality ofdevelopment server 1660.Para-authoring manager 1914 may representpara-authoring manager 1812 ofFIG. 18 and include functionality ofpara-authoring manager 1812.Network simulator 1924 andemulator 1922 may representnetwork simulator 1620 andemulator 1622, respectively, and include similar functionality.Authoring environment 1902 may representauthoring environment 1602 andauthoring environment 1802 ofFIG. 18 and include similar functionality. - Each
authoring environment 1902 is used to develop a section ofapplication 1906.Authoring environments 1902 each include aviewer 1930 that operates to viewapplication 1906 playing on an emulated mobile device withinemulator 1922 ofdevelopment server 1912, described in further detail below.Viewer 1930 may represent a web browser where output ofemulator 1922 is in the form of an interactive web page. - Through collaborative development (or ‘social networking’), users of
authoring environments 1902 are aware of other para-authors' activities and may cooperatively view testing ofapplication 1906.Development server 1912, under control ofauthoring environment 1902, loadsapplication 1906 intoemulator 1922 where it is profiled running on a model (e.g.,device model 102,FIGS. 1A, 1B, 2, and 8, 1512 ,FIGS. 15, and 1608 ,FIG. 16 ) of a mobile device. In particular,emulator 1922 generatesprofile data 1942 anddevice view 1944 based upon the emulated application and selected device model.Profile data 1942 includes data defining estimated application utilization of the mobile devices resources, including one or more of: processor resources, memory resources, graphic resources, and networking resources.Profile data 1942 is similar to profile data 152,FIG. 1B , and may be displayed (e.g., within viewers 1930) numerically and/or graphically (e.g., as a graph, such as shown inprofile window 110,FIG. 3 ).Device view 1944 is a graphical representation ofapplication 1906 running within the device model of the mobile device. In particular,device view 1944 shows output ofapplication 1906 on the mobile device and may allow one or more para-authors to interact withapplication 1906 and/or the emulated mobile device (i.e., the device model). Optionally, the device model interacts withnetwork simulator 1924 to simulate use of the emulated mobile device on a real network. That is,network simulator 1924 interacts with the emulated device model to simulate operation of the mobile device within a real network.Emulator 1922 may also generate acontrol screen 1946 that allows authoring environment 1902(1) to control operating ofemulator 1922 andoptionally network simulator 1924.Para-authoring manager 1914 also allows authoring environments 1902(2) and 1902(3) to view, using viewers 1930(2) and 1930(3), respectively,profile data 1942 anddevice view 1944 during emulation ofapplication 1906. - In one example of operation, authoring environment 1902(1) controls
emulator 1922 andnetwork simulator 1924 throughcontrol screen 1946 and viewer 1930(1). Para-monitor 1908(1) publishes activity status of environment 1902(1) topara-authoring manager 1914, which in turn updates environments 1902(2) and 1902(3) as to this activity. Environments 1902(2) and 1902(3) may then elect, through para-monitor 1908(2) and 1908(3), to also viewprofile data 1942 anddevice view 1944 on viewers 1930(2) and 1930(3), respectively. Para-monitor 1908, as shown with para-monitor 1808 inFIG. 18 , may also provide other collaborative communication means, such as video, audio and text communication, that allow users ofenvironments 1902 to communicate during the shared emulation ofapplication 1906. Optionally, for example under control of environment 1902(1), environments 1902(2) and 1902(3) may be allowed to interact with the emulated device model throughdevice view 1944. - In one embodiment,
control screen 1946 may be transferred betweenenvironments 1902 to allow control ofemulator 1922 andnetwork simulator 1924 to be transferred between para-authors. For example, environment 1902(1) may transfercontrol screen 1946 to environment 1902(2) such that the para-author using environment 1902(2) may controlapplication 1906 withinemulator 1922. - In an alternate embodiment, shown in
FIG. 20 , authoring environment 1902(1) includesemulator 1922 andnetwork simulator 1924, and hosts emulation ofapplication 1906.FIG. 20 showspara-authoring system 1900 wherein anapplication 1906 is developed across three cooperating authoring environments 1902(1), 1902(2) and 1902(3). More or fewer para-authoring environments may cooperate without departing from the scope hereof. Para-monitor 1908(1) publishes activities of environment 1902 (1) to para-monitor (1908(2) and 1908(3), such that para-authors using environments 1902(2) and 1902(3) may selectively view emulation ofapplication 1906 viainternet 1920. In particular, para-monitors 1908 may cooperate to form one or more direct peer-to-peer communication links betweenenvironments 1902 to allowprofile data 1942 anddevice view 1944 to be viewed within authoring environments 1902(2) and 1902(3). Para-monitor 1908 may still operate withpara-authoring manager 1914 to determine communication configuration possibilities, but providing direct peer-to-peer communication links betweenenvironments 1902 may allow faster data transfer between environments and avoid overload ofdevelopment server 1912. -
FIG. 21 shows oneexemplary display 2100 illustrating a display of profiled data 152, that combines CPU, memory, graphics, and network utilization as determined byprocessor profile module 202,memory profile module 204,graphic profile module 206, andsystem profile module 208. In particular,display 2100 is shown with atime line 2102 that representstimeline 222 ofapplication 104. In this example, eachbar 2104 indicates total resource utilization for each ofcertain frames 223 ofapplication 104. Eachbar 2104 may, alternatively, represent a particular point or period in time during the execution of theapplication 104.Bars 2104 are displayed prior to execution of the application to indicate a pre-execution profile of the program. During the playing ofapplication 104 withinmodel 102, acurrent position indicator 2106 shows the frame (i.e.,frame 1 in this example) currently displayed by emulated mobile device display 111. Acapacity line 2108 indicates the maximum total resources available toapplication 104. Where bars 2104 rise abovecapacity line 2108, resource utilization for indicated frames ofapplication 104 exceed the available resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames.Display 2100 also includes a resourceutilization level indicator 2114 that shows the total resource utilization for the current frame of application 104 (i.e., as indicated by current position indicator 2106). -
Display 2100 illustrates total resource utilization byframes 223 ofapplication 104, thereby facilitating assessment of stresses applied tomobile device 114 when playingapplication 104. Where the number of frames 223 (displayed as bars 2104) ofapplication 104 exceeds the display capacity ofdisplay 2100, ascroll bar 2112 allows the user to scroll throughbars 2104 forapplication 104. The displayed bars 2104 are also shown grouped to indicate different sections, including “Introduction” 2122, “Main Menu” 2124, “Network” 2126, and “Advertisements-Ending” 2128, ofapplication 104. For example,section 2122 represents initial frames ofapplication 104 that correspond to the ‘introduction’ of an application, i.e., the beginning preamble or introductory material prior to a ‘main menu’. In a sports application, for example, the ‘introduction’ of an application might consist of introducing the corporate sponsors for a given event, including setting up the landscape of the application which leads into the main menu. -
FIG. 22 shows oneexemplary display 2200 illustrating a frame based display of profiled data 152 for CPU utilization as determined byprocessor profile module 202. In particular,display 2200 is shown with atime line 2202 that representstimeline 222 ofapplication 104. In this example, eachbar 2204 indicates processor resource utilization forcertain frames 223 ofapplication 104. During play ofapplication ψwithin model 102, acurrent position indicator 2206 shows the frame (frame 1 in this example) currently displayed by emulated mobile device display 111 (seeFIG. 4A ).Capacity line 2208 indicates the maximum processor resource available toapplication 104. Where bars 2204 rise abovecapacity line 2208, processor resource utilization for associated frames ofapplication 104 exceed the available processor resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames.Display 2200 illustrates processor resource utilization byframes 223 ofapplication 104, thereby facilitating assessment of processor stresses applied tomobile device 114 when playingapplication 104. Where the number offrames 223 ofapplication 104 exceeds the display capacity ofdisplay 2200, ascroll bar 2212 allows the user to scroll throughbars 2204 forapplication 104. - The displayed bars 2204 are also shown grouped to indicate different sections (e.g., “Introduction” 2222, “Main Menu” 2224, and “Advertisements Ending” 2226) of
application 104.Display 2200 further shows oneexemplary line graph 2242 illustrating alternate display options forframes 2204, and the use of a movement tool 2244 to adjustcapacity line 2208 and/or the amount of available processor resource. -
FIG. 23 shows oneexemplary display 2300 illustrating a frame based display of profiled data 152 for memory utilization as determined bymemory profile module 204. In particular,display 2300 is shown with atime line 2302 that representstimeline 222 ofapplication 104. In this example, eachbar 2304 indicates memory resource utilization forcertain frames 223 ofapplication 104. During play ofapplication 104 withinmodel 102, acurrent position indicator 2306 shows the frame (i.e.,frame 1 in this example) currently displayed by emulated mobile device display 111 (seeFIG. 4 ). Acapacity line 2308 indicates the maximum memory resources available toapplication 104. Where bars 2304 rise abovecapacity line 2308, memory resource utilization for associated frames ofapplication 104 exceed the available memory resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames.Display 2300 illustrates memory resource utilization byframes 223 ofapplication 104, thereby facilitating assessment of memory stresses applied tomobile device 114 when playingapplication 104. Where the number offrames 223 ofapplication 104 exceeds the display capacity ofdisplay 2300, ascroll bar 2312 allows the user to scroll throughbars 2304 forapplication 104. -
FIG. 24 shows oneexemplary display 2400 illustrating a frame based display of profiled data 152 for graphic resource utilization as determined bygraphic profile module 206. In particular,display 2400 is shown with atime line 2402 that representstimeline 222 ofapplication 104. In this example, eachbar 2404 indicates graphic resource utilization forcertain frames 223 ofapplication 104. During play ofapplication 104 withinmodel 102, acurrent position indicator 2406 shows the frame (i.e.,frame 1 in this example) currently displayed by emulated mobile device display 111 (seeFIG. 4 ). Acapacity line 2408 indicates the maximum graphic resources available toapplication 104. Where bars 2404 rise abovecapacity line 2408, graphic resource utilization for associated frames ofapplication 104 exceed the available graphic resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames.Display 2400 illustrates graphic resource utilization byframes 223 ofapplication 104 inprofile window 110, thereby facilitating assessment of graphic stresses applied tomobile device 114 when playingapplication 104. Where the number offrames 223 ofapplication 104 exceeds the display capacity ofdisplay 2400, ascroll bar 2412 allows the user to scroll throughbars 2404 forapplication 104. -
FIG. 25 shows oneexemplary display 2500 illustrating a frame based display of profiled data 152 for network resource utilization as determined bysystem profile module 208. In particular,display 2500 is shown with atime line 2502 that representstimeline 222 ofapplication 104. In this example, eachbar 2504 indicates network resource utilization forcertain frames 223 ofapplication 104. During play ofapplication 104 withinmodel 102, acurrent position indicator 2506 shows the frame (i.e.,frame 1 in this example) currently displayed by emulated mobile device display 111 (seeFIG. 4 ). Acapacity line 2508 indicates the maximum network resources available toapplication 104. Where bars 2504 rise abovecapacity line 2508, network resource utilization for associated frames ofapplication 104 exceed the available network resources ofmobile device 114; thusapplication 104 may ‘capout’ or crash when playing those frames.Display 2500 illustrates network resource utilization byframes 223 ofapplication 104, thereby facilitating assessment of network stresses applied tomobile device 114 when playingapplication 104. Where the number offrames 223 ofapplication 104 exceeds the display capacity ofdisplay 2500, ascroll bar 2512 allows the user to scroll throughbars 2504 forapplication 104. -
FIG. 26 shows oneexemplary screen 2600 illustrating a frame based display of profileddata 1942,FIG. 20 , for total system resource utilization as determined by one or more profilers withinemulator 1922. In particular,screen 2600 is shown with atime line 2602 that represent a timeline ofapplication 1906. In this example, eachbar 2604 indicates total resource utilization for certain frames ofapplication 1906. During play ofapplication 1906 withinemulator 1922, acurrent position indicator 2606 shows the frame (i.e.,frame 1 in this example) currently displayed by emulatedmobile device display 2652. Acapacity line 2608 indicates the maximum total resources available toapplication 1906. Where bars 2604 rise abovecapacity line 2608, total resource utilization for associated frames ofapplication 1906 exceed the available total resources ofmobile device 114; thusapplication 1906 may ‘capout’ or crash when playing those frames.Display 2600 illustrates total resource utilization by frames ofapplication 1906, thereby facilitating assessment of total stresses applied tomobile device 114 when playingapplication 1906. Where the number of frames ofapplication 1906 exceeds the display capacity ofdisplay 2600, ascroll bar 2612 allows the user to scroll throughbars 2604 forapplication 1906. -
Screen 2600 may be simultaneously viewed withinviewer 1930 of one ormore authoring environments 1902. For example, whereapplication 1906 is developed by two or more cooperating developers usingauthoring environments 1902, eachauthoring environment 1902 may displayscreen 2600 to showprofile data 1942 anddevice view 1944 withinviewer 1930 through operation of para-monitor 1908. In the example ofFIG. 26 , the application is developed by four cooperating developers (1-4), each developing one of fourparts developer # 1 may be working on a first part of the application, whiledeveloper # 2 is working on a second part anddeveloper # 3 is working on a third part of the application. - Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall therebetween.
Claims (19)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/083,186 US10691579B2 (en) | 2005-06-10 | 2016-03-28 | Systems including device and network simulation for mobile application development |
US16/908,322 US20210141713A1 (en) | 2005-06-10 | 2020-06-22 | Systems including network simulating for mobile application development |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68910105P | 2005-06-10 | 2005-06-10 | |
US11/449,958 US7813910B1 (en) | 2005-06-10 | 2006-06-09 | System and method for developing an application playing on a mobile device emulated on a personal computer |
US15293409P | 2009-02-16 | 2009-02-16 | |
US12/705,913 US8589140B1 (en) | 2005-06-10 | 2010-02-15 | System and method for emulating and profiling a frame-based application playing on a mobile device |
US14/084,321 US9298864B2 (en) | 2005-06-10 | 2013-11-19 | System including network simulation for mobile application development |
US15/083,186 US10691579B2 (en) | 2005-06-10 | 2016-03-28 | Systems including device and network simulation for mobile application development |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/084,321 Division US9298864B2 (en) | 2005-06-10 | 2013-11-19 | System including network simulation for mobile application development |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/908,322 Continuation US20210141713A1 (en) | 2005-06-10 | 2020-06-22 | Systems including network simulating for mobile application development |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160314060A1 true US20160314060A1 (en) | 2016-10-27 |
US10691579B2 US10691579B2 (en) | 2020-06-23 |
Family
ID=49555852
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/705,913 Expired - Fee Related US8589140B1 (en) | 2005-06-10 | 2010-02-15 | System and method for emulating and profiling a frame-based application playing on a mobile device |
US14/084,321 Active US9298864B2 (en) | 2005-06-10 | 2013-11-19 | System including network simulation for mobile application development |
US15/083,186 Active US10691579B2 (en) | 2005-06-10 | 2016-03-28 | Systems including device and network simulation for mobile application development |
US16/908,322 Granted US20210141713A1 (en) | 2005-06-10 | 2020-06-22 | Systems including network simulating for mobile application development |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/705,913 Expired - Fee Related US8589140B1 (en) | 2005-06-10 | 2010-02-15 | System and method for emulating and profiling a frame-based application playing on a mobile device |
US14/084,321 Active US9298864B2 (en) | 2005-06-10 | 2013-11-19 | System including network simulation for mobile application development |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/908,322 Granted US20210141713A1 (en) | 2005-06-10 | 2020-06-22 | Systems including network simulating for mobile application development |
Country Status (1)
Country | Link |
---|---|
US (4) | US8589140B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025168A (en) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | Leak detection method and device |
CN109815105A (en) * | 2017-11-20 | 2019-05-28 | 北京京东尚科信息技术有限公司 | Applied program testing method and device based on Btrace |
CN110196799A (en) * | 2018-02-24 | 2019-09-03 | 腾讯科技(深圳)有限公司 | A kind of client performance test method, device and terminal |
WO2021056823A1 (en) * | 2019-09-24 | 2021-04-01 | 网易(杭州)网络有限公司 | System calling method and apparatus, and electronic device |
US11327875B2 (en) | 2005-06-10 | 2022-05-10 | Wapp Tech Corp. | Systems including network simulation for mobile application development |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589140B1 (en) * | 2005-06-10 | 2013-11-19 | Wapp Tech Corp. | System and method for emulating and profiling a frame-based application playing on a mobile device |
US8291387B2 (en) * | 2005-11-22 | 2012-10-16 | International Business Machines Corporation | Method and system for testing a software application interfacing with multiple external software applications in a simulated test environment |
US20090228873A1 (en) * | 2008-03-04 | 2009-09-10 | Drukman Maxwell O | Display breakpointing based on user interface events |
CN102016867B (en) * | 2008-03-04 | 2015-02-25 | 苹果公司 | System and method of authorizing execution of software code based on at least one installed profile |
US9092389B2 (en) * | 2009-03-16 | 2015-07-28 | Avaya Inc. | Advanced availability detection |
US20120255007A1 (en) * | 2011-03-28 | 2012-10-04 | Yang Ju-Ting | Systems and methods for managing applications |
US9965133B1 (en) * | 2011-07-22 | 2018-05-08 | Ntrepid Corporation | Application for assisting in conducting covert cyber operations |
US9142192B2 (en) * | 2011-09-26 | 2015-09-22 | Intel Corporation | Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same |
US9311427B2 (en) | 2012-01-03 | 2016-04-12 | Cimpress Schweiz Gmbh | Automated generation of mobile optimized website based on an existing conventional web page description |
CN103197951B (en) * | 2012-01-04 | 2017-11-03 | 腾讯科技(深圳)有限公司 | A kind of method and device for building application runtime environment |
KR20130087749A (en) * | 2012-01-30 | 2013-08-07 | 삼성전자주식회사 | Electronic apparatus and control method thereof, and system for inspecting application |
US8990183B2 (en) * | 2012-06-06 | 2015-03-24 | Microsoft Technology Licensing, Llc | Deep application crawling |
US9600552B2 (en) | 2012-10-02 | 2017-03-21 | Nextbit Systems Inc. | Proximity based application state synchronization |
US9717985B2 (en) | 2012-10-02 | 2017-08-01 | Razer (Asia-Pacific) Pte. Ltd. | Fragment-based mobile device application streaming utilizing crowd-sourcing |
US9654556B2 (en) | 2012-10-02 | 2017-05-16 | Razer (Asia-Pacific) Pte. Ltd. | Managing applications on an electronic device |
US8892693B2 (en) | 2012-10-02 | 2014-11-18 | Nextbit Systems Inc. | Enabling fragment-based mobile device application streaming |
US9268655B2 (en) | 2012-10-02 | 2016-02-23 | Nextbit Systems Inc. | Interface for resolving synchronization conflicts of application states |
US10425471B2 (en) | 2012-10-02 | 2019-09-24 | Razer (Asia-Pacific) Pte. Ltd. | Multi-tasker |
US9112885B2 (en) | 2012-10-02 | 2015-08-18 | Nextbit Systems Inc. | Interactive multi-tasker |
US8977723B2 (en) | 2012-10-02 | 2015-03-10 | Nextbit Systems Inc. | Cloud based application fragmentation |
US9210203B2 (en) * | 2012-10-02 | 2015-12-08 | Nextbit Systems Inc. | Resource based mobile device application streaming |
US9106721B2 (en) * | 2012-10-02 | 2015-08-11 | Nextbit Systems | Application state synchronization across multiple devices |
US9776078B2 (en) | 2012-10-02 | 2017-10-03 | Razer (Asia-Pacific) Pte. Ltd. | Application state backup and restoration across multiple devices |
US9747000B2 (en) | 2012-10-02 | 2017-08-29 | Razer (Asia-Pacific) Pte. Ltd. | Launching applications on an electronic device |
US9177402B2 (en) * | 2012-12-19 | 2015-11-03 | Barco N.V. | Display wall layout optimization |
US8954611B2 (en) | 2013-03-21 | 2015-02-10 | Nextbit Systems Inc. | Mechanism for sharing states of applications and devices across different user profiles |
US10123189B2 (en) | 2013-03-21 | 2018-11-06 | Razer (Asia-Pacific) Pte. Ltd. | Electronic device system restoration by tapping mechanism |
US9952902B1 (en) * | 2013-04-10 | 2018-04-24 | Amazon Technologies, Inc. | Determining a set of application resources |
USD768162S1 (en) | 2013-09-30 | 2016-10-04 | Nextbit Systems Inc. | Display screen or portion thereof with graphical user interface |
US9940221B2 (en) * | 2013-11-27 | 2018-04-10 | Gmc Software Ag | System and method for testing data representation for different mobile devices |
US10031836B2 (en) * | 2014-06-16 | 2018-07-24 | Ca, Inc. | Systems and methods for automatically generating message prototypes for accurate and efficient opaque service emulation |
CN105187361B (en) * | 2014-06-19 | 2019-06-07 | 腾讯科技(深圳)有限公司 | A kind of method for pushing and relevant device, system of application content |
US9904339B2 (en) * | 2014-09-10 | 2018-02-27 | Intel Corporation | Providing lifetime statistical information for a processor |
US10303592B2 (en) | 2015-03-02 | 2019-05-28 | Adp, Llc | Multiple device testing system |
US9772930B2 (en) * | 2015-06-22 | 2017-09-26 | Adobe Systems Incorporated | Techniques for evaluating applications through use of an auxiliary application |
US10382311B2 (en) * | 2015-09-22 | 2019-08-13 | Facebook, Inc. | Benchmarking servers based on production data |
US11126685B2 (en) * | 2016-10-28 | 2021-09-21 | Ebay Inc. | Preview and optimization of publication for target computing device |
US10878144B2 (en) * | 2017-08-10 | 2020-12-29 | Allstate Insurance Company | Multi-platform model processing and execution management engine |
US11755949B2 (en) | 2017-08-10 | 2023-09-12 | Allstate Insurance Company | Multi-platform machine learning systems |
US10740208B2 (en) * | 2018-10-03 | 2020-08-11 | Capital One Services, Llc | Cloud infrastructure optimization |
US11513483B2 (en) * | 2019-04-09 | 2022-11-29 | Rockwell Automation Technologies, Inc. | Systems and methods for emulating a network device |
US11455084B2 (en) * | 2019-08-28 | 2022-09-27 | ForgeDX LLC | System for building simultaneous interactive experiences |
US11354113B1 (en) * | 2021-01-14 | 2022-06-07 | Microsoft Technology Licensing, Llc | Reliable deployment of upgrade events for a service based on predefined rollout policies |
US11748075B2 (en) | 2021-08-10 | 2023-09-05 | Bank Of America Corporation | Two-phase application development device |
US11403072B1 (en) * | 2021-08-10 | 2022-08-02 | Bank Of America Corporation | Mobile application development device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030139180A1 (en) * | 2002-01-24 | 2003-07-24 | Mcintosh Chris P. | Private cellular network with a public network interface and a wireless local area network extension |
US20050090239A1 (en) * | 2003-10-22 | 2005-04-28 | Chang-Hung Lee | Text message based mobile phone configuration system |
US20100075678A1 (en) * | 2008-09-23 | 2010-03-25 | Arda Akman | Methods, systems, and computer readable media for stress testing mobile network equipment using a common public radio interface (cpri) |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69632575T2 (en) | 1995-11-20 | 2005-06-09 | Koninklijke Philips Electronics N.V. | SYSTEM, METHOD AND STATION FOR LANGUAGE AND NON-LANGUAGE CONNECTIONS |
TW359800B (en) | 1996-08-19 | 1999-06-01 | Ibm | Device independent and transfer optimised interactive client-server dialog system and method for performing interactive applications therein |
US6393437B1 (en) | 1998-01-27 | 2002-05-21 | Microsoft Corporation | Web developer isolation techniques |
IL124770A0 (en) | 1998-06-04 | 1999-01-26 | Shunra Software Ltd | Apparatus and method for testing network applications |
US6378066B1 (en) * | 1999-02-04 | 2002-04-23 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications |
KR100629035B1 (en) | 1999-04-21 | 2006-09-26 | 시게이트 테크놀로지 엘엘씨 | Servo processor code evaluation using a virtual disc drive |
US6467052B1 (en) | 1999-06-03 | 2002-10-15 | Microsoft Corporation | Method and apparatus for analyzing performance of data processing system |
US6477483B1 (en) | 2000-01-17 | 2002-11-05 | Mercury Interactive Corporation | Service for load testing a transactional server over the internet |
US6993575B2 (en) | 2000-02-22 | 2006-01-31 | Oracle International Corporation | Using one device to configure and emulate web site content to be displayed on another device |
US20030046396A1 (en) * | 2000-03-03 | 2003-03-06 | Richter Roger K. | Systems and methods for managing resource utilization in information management environments |
US7047176B2 (en) | 2000-05-05 | 2006-05-16 | Fujitsu Limited | Method and system for hardware simulation |
US7613599B2 (en) | 2000-06-02 | 2009-11-03 | Synopsys, Inc. | Method and system for virtual prototyping |
US20020015387A1 (en) | 2000-08-02 | 2002-02-07 | Henry Houh | Voice traffic packet capture and analysis tool for a data network |
US20020077823A1 (en) | 2000-10-13 | 2002-06-20 | Andrew Fox | Software development systems and methods |
US7546298B2 (en) | 2001-01-09 | 2009-06-09 | Nextair Corporation | Software, devices and methods facilitating execution of server-side applications at mobile devices |
US20060036941A1 (en) | 2001-01-09 | 2006-02-16 | Tim Neil | System and method for developing an application for extending access to local software of a wireless device |
US20030236657A1 (en) | 2001-03-12 | 2003-12-25 | Martin Ryzl | Method of developing wireless device applications using an integrated emulator and an IDE |
US7155381B2 (en) | 2001-03-12 | 2006-12-26 | Sun Microsystems, Inc. | Module for developing wireless device applications using an integrated emulator |
US20020188713A1 (en) | 2001-03-28 | 2002-12-12 | Jack Bloch | Distributed architecture for a telecommunications system |
US20030045298A1 (en) | 2001-03-30 | 2003-03-06 | Linton Samuel W. | Method and apparatus for predicting the behavior of applications by simulating data flow through a data communications network |
US6802058B2 (en) | 2001-05-10 | 2004-10-05 | International Business Machines Corporation | Method and apparatus for synchronized previewing user-interface appearance on multiple platforms |
ITTO20010924A1 (en) | 2001-09-28 | 2003-03-28 | Telecom Italia Lab Spa | SYSTEM TO EMULATE MOBILE NETWORKS AND RELATED DEVICE |
US7089172B2 (en) * | 2001-12-28 | 2006-08-08 | Testout Corporation | System and method for simulating a computer environment and evaluating a user's performance within a simulation |
US7339891B2 (en) | 2002-01-09 | 2008-03-04 | Mverify Corporation | Method and system for evaluating wireless applications |
US6959285B2 (en) | 2002-02-28 | 2005-10-25 | Palmsource, Inc. | Method and a system for computer software distribution using networked software dispensing vending machines |
US7346896B2 (en) | 2002-04-22 | 2008-03-18 | Sun Microsystems, Inc. | Slowing network connection for application optimization |
US20040039975A1 (en) | 2002-04-22 | 2004-02-26 | Kirill Kounik | Slowing graphics system for application optimization |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US20040059562A1 (en) | 2002-09-20 | 2004-03-25 | Bergman Eric D. | Systems and methods for calibrating emulated device performance |
JP4186042B2 (en) | 2002-11-14 | 2008-11-26 | 日本電気株式会社 | Wireless communication information collection method, information collection system, and mobile radio terminal |
US20050182611A1 (en) | 2002-12-18 | 2005-08-18 | Fujitsu Limited | Apparatus and method for simulating performance, and computer product |
US7620535B2 (en) | 2002-12-19 | 2009-11-17 | Computer Associates Think, Inc. | Method and apparatus for the simulation of computer networks |
US7644312B2 (en) | 2002-12-31 | 2010-01-05 | International Business Machines Corporation | Virtual machine monitoring for application operation diagnostics |
US20080177994A1 (en) * | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
US8799883B2 (en) | 2003-01-31 | 2014-08-05 | Hewlett-Packard Development Company, L. P. | System and method of measuring application resource usage |
GB2398457B (en) | 2003-02-12 | 2006-05-10 | Ubinetics Ltd | Developing a user activity profile |
GB2398456B (en) | 2003-02-12 | 2006-06-21 | Ubinetics Ltd | Measuring a user perception score |
US8122106B2 (en) | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US7921302B2 (en) * | 2003-03-10 | 2011-04-05 | Igt | Universal game download methods and system for legacy gaming machines |
US7337330B2 (en) * | 2003-03-10 | 2008-02-26 | Cyberview Technology, Inc. | Universal game download system for legacy gaming machines |
CN1826740A (en) | 2003-06-30 | 2006-08-30 | 诺基亚公司 | Apparatus, and associated method, for testing a mobile terminal in test conditions that emulate an operating environment |
US7096012B2 (en) | 2003-10-23 | 2006-08-22 | Microsoft Corporation | System and method for emulating a telephony driver |
TW200532560A (en) | 2003-11-13 | 2005-10-01 | Qualcomm Inc | System and method for dynamically simulating devices at a computing device |
US7762470B2 (en) * | 2003-11-17 | 2010-07-27 | Dpd Patent Trust Ltd. | RFID token with multiple interface controller |
AU2003292542A1 (en) | 2003-11-27 | 2005-06-17 | Telecom Italia S.P.A | Method for simulating a communication networks that cosiders quality of service |
US7251456B2 (en) | 2004-07-07 | 2007-07-31 | Agilent Technologies, Inc. | Wireless module simulator |
US7757207B2 (en) | 2004-08-20 | 2010-07-13 | Microsoft Corporation | Form skin and design time WYSIWYG for .net compact framework |
US20060090136A1 (en) | 2004-10-01 | 2006-04-27 | Microsoft Corporation | Methods and apparatus for implementing a virtualized computer system |
US7499848B2 (en) | 2004-12-20 | 2009-03-03 | Texas Instruments Incorporated | Scripting support for an emulator |
US20060140125A1 (en) | 2004-12-23 | 2006-06-29 | Telefonaktiebolaget Lm Ericsson | Hybrid test bed |
CA2598238A1 (en) | 2005-02-22 | 2006-08-31 | Nextair Corporation | Simulating an application for subsequent deployment to a device |
US8019333B2 (en) | 2005-03-14 | 2011-09-13 | Qualcomm Incorporated | Apparatus and methods for product acceptance testing on a wireless device |
US7747249B2 (en) | 2005-03-29 | 2010-06-29 | Microsoft Corporation | GSM/UMTS emulator |
US20060239198A1 (en) | 2005-04-21 | 2006-10-26 | Azimuth Systems, Inc. | Simulating time-varying conditions in a wireless network |
US7313772B2 (en) | 2005-05-24 | 2007-12-25 | International Business Machines Corporation | Systems, methods, and media for block-based assertion generation, qualification and analysis |
US20060282247A1 (en) | 2005-05-25 | 2006-12-14 | Brennan James T | Combined hardware and network simulator for testing embedded wireless communication device software and methods |
US20070005281A1 (en) | 2005-05-31 | 2007-01-04 | David Haggerty | Systems and Methods Providing Reusable Test Logic |
US20060277231A1 (en) | 2005-06-06 | 2006-12-07 | Javaground Usa, Inc. | Integrated software development and porting system for wireless devices |
US8589140B1 (en) * | 2005-06-10 | 2013-11-19 | Wapp Tech Corp. | System and method for emulating and profiling a frame-based application playing on a mobile device |
US7813910B1 (en) * | 2005-06-10 | 2010-10-12 | Thinkvillage-Kiwi, Llc | System and method for developing an application playing on a mobile device emulated on a personal computer |
US20070005324A1 (en) | 2005-06-30 | 2007-01-04 | Jian Gong | Method and apparatus for simulating circuits using s-parameters |
US20070002753A1 (en) | 2005-06-30 | 2007-01-04 | Bailey Michael D | System and method for testing a packet data communications device |
JP4038220B2 (en) * | 2005-09-27 | 2008-01-23 | ソフトバンクモバイル株式会社 | Program development support device |
US7783463B2 (en) | 2005-09-27 | 2010-08-24 | Morgan Stanley | Computer networks for providing a test environment |
US20070127426A1 (en) | 2005-10-26 | 2007-06-07 | Watters Andrew P | Development environment |
US7613453B2 (en) | 2005-11-04 | 2009-11-03 | Research In Motion Limited | System and method for provisioning a third party mobile device emulator |
US8108201B2 (en) * | 2005-11-17 | 2012-01-31 | International Business Machines Corporation | Method for emulating a native device on a host computer system |
WO2007059786A1 (en) | 2005-11-24 | 2007-05-31 | Telecom Italia S.P.A. | Method and system for simulating a communication network, related network and computer program product therefor |
US7508868B2 (en) | 2005-12-02 | 2009-03-24 | Kyocera Wireless Corp. | Systems and methods for testing the performance of and simulating a wireless communication device |
US7673042B2 (en) | 2005-12-06 | 2010-03-02 | Shunra Software, Ltd. | System and method for comparing service levels to a service level objective |
US7647399B2 (en) | 2005-12-06 | 2010-01-12 | Shunra Software Ltd. | System and method for comparing a service level at a remote network location to a service level objective |
US7986961B2 (en) | 2005-12-20 | 2011-07-26 | Northrop Grumman Systems Corporation | Mobile computer communication interface |
EP1977334A4 (en) | 2006-01-25 | 2011-01-12 | Greystripe Inc | System and methods for managing content in pre-existing mobile applications |
US8738761B2 (en) | 2006-04-18 | 2014-05-27 | Cisco Technology, Inc. | Method and system to capture and playback network activity |
US7779029B2 (en) | 2006-06-09 | 2010-08-17 | Research In Motion Limited | Method, software and device for effecting independently refreshable, markup language-based database queries and user interface screens |
US8086904B2 (en) | 2006-07-28 | 2011-12-27 | Apple Inc. | Event-based setting of process tracing scope |
US8255876B2 (en) | 2006-07-28 | 2012-08-28 | Apple Inc. | Execution difference identification tool |
US8116179B2 (en) | 2006-07-28 | 2012-02-14 | Apple Inc. | Simultaneous viewing of multiple tool execution results |
US8014995B2 (en) * | 2007-02-09 | 2011-09-06 | Mobile Complete, Inc. | Virtual device interactive recording |
US7877230B2 (en) | 2007-03-15 | 2011-01-25 | Shunra Software Ltd. | System and method for attributing a portion of a response time to an element of a virtual network |
US8825758B2 (en) | 2007-12-14 | 2014-09-02 | Microsoft Corporation | Collaborative authoring modes |
US8634796B2 (en) * | 2008-03-14 | 2014-01-21 | William J. Johnson | System and method for location based exchanges of data facilitating distributed location applications |
US8150675B1 (en) * | 2008-05-30 | 2012-04-03 | Adobe Systems Incorporated | Network simulation for download progress and latency |
US8392606B2 (en) * | 2008-09-23 | 2013-03-05 | Synapse Wireless, Inc. | Wireless networks and methods using multiple valid network identifiers |
US8359016B2 (en) | 2010-11-19 | 2013-01-22 | Mobile Iron, Inc. | Management of mobile applications |
US8694954B2 (en) * | 2010-11-29 | 2014-04-08 | Norman Ortiz | System and methods for mobile application development using mobile devices |
US9158518B2 (en) | 2013-03-11 | 2015-10-13 | Blackberry Limited | Collaborative application development environment using a connected device |
-
2010
- 2010-02-15 US US12/705,913 patent/US8589140B1/en not_active Expired - Fee Related
-
2013
- 2013-11-19 US US14/084,321 patent/US9298864B2/en active Active
-
2016
- 2016-03-28 US US15/083,186 patent/US10691579B2/en active Active
-
2020
- 2020-06-22 US US16/908,322 patent/US20210141713A1/en active Granted
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030139180A1 (en) * | 2002-01-24 | 2003-07-24 | Mcintosh Chris P. | Private cellular network with a public network interface and a wireless local area network extension |
US20050090239A1 (en) * | 2003-10-22 | 2005-04-28 | Chang-Hung Lee | Text message based mobile phone configuration system |
US20100075678A1 (en) * | 2008-09-23 | 2010-03-25 | Arda Akman | Methods, systems, and computer readable media for stress testing mobile network equipment using a common public radio interface (cpri) |
US8229416B2 (en) * | 2008-09-23 | 2012-07-24 | Ixia | Methods, systems, and computer readable media for stress testing mobile network equipment using a common public radio interface (CPRI) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327875B2 (en) | 2005-06-10 | 2022-05-10 | Wapp Tech Corp. | Systems including network simulation for mobile application development |
CN107025168A (en) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | Leak detection method and device |
CN109815105A (en) * | 2017-11-20 | 2019-05-28 | 北京京东尚科信息技术有限公司 | Applied program testing method and device based on Btrace |
CN110196799A (en) * | 2018-02-24 | 2019-09-03 | 腾讯科技(深圳)有限公司 | A kind of client performance test method, device and terminal |
WO2021056823A1 (en) * | 2019-09-24 | 2021-04-01 | 网易(杭州)网络有限公司 | System calling method and apparatus, and electronic device |
Also Published As
Publication number | Publication date |
---|---|
US20140081616A1 (en) | 2014-03-20 |
US8589140B1 (en) | 2013-11-19 |
US10691579B2 (en) | 2020-06-23 |
US9298864B2 (en) | 2016-03-29 |
US20210141713A1 (en) | 2021-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210141713A1 (en) | Systems including network simulating for mobile application development | |
US11327875B2 (en) | Systems including network simulation for mobile application development | |
US20120311387A1 (en) | Method and apparatus for load testing online server systems | |
US10275345B2 (en) | Application experiment system | |
CN106933729A (en) | A kind of method of testing and system based on cloud platform | |
US20140289418A1 (en) | Methods and systems for planning execution of an application in a cloud computing system | |
JP6865252B2 (en) | Optimization methods, systems and programs for applications | |
WO2020086969A1 (en) | Methods and systems for performance testing | |
US20080244062A1 (en) | Scenario based performance testing | |
US20100211934A1 (en) | Apparatus and method for service-enabling computer programs | |
US20130298110A1 (en) | Software Visualization Using Code Coverage Information | |
Ravindranath et al. | Procrastinator: pacing mobile apps' usage of the network | |
CN109254910A (en) | A kind of test method of application program, device, electronic equipment and storage medium | |
KR20150103127A (en) | Reactive ad formats | |
Sillars | High Performance Android Apps: Improve ratings with speed, optimizations, and testing | |
WO2019094257A1 (en) | Web page performance improvement system | |
US20140278766A1 (en) | Methods and apparatus for providing application provisioning | |
SG189676A1 (en) | System for inserting services in a software application | |
Noori et al. | UI Performance Comparison of Jetpack Compose and XML in Native Android Applications | |
Wang et al. | A software quality framework for mobile application testing | |
Piazza | Startup performance analysis and optimization of an Android banking application | |
CN115588458A (en) | Storage device testing method, system, device and readable storage medium | |
Louis et al. | Mastering mobile test automation | |
Erkkilä | Web and native technologies in mobile application development | |
Fajar et al. | ProjectStir: A driving car application to measure driving performance with game-centric approaches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: WAPP TECH CORP., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:POULIN, DONAVAN PAUL;REEL/FRAME:052470/0617 Effective date: 20110305 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT RECEIVED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |