Methods and systems for reducing application launch-time in an electronic device
By pre-compiling shader and pipeline data and embedding it with the OS binary during booting, the method addresses launch-time delays in electronic devices, providing smooth graphic rendering and improved user experience.
Patent Information
- Application Number
- PCT/KR2025/000331
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-16
- Filing Date
- 2025-01-07
- Publication Date
- 2025-07-24
AI Technical Summary
Existing graphic rendering frameworks in electronic devices, such as smartphones and tablets, face significant delays and jitters during application launch due to dynamic shader generation and Just-in-Time compilation, leading to suboptimal user experience, especially for first-time users.
Creating scripts for applications, generating shader and pipeline data, bundling this data with the operating system binary, and embedding it during booting to initialize applications, thereby eliminating the need for dynamic shader generation and JIT compilation.
Substantially reduces application launch time by pre-compiling shader and pipeline data, ensuring smooth and efficient graphic rendering without delays or jitters.
Smart Images

Figure KR2025000331_24072025_PF_FP_ABST
Abstract
Description
METHODS AND SYSTEMS FOR REDUCING APPLICATION LAUNCH-TIME IN AN ELECTRONIC DEVICE
[0001] The present disclosure relates to graphic rendering for applications in electronic devices, and in particular, relates to a method and a system for reducing application launch-time of applications in an electronic device.
[0002] Graphics rendering is a crucial feature for electronic devices, such as smartphones or tablets, in order to generate smooth animations, high-quality visuals, and immersive 3D environments, essential for various applications deployed in such devices. Generally, the electronic devices are deployed with various graphic rendering frameworks, such as SKIA with Vulkan API, which is implemented on a Graphic Processing Unit (GPU) of such devices. The graphic rendering frameworks are deployed to generate and process a graphic pipeline for performing graphic rendering corresponding to the applications in the electronic device. Currently, the graphic rendering frameworks employs dynamic shader generation and Just-in-Time (JIT) compilation for a first-time launch of the applications and subsequently stores the compiled shader and pipeline cache in a persistence cache for a second-time launch of the applications. This leads to a problem of facing initial jank as application launch time is severely impacted. For example, in a mobile application that utilizes Android 2D Rendering with SKIA and Vulkan API, the initial launch of the application may experience delays and jitters due to the dynamic shader generation and JIT compilation. This can lead to a suboptimal user experience, especially for first-time users who may encounter performance issues during the initial launch of the applications.
[0003] Therefore, it is desirable to provide systems and methods that can eliminate one or more of the above-mentioned problems associated with launch-time of the applications in the electronic device.
[0004] This summary is provided to introduce a selection of concepts, in a simplified format, that are further described in the detailed description of the invention. This summary is neither intended to identify key or essential inventive concepts of the invention and nor is it intended for determining the scope of the invention.
[0005] In an embodiment, a method for reducing application launch-time in an electronic device is disclosed. The method comprises creating scripts of at least one application deployed in the electronic device. Further, the method comprises generating shader data and pipeline data by executing the created scripts of the at least one application. The method comprises bundling the generated shader data and the generated pipeline data with an operating system binary of the electronic device. The method comprises embedding the bundled shader data and the bundled pipeline data into the at least one application at a time of booting the electronic device. Further, the method comprises initializing the at least one application using the embedded shader data and the embedded pipeline data.
[0006] In another embodiment, a system for reducing application launch-time in an electronic device is disclosed. The system comprises at least one processor configured to create scripts of at least one application deployed in the electronic device. Further, the at least one processor is configured to generate shader data and pipeline data by executing the created scripts of the at least one application. The at least one processor is configured to bundle the generated shader data and the generated pipeline data with an operating system binary of the electronic device. Further, the at least one processor is configured to embed the bundled shader data and the bundled pipeline data into the at least one application at a time of booting the electronic device. Furthermore, the at least one processor is configured to initialize the at least one application using the embedded shader data and the embedded pipeline data.
[0007] In an embodiment, a method for reducing launch-time of applications in an electronic device is disclosed. The method comprises extracting, at a time of booting the electronic device, shader data and pipeline data associated with each application from among a plurality of applications installed in the electronic device. Further, the method comprises bundling the extracted shader data and the extracted pipeline data with an operating system binary of the electronic device. The method comprises embedding the bundled shader data and the bundled pipeline data of each application from the operating system into corresponding application resources. Further, the method comprises fetching the embedded shader data and the embedded pipeline data from the corresponding application resources at a time of initializing each application in the electronic device.
[0008] In another embodiment, a system for reducing launch-time of applications in an electronic device is disclosed. The system comprises at least one processor configured to extract, at a time of booting the electronic device, shader data and pipeline data associated with each application from among a plurality of applications installed in the electronic device. The at least one processor is configured to bundle the extracted shader data and the extracted pipeline data with an operating system binary of the electronic device. Further, the at least one processor is configured to embed the bundled shader data and the bundled pipeline data of each application from the operating system into corresponding application resources. Furthermore, the at least one processor is configured to fetch the embedded shader data and the embedded pipeline data from the corresponding application resources at a time of initializing each application in the electronic device.
[0009] To further clarify the advantages and features of the methods, systems, and apparatuses / devices, a more particular description of the methods, systems, and apparatuses / devices will be rendered by reference to specific embodiments thereof, which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the disclosure and are therefore not to be considered limiting of its scope. The disclosure will be described and explained with additional specificity and detail with the accompanying drawings.
[0010] These and other features, aspects, and advantages of the present invention will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
[0011] Figure 1 illustrates a block diagram depicting a system having a workstation in communication with an electronic device, according to an embodiment of the present disclosure;
[0012] Figure 2 illustrates a block diagram depicting generation of shader data and pipeline data, according to an embodiment of the present disclosure;
[0013] Figure 3 illustrates a block diagram depicting deployment of the generated shader data and the generated pipeline data in the electronic device, according to an embodiment of the present disclosure;
[0014] Figure 4 illustrates a flowchart depicting a method for reducing application launch-time in the electronic device, according to an embodiment of the present disclosure;
[0015] Figure 5a illustrates a block diagram depicting a system for reducing launch-time of applications in an electronic device, according to another embodiment of the present disclosure;
[0016] Figure 5b illustrates a block diagram depicting operation of the system for reducing launch-time of the applications in the electronic device, according to an embodiment of the present disclosure; and
[0017] Figure 6 illustrates a flowchart depicting a method for reducing launch-time of the applications in the electronic device, according to another embodiment of the present disclosure.
[0018] Further, skilled artisans will appreciate that elements in the drawings are illustrated for simplicity and may not have necessarily been drawn to scale. For example, the flow charts illustrate the method in terms of the most prominent steps involved to help to improve understanding of aspects of the disclosure. Furthermore, in terms of the construction of the device, one or more components of the device may have been represented in the drawings by conventional symbols, and the drawings may show only those specific details that are pertinent to understanding the embodiments of the disclosure so as not to obscure the drawings with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
[0019] For the purpose of promoting an understanding of the principles of the invention, reference will now be made to the embodiment illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended, such alterations and further modifications in the illustrated system, and such further applications of the principles of the invention as illustrated therein being contemplated as would normally occur to one skilled in the art to which the invention relates. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skilled in the art to which this invention belongs. The system, methods, and examples provided herein are illustrative only and not intended to be limiting.
[0020] Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
[0021] Figure 1 illustrates a block diagram depicting a system 100 having a workstation 102 in communication with an electronic device 104, according to an embodiment of the present disclosure. In an embodiment, the electronic device 104 may be embodied as a user device including, but not limited to a smartphone and a tablet, without departing from the scope of the present disclosure. Further, the workstation 102 may be embodied as a factory device capable of performing various operations, such as installing / deploying Operating System(s) (OS), on the electronic device 104, without departing from the scope of the present disclosure.
[0022] In an embodiment, the system 100 may be provided for reducing launch-time in the electronic device 104. In particular, the system 100 may be provided for reducing launch-time of applications 105 installed in the electronic device 104. The electronic device 104 may be deployed with various graphic rendering frameworks which is implemented on a Graphic Processing Unit (GPU) (not shown) of the electronic device 105. Such graphic rendering frameworks may be deployed to generate and process a graphic pipeline for performing graphic rendering corresponding to the applications 105 to be launched in the electronic device 105.
[0023] The graphic pipeline may be referred to a series of protocols for performing graphic rendering in order to display, on the electronic device 104, two-dimensional or three-dimensional images and / or scenes associated with the applications 105. The graphic pipeline may employ shader data and pipeline data which is further compiled with the OS of the electronic device 104. The shader data may include, but is not limited to, shader programs (e.g., vertex, fragment, compute shaders) devised in programming languages like GLSL, HLSL, or SPIR-V. Further, the pipeline data may involve GPU pipeline states, such as descriptor sets, pipeline configurations, or precompiled shader binaries. The system 100 of the present disclosure may be configured to provide, to the electronic device 104, the shader data and pipeline data bundled with the OS. This enables the graphic rendering frameworks, in the electronic device 104, to execute the shader data and pipeline data bundled with the OS when the applications 105 are launched on the electronic device 104. Therefore, owing to implementation of the system 100, the launch-time of the applications 105 in the electronic device 104 may be substantially reduced.
[0024] Operational and functional aspects of the system 100 are explained in detail in the subsequent paragraphs of the present disclosure.
[0025] In the illustrated embodiment, referring to Figure 1, the workstation 102 may communicate with the electronic device 104 via a network 101. The network 101 may be a wired network or a wireless network. The network 101 may include, but is not limited to, a mobile network, a broadband network, a Wide Area Network (WAN), a Local Area Network (LAN), and a Personal Area Network, without departing from the scope of the present disclosure.
[0026] In the illustrated embodiment, the workstation may include a processor 106-1, memory 108-1, module(s) 110-1, and data 112-1. Further, the electronic device 104 may include a processor 106-2, memory 108-2, module(s) 110-2, the applications 105, and data 112-2. The applications 105 may be referred to programs or protocols which are either pre-installed or installed by user(s) in the electronic device 104. In an example, the applications 105 may include, but are not limited to, messaging applications, calendar applications, camera applications, map applications, gaming applications, E-mail applications, travel booking applications, weather applications, news applications, and social networking applications. Further, the modules 110-1, 110-2 and the memory 108-1, 108-2 are coupled to the respective processors 106-1, 106-2. Hereinafter, the processor 106-1 and the processor 106-2 may collectively be referred to as the processor 106. Further, the memory 108-1 and the memory 108-2 may collectively be referred to as the memory 108. Furthermore, the data 112-1 and the data 112-2 may collectively be referred to as the data 112. The module 110-1 and the module 110-2 may collectively be referred to as the module 110.
[0027] The processor 106 can be a single processing unit or a number of units, all of which could include multiple computing units. The processor 106 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and / or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 106 is configured to fetch and execute computer-readable instructions and data stored in the memory 108.
[0028] The memory 108 may include any non-transitory computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and / or non-volatile memory, such as read-only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
[0029] The module(s) 110, amongst other things, include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement data types. The module(s) 110 may also be implemented as, signal processor(s), state machine(s), logic circuitries, and / or any other device or component that manipulate signals based on operational instructions.
[0030] Further, the module(s) 110 may be implemented in hardware, instructions executed by at least one processing unit, for e.g., the processor 106, or by a combination thereof. The processing unit may comprise a computer, a processor, a state machine, a logic array and / or any other suitable devices capable of processing instructions. The processing unit may be a general-purpose processor which executes instructions to cause the general-purpose processor to perform operations or, the processing unit may be dedicated to perform the required functions. In some example embodiments, the module(s) 110 may be machine-readable instructions (software, such as web-application, mobile application, program, etc.) which, when executed by a processor / processing unit, perform any of the described functionalities.
[0031] In an embodiment of the present disclosure, the module(s) 110 may be implemented as part of the processor 106. In another embodiment of the present disclosure, the module(s) 110 may be external to the processor 106. In yet another embodiment of the present disclosure, the module(s) 110 may be part of the memory 108. In another embodiment of the present disclosure, the module(s) 110 may be part of hardware, separate from the processor 106.
[0032] In an implementation, the module(s) 110-1 may include a script creation module 114, a data generation module 116, and a bundling module 118. Further, the module(s) 110-2 may include an embedding module 120 and an initializing module 122. The script creation module 114, the data generation module 116, and the bundling module 118 are in communication with each other. Similarly, the embedding module 120 and the initializing module 122 are in communication with each other. Further, one or more module(s) 110-1 are in communication with one or more module(s) 110-2.
[0033] The data 112 serves, amongst other things, as a repository for storing data processed, received, and generated by one or more of the modules 110.
[0034] Figure 2 illustrates a block diagram depicting generation of the shader data and the pipeline data, according to an embodiment of the present disclosure. In an embodiment, the processor 106-1 may be configured to create scripts 202 of at least one application, such as at least one of the applications 105, deployed in the electronic device 104. In the illustrated embodiment, the script creation module 114 may create the scripts 202 of each application 105 deployed in the electronic device 104. The scripts 202 may be referred to a set or a sequence of protocols / commands to perform specific task corresponding to each application 105 deployed in the electronic device 104. In an exemplary implementation, the scripts 202 may be created to cover a complete tree of application User Interface (UI). The scripts 202 may browse through all screens UI(s) of the applications and interact with all User Experience (UX) to fill dummy data for generating all application screens UI(s).
[0035] Further, the processor 106-1 may be configured to generate the shader data and the pipeline data 204 by executing the created scripts 202 of the at least one application 105. In the illustrated embodiment, the data generation module 116 may be configured to generate the shader data and the pipeline data 204 by executing the created scripts 202 of the at least one application 105 deployed in the electronic device 104. The data generation module 116 may be configured to emulate, using the created scripts 202, user interactions with each UI associated with the at least one application 105 deployed in the electronic device 104. The user actions / interaction may be referred to interactions, such as clicking buttons, entering text, interacting with menus, and performing other tasks, corresponding to the at least one application 105. In an exemplary embodiment, the data generation module 116 may be deployed with an automated UI tool to navigate each UI, using the created scripts 202, of the at least one application 105 deployed in the electronic device 104.
[0036] The data generation module 116 may be configured to generate the shader data and the pipeline data 204 associated with each UI of the at least one application 105 based on the emulating of the user interactions. Further, the data generation module 116 may be configured to store the generated shader data and the generated pipeline data 204 in a data repository 206. In one or more exemplary embodiments, the data repository 206 may be embodied as a standalone repository or the memory 108-1 of the workstation 102, without departing from the scope of the present disclosure.
[0037] Figure 3 illustrates a block diagram depicting deployment of the generated shader data and the generated pipeline data 204 in the electronic device 104, according to an embodiment of the present disclosure. In an embodiment, the processor 106-1 may be configured to extract, from the data repository 206, the generated shader data and the generated pipeline data 204 corresponding to the at least one application deployed in the electronic device 104. Further, the processor 106-1 may be configured to bundle the generated shader data and the generated pipeline data 204, as extracted from the data repository 206, with an OS binary of the electronic device 104.
[0038] In the illustrated embodiment, the bundling module 118 may be configured to bundle the generated shader data and the generated pipeline data 204 with the OS binary of the electronic device. The bundled data, i.e., the shader data and the generated pipeline data with the OS binary, may be referred to as the OS binary with cache 406 in the Figure 3 of the present disclosure. Further, in an embodiment, the OS binary with cache 406 may interchangeably be referred to as the bundled shader data and the bundled pipeline data 406. In an exemplary embodiment, the bundling of the generated shader data and the generated pipeline data 204 may involve converting external files, such as configuration files, models, or datasets, into a format that can be included within a source code of the OS. Upon completion of bundling, the data may become an integral part of the executable file corresponding to the OS. In one or more embodiment, the bundling module may be deployed with various tools / protocols and methods for bundling the OS binaries and, depending on a programming language used for the OS.
[0039] Further, the processor 106-1 may be configured to deploy the OS along with the bundled shader data and the bundled pipeline data 406 in the electronic device 104. In an embodiment, the processor 106-2 of the electronic device 104 may be configured to embed the bundled shader data and the bundled pipeline data 406 into the at least one application 105 at a time of booting the electronic device 104. In the illustrated embodiment, the embedding module 120 may be configured to embed the bundled shader data and the bundled pipeline data 406 into application resources of the at least one application 105. In an exemplary embodiment, the application resources may be referred to various application files, assets, and data required for optimal functioning of the particular application.
[0040] In an embodiment, the processor 106-2 may be configured to initialize the at least one application 105 using the embedded shader data and the embedded pipeline data. In the illustrated embodiment, the initializing module 122 may be configured to initialize each application using the embedded shader data and the embedded pipeline data. The initializing module 122 may be configured to extract the embedded shader data and the embedded pipeline data from the application resources associated with the at least one application 105. Further, the initializing module 122 may be configured to initialize the at least one application 105 by rendering UI elements associated with UI of the at least one application 105 based on the extracted shader data and the extracted pipeline on the electronic device 104.
[0041] Figure 4 illustrates a flowchart depicting a method 400 for reducing application launch-time in the electronic device 104, according to an embodiment of the present disclosure. The method 400 may be implemented in the system 100 using components thereof, as described above. In an embodiment, the method 400 may be executed by the processors 106-1, 106-2 of the system 100, as described above. Further, for the sake of brevity, details of the present disclosure that are explained in detail in the description of Figures 1-3 are not explained in detail in the description of Figure 4.
[0042] At block 402, the method 400 may include creating the scripts 202 of the at least one application 105 deployed in the electronic device 104.
[0043] At block 404, the method 400 may include generating the shader data and the pipeline data 204 by executing the created scripts 202 of the at least one application 105. In an embodiment, the method 400 may include emulating, using the created scripts 202, the user interactions with each User Interface (UI) associated with each application deployed in the electronic device 104. Further, the method 400 may include generating the shader data and the pipeline data 204 associated with each UI of the at least one application 105 based on the emulating of the user interactions. Furthermore, the method 400 may include storing the generated shader data and the generated pipeline data 204 in the data repository 206. The method may further include extracting, from the data repository 206, the generated shader data and the generated pipeline data 204 corresponding to the at least one application 105 deployed in the electronic device 104 for further processing.
[0044] At block 406, the method 400 may include bundling the generated shader data and the generated pipeline data 204 with the OS binary of the electronic device 104. The generated shader data and the generated pipeline data 204 may be extracted from the data repository 206 for bundling with the OS binary. Upon bundling, the method 400 may include deploying the OS along with the bundled shader data and the bundled pipeline data 406 in the electronic device 104.
[0045] At block 408, the method 400 may include embedding the bundled shader data and the bundled pipeline data 406 into the at least one application 105 at the time of booting the electronic device 104. In an embodiment, the method 400 may include embedding the bundled shader data and the bundled pipeline data 406 into the application resources associated with the at least one application 105.
[0046] At block 410, the method 400 may include initializing the at least one application 105 using the embedded shader data and the embedded pipeline data. In an embodiment, the method 400 may include extracting the embedded shader data and the embedded pipeline data from the application resources associated with the at least one application 105. Further, the method 400 may include initializing the at least one application 105 by rendering the UI elements associated with the UI of the at least one application 105 based on the extracted shader data and the extracted pipeline on the electronic device 104.
[0047] Figure 5a illustrates a block diagram depicting a system 500 for reducing launch-time of the applications 105 in an electronic device 104', according to another embodiment of the present disclosure. Figure 5b illustrates a block diagram depicting operation of the system 500 for reducing launch-time of the applications 105 in the electronic device 104', according to an embodiment of the present disclosure. Referring to Figures 5a and 5b, the system 500 may include an electronic device 104' similar to the electronic device 104 as explained in the previous paragraphs of the present disclosure.
[0048] The electronic device 104' may include the processor 106-2, the memory 108-2, module(s) 510, the applications 105, and the data 112-2. The module(s) 510, amongst other things, include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement data types. The module(s) 510 may also be implemented as, signal processor(s), state machine(s), logic circuitries, and / or any other device or component that manipulate signals based on operational instructions.
[0049] Further, the module(s) 510 may be implemented in hardware, instructions executed by at least one processing unit, for e.g., the processor 106-2, or by a combination thereof. The processing unit may comprise a computer, a processor, a state machine, a logic array and / or any other suitable devices capable of processing instructions. The processing unit may be a general-purpose processor which executes instructions to cause the general-purpose processor to perform operations or, the processing unit may be dedicated to perform the required functions. In some example embodiments, the module(s) 110 may be machine-readable instructions (software, such as web-application, mobile application, program, etc.) which, when executed by a processor / processing unit, perform any of the described functionalities.
[0050] In an embodiment of the present disclosure, the module(s) 510 may be implemented as part of the processor 106-2. In another embodiment of the present disclosure, the module(s) 510 may be external to the processor 106-2. In yet another embodiment of the present disclosure, the module(s) 510 may be part of the memory 108-2. In another embodiment of the present disclosure, the module(s) 510 may be part of hardware, separate from the processor 106-2.
[0051] In the illustrated embodiment0, the module(s) 510 may include an extraction module 512, a bundling module 514, an embedding module 516, and an initializing module 518. The extraction module 512, the bundling module 514, the embedding module 516, and the initializing module 518 are in communication with each other.
[0052] In an embodiment, the processor 106-2 may be configured to extract, at the time of booting the electronic device 104', shader data and pipeline data 502 associated with each application from among a plurality of applications, i.e., the applications 105, installed in the electronic device 104'. Referring to Figures 5a and 5b, in the illustrated embodiment, the extracting module 512 may be configured to extract the shader data and the pipeline data associated with each application 105 installed / deployed in the electronic device 104'.
[0053] The extracting module 512 may be configured to initialize a virtual-display rendering service 522 at the time of booting the electronic device 104'. Further, the extracting module 512 may be configured to render, in the electronic device 104', each application 105 in the virtual-display rendering service 522 when the electronic device 104' is in an idle state. The idle state herein may be referred to an operational state of the electronic device 104' when the user is not operating such device 104', without departing from the scope of the present disclosure.
[0054] The extracting module 512 may be configured to generate the shader data and the pipeline data 520 associated with each application 105 based on the rendering of each application 105. Further, the extracting module 512 may be configured to store the generated shader data and the generated pipeline data 520 in a data repository 524 of the electronic device 104'. In the illustrated embodiment, the data repository 524 may be embodied as a standalone repository or the memory 108-2 of the electronic device 104'. Further, the extracting module 512 may be configured to extract the generated shader data and the generated pipeline data 520 from the data repository 524 associated with each application 105 at the time of booting the electronic device 104'.
[0055] Further, the processor 106-2 may be configured to bundle the extracted shader data and the extracted pipeline data 520 with the OS binary of the electronic device 104'. In the illustrated embodiment, the bundling module 514 may be configured to bundle the extracted shader data and the extracted pipeline data 520 with the OS binary of the electronic device 104'. The bundling module 514 may be configured to retrieve the extracted shader data and the extracted pipeline data 520 from the data repository 524 and, bundle the retrieved data with the OS binary of the electronic device 104'. The bundled data, i.e., the shader data and the generated pipeline data with the OS binary, may be referred to as the OS binary with cache 526 in the Figure 5b of the present disclosure. The OS binary with cache 526 may interchangeably be referred to as the bundled shader data and the bundled pipeline data 526.
[0056] The processor 106-2 may be configured to embed the bundled shader data and the bundled pipeline data 526 of each application 105 from the OS into the corresponding application resources 528. In the illustrated embodiment, the embedding module 516 may be configured to embed the bundled shader data and the bundled pipeline data 526 of each application 105 into the corresponding application resources 528.
[0057] The processor 106-2 may be configured to fetch the embedded shader data and the embedded pipeline data from the corresponding application resources at a time of initializing each application 105 in the electronic device 104'. In the illustrated embodiment, the initializing module 518 may be configured to fetch the embedded shader data and the embedded pipeline data from the corresponding application resources 528 at the time of initializing each application 105 in the electronic device 104'. The time of initializing each application 105 may be referred to the time at which the application 105 is launched in the electronic device 104'.
[0058] Figure 6 illustrates a flowchart depicting a method 600 for reducing launch-time of the applications 105 in the electronic device 104', according to another embodiment of the present disclosure. The method 600 may be implemented in the system 500 using components thereof, as described above. In an embodiment, the method 600 may be executed by the processors 106-1 of the electronic device 104', as described above with respect to Figure 5. Further, for the sake of brevity, details of the present disclosure that are explained in detail in the description of Figures 1-5 are not explained in detail in the description of Figure 6.
[0059] At block 602, the method 600 may include extracting, at the time of booting the electronic device 104', the shader data and pipeline data 520 associated with each application 105 from among the plurality of applications installed in the electronic device 104'. In an embodiment, the method 600 may include initializing the virtual-display rendering service 522 at the time of booting the electronic device 104'. Further, the method 600 may include rendering, in the electronic device 104', each application 105 in the virtual-display rendering service 522 when the electronic device 104' is in the idle state.
[0060] Furthermore, the method 600 may include generating the shader data and the pipeline data 520 associated with each application 105 based on the rendering of each application 105. Upon generation, the method 600 may include storing the generated shader data and the generated pipeline data 520 in the data repository 524. Further, the method 600 may include extracting the generated shader data and the generated pipeline data 520 from the data repository 524 associated with each application 105 at the time of booting the electronic device 104'.
[0061] At block 604, the method 600 may include bundling the extracted shader data and the extracted pipeline data 520 with the OS binary of the electronic device 104'.
[0062] At block 606, the method 600 may include embedding the bundled shader data and the bundled pipeline data 526 of each application 105 from the operating system into the corresponding application resources 528.
[0063] At block 608, the method 600 may include fetching the embedded shader data and the embedded pipeline data from the corresponding application resources 528 at the time of initializing each application 105 in the electronic device 104'.
[0064] As would be gathered, the present disclosure offers a comprehensive approach of reducing application launch-time in the electronic device 104, 104'. The systems 100, 500 and the methods 400, 600 of the present disclosure generate, ahead of time, the shader data and the pipeline data associated with each application in the electronic device and subsequently, store the generated data in the data repository. Each application in the electronic device 104, 104' can retrieve the shader data and the pipeline data from the data repository to perform graphical rendering for UI of each application when such application is to be launched in the electronic device 104, 104'. This eliminates the requirement of dynamic shader generation and Just-in-Time (JIT) compilation at the time of launching the application. Therefore, this eliminates any time delay due to compilation of shaders or early-onset janky frames in UI of the application, when such application is launched in the electronic device.
[0065] While specific language has been used to describe the present disclosure, any limitations arising on account thereto, are not intended. As would be apparent to a person in the art, various working modifications may be made to the method in order to implement the inventive concept as taught herein. The drawings and the foregoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment.
Claims
1.A method (400) for reducing application launch-time in an electronic device (104), the method comprising:creating scripts of at least one application deployed in the electronic device (104);generating shader data and pipeline data by executing the created scripts of the at least one application;bundling the generated shader data and the generated pipeline data with an operating system binary of the electronic device (104);embedding the bundled shader data and the bundled pipeline data into the at least one application at a time of booting the electronic device (104); andinitializing the at least one application using the embedded shader data and the embedded pipeline data.2.The method (400) according to claim 1, wherein generating the shader data and the pipeline data comprises:emulating, using the created scripts, user interactions with each User Interface (UI) associated with the at least one application deployed in the electronic device (104);generating the shader data and the pipeline data associated with each UI of the at least one application based on the emulating of the user interactions; andstoring the generated shader data and the generated pipeline data in a data repository.3.The method (400) according to claim 3, further comprising:extracting, from the data repository, the generated shader data and the generated pipeline data corresponding to the at least one application deployed in the electronic device (104);bundling the extracted shader data and the pipeline data with the operating system; anddeploying the operating system along with the bundled shader data and the bundled pipeline data in the electronic device (104).4.The method (400) according to claim 3, wherein embedding the bundled shader data and the bundled pipeline data into the at least one application comprises:embedding the bundled shader data and the bundled pipeline data into application resources associated with the at least one application.5.The method (400) according to claim 4, wherein initializing the at least one application using the embedded shader data and the embedded pipeline data comprises:extracting the embedded shader data and the embedded pipeline data from the application resources associated with the at least one application; andinitializing the at least one application by rendering UI elements associated with UI of the at least one application based on the extracted shader data and the extracted pipeline on the electronic device (104).6.A method (600) for reducing launch-time of applications in an electronic device (104'), the method comprising:extracting, at a time of booting the electronic device (104'), shader data and pipeline data associated with each application from among a plurality of applications installed in the electronic device (104');bundling the extracted shader data and the extracted pipeline data with an operating system binary of the electronic device (104');embedding the bundled shader data and the bundled pipeline data of each application from the operating system into corresponding application resources; andfetching the embedded shader data and the embedded pipeline data from the corresponding application resources at a time of initializing each application in the electronic device (104').7.The method (600) according to claim 6, wherein extracting the shader data and the pipeline data comprises:initializing a virtual-display rendering service at the time of booting the electronic device (104'); andrendering, in the electronic device (104'), each application in the virtual-display rendering service when the electronic device (104') is in an idle state.8.The method (600) according to claim 7 further comprising:generating the shader data and the pipeline data associated with each application based on the rendering of each application;storing the generated shader data and the generated pipeline data in a data repository of the electronic device (104'); andextracting the generated shader data and the generated pipeline data from the data repository associated with each application at the time of booting the electronic device (104').9.A system (100) for reducing application launch-time in an electronic device (104), the system comprising:at least one processor configured to:create scripts of at least one application deployed in the electronic device (104);generate shader data and pipeline data by executing the created scripts of the at least one application;bundle the generated shader data and the generated pipeline data with an operating system binary of the electronic device (104);embed the bundled shader data and the bundled pipeline data into the at least one application at a time of booting the electronic device (104); andinitialize the at least one application using the embedded shader data and the embedded pipeline data.10.The system (100) according to claim 9, wherein to generate the shader data and the pipeline data, the at least one processor is configured to:emulate, using the created scripts, user interactions with each User Interface (UI) associated with the at least one application deployed in the electronic device (104);generate the shader data and the pipeline data associated with each UI of the at least one application based on the emulating of the user interactions; andstore the generated shader data and the generated pipeline data in a data repository.11.The system (100) according to claim 10, wherein the at least one processor is configured to:extract, from a data repository, the generated shader data and the generated pipeline data corresponding to the at least one application deployed in the electronic device (104);bundle the extracted shader data and the pipeline data with the operating system; anddeploy the operating system along with the bundled shader data and the bundled pipeline data in the electronic device (104).12.The system (100) according to claim 11, wherein to embed the bundled shader data and the bundled pipeline data into the at least one application, the at least one processor is configured to:embed the bundled shader data and the bundled pipeline data into application resources associated with the at least one application.13.The system (100) according to claim 12, wherein to initialize the at least one application using the embedded shader data and the embedded pipeline data, the at least one processor is configured to:extract the embedded shader data and the embedded pipeline data from the application resources associated with the at least one application; andinitialize the at least one application by rendering UI elements associated with UI of the at least one application based on the extracted shader data and the extracted pipeline on the electronic device (104).14.A system (500) for reducing launch-time of applications in an electronic device (104'), the system comprising:at least one processor configured to:extract, at a time of booting the electronic device (104'), shader data and pipeline data associated with each application from among a plurality of applications installed in the electronic device (104');bundle the extracted shader data and the extracted pipeline data with an operating system binary of the electronic device (104');embed the bundled shader data and the bundled pipeline data of each application from the operating system into corresponding application resources; andfetch the embedded shader data and the embedded pipeline data from the corresponding application resources at a time of initializing each application in the electronic device (104').15.The system (500) according to claim 14, wherein extracting the shader data and the pipeline data comprises:initialize a virtual-display rendering service at the time of booting the electronic device (104'); andrender, in the electronic device (104'), each application in the virtual-display rendering service when the electronic device (104') is in an idle state.
Citation Information
Patent Citations
Emulation pipeline selection and emulation pipeline parameter prediction
US11640689B1
Offline shader compilation
US20160070549A1
Configuring resources used by a graphics processing unit
US20160071230A1
Compound Shader Object and Use Thereof
US20180350028A1
Offloading shader program compilation
US20230281907A1