CN111240766A - Application starting method and device, electronic equipment and computer readable storage medium - Google Patents

Application starting method and device, electronic equipment and computer readable storage medium Download PDF

Info

Publication number
CN111240766A
CN111240766A CN202010075136.4A CN202010075136A CN111240766A CN 111240766 A CN111240766 A CN 111240766A CN 202010075136 A CN202010075136 A CN 202010075136A CN 111240766 A CN111240766 A CN 111240766A
Authority
CN
China
Prior art keywords
code
application
starting
package file
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010075136.4A
Other languages
Chinese (zh)
Other versions
CN111240766B (en
Inventor
甘晓霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010075136.4A priority Critical patent/CN111240766B/en
Publication of CN111240766A publication Critical patent/CN111240766A/en
Application granted granted Critical
Publication of CN111240766B publication Critical patent/CN111240766B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Abstract

The disclosure provides an application starting method and device, electronic equipment and a computer readable storage medium, and relates to the technical field of application software of mobile terminals. The method comprises the following steps: when detecting that the application starts triggering operation, acquiring related information of a code packet file of the application; acquiring a preset function in a virtual machine; performing corresponding processing on the related information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information; and starting the application according to the starting information. The application upgrading and installing time of the low-version Android is greatly shortened.

Description

Application starting method and device, electronic equipment and computer readable storage medium
Technical Field
The present disclosure relates to the technical field of mobile terminal application software, and in particular, to an application starting method and apparatus, an electronic device, and a computer-readable storage medium.
Background
In a mobile phone with an Android system version no greater than 4.4, it often takes tens of seconds or several minutes to install or upgrade an update application for the first time, and a user has to face a black screen during the period of time and can use the application normally after the period of time.
The reason is that Android 4.4 and below adopts a Dalvik virtual machine, and under a normal condition, the Dalvik virtual machine can only execute code package (DEX) files optimized by OPT, so that the optimized code package files are required to normally run on a low-version system by default. The application of the multi-code package file needs to use an Android official unique solution scheme MultiDex, all code package files need to be unpacked to complete compression, OPT optimization is carried out on the compressed files to obtain optimized code package files, and the whole process is extremely long in time consumption.
Especially, in the process of generating the optimized code packet file, the code packet file is subjected to traversal scanning and optimized rewriting, which is the biggest time-consuming bottleneck. Therefore, how to accelerate the starting of the application under the low version of the Android system is an urgent problem to be solved.
Disclosure of Invention
The disclosure provides an application starting method and device, electronic equipment and a computer readable storage medium, which can solve the problem that low and medium-level applications of a low-version Android system are started too slowly. The technical scheme is as follows:
in a first aspect, an application starting method is provided, and the method includes:
when detecting that the application starts triggering operation, acquiring related information of a code packet file of the application;
acquiring a preset function in a virtual machine;
performing corresponding processing on the related information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and starting the application according to the starting information.
In a second aspect, an application launching device is provided, the device comprising:
the first acquisition module is used for acquiring relevant information of a code package file of an application when detecting application starting triggering operation;
the second acquisition module is used for acquiring a preset function in the virtual machine;
the processing module is used for correspondingly processing the relevant information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and the starting module is used for starting the application according to the starting information.
In a third aspect, an electronic device is provided, which includes:
one or more processors;
a memory;
one or more application programs, wherein the one or more application programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to perform operations corresponding to the application launching method as illustrated in the first aspect of the present disclosure.
In a fourth aspect, a computer-readable storage medium is provided,
the computer storage medium is used for storing computer instructions, which when run on a computer, make the computer implement the application launching method shown in the first aspect of the present disclosure.
The technical scheme provided by the disclosure has the following beneficial effects:
the method and the device have the advantages that the relevant information of the code package file in the application is subjected to relevant processing based on the preset function obtained in the virtual machine, the code package file object is obtained, loading time is saved, the application is started through the starting information in the code package file object, the application can be started quickly, and the installation and upgrading experience of a user is greatly improved.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numbers refer to the same or similar elements. It should be understood that the drawings are schematic and that elements and features are not necessarily drawn to scale.
Fig. 1 is a schematic flowchart of an application starting method according to an embodiment of the present disclosure;
fig. 2 is a schematic flowchart of another application starting method provided in the embodiment of the present disclosure;
fig. 3 is a schematic flowchart of another application starting method provided in the embodiment of the present disclosure;
FIG. 4 is a schematic diagram of a process for starting a start-up process and an optimization process;
FIG. 5 is a schematic flow chart of startup after adding file locks in the startup process and the optimization process;
fig. 6 is a schematic structural diagram of an application starting apparatus according to an embodiment of the present disclosure;
fig. 7 is a schematic structural diagram of another application starting device according to an embodiment of the present disclosure;
fig. 8 is a schematic structural diagram of another application starting apparatus provided in the embodiment of the present disclosure;
fig. 9 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order, and/or performed in parallel. Moreover, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "include" and variations thereof as used herein are open-ended, i.e., "including but not limited to". The term "based on" is "based, at least in part, on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Relevant definitions for other terms will be given in the following description.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing the devices, modules or units, and are not used for limiting the devices, modules or units to be different devices, modules or units, and also for limiting the sequence or interdependence relationship of the functions executed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
To make the objects, technical solutions and advantages of the present disclosure more apparent, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.
First, it should be noted that if a class is desired to be accessed in java, the class needs to be loaded by a class loader for access, and the class generally exists in a manner of being attached to a code package file, and only when the corresponding code package file is loaded, the class in the code package file can be used.
When an application is installed, a main code package file in an installation package can be automatically optimized, and the main code package file is loaded into a class loader of the application directly by default when the application is started, so that classes in the main code package file can be directly accessed, but secondary code package files except the main code package file can be optimized after being processed and then loaded into the class loader. The classes therein can be used normally. Otherwise, when these classes are accessed, these code package files cannot be found, causing a crash.
The present disclosure provides an application starting method, an application starting apparatus, an electronic device, and a computer-readable storage medium, which aim to solve the above technical problems of the prior art.
The following describes the technical solutions of the present disclosure and how to solve the above technical problems in specific embodiments. The following several specific embodiments may be combined with each other, and details of the same or similar concepts or processes may not be repeated in some embodiments. Embodiments of the present disclosure will be described below with reference to the accompanying drawings.
An embodiment of the present disclosure provides a method for starting an application, as shown in fig. 1, the method includes:
step S101: when detecting that the application starts triggering operation, acquiring related information of a code packet file of the application;
step S102: acquiring a preset function in a virtual machine;
step S103: performing corresponding processing on the related information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
step S104: and starting the application according to the starting information.
The application start triggering operation may be when the application is installed for the first time, or when the application is upgraded, or when the application is restarted after installation or upgrade. At this time, the relevant information in the code package file of the application may be obtained first, and then the preset function may be obtained from the function registry inside the virtual machine through the dlsym function. Optionally, the preset function may include a function for loading the related information of the code packet file, or may be a function for optimizing the related information of the code packet file.
After the information related to the code package file is obtained after the preset function is obtained, corresponding loading processing or optimization processing may be performed on the code package file based on the preset function, and then a processed product, that is, a code package file object, is obtained. Specifically, the start information may be added to a class loader, and the class loader may load a code package file object to use a class in the code package, thereby ensuring the start of the application.
The method and the device have the advantages that the relevant information of the code package file in the application is subjected to relevant processing based on the preset function obtained in the virtual machine, the code package file object is obtained, loading time is saved, the application is started through the starting information in the code package file object, the application can be started quickly, and the installation and upgrading experience of a user is greatly improved.
A possible implementation manner is provided in the embodiments of the present disclosure, as shown in fig. 2, where the related information of the code package file includes a bytecode of the code package file, and the preset function includes a load function;
acquiring relevant information of a code package file of an application, wherein the relevant information comprises the following steps:
step S201: when detecting that the application starts triggering operation, decompressing an installation package of the application to acquire byte codes of a code package file;
step S202: acquiring a loading function in a virtual machine;
if the application is expected to run normally and a series of optimized loading processes of the code package file in the prior art are avoided, the virtual machine can execute the byte codes of the code package file which is not subjected to optimized loading.
Optionally, the byte codes of the code packet file can be obtained by decompressing the application installation packet, and the byte codes of the code packet file can be obtained by extracting the code packet file which falls to the ground after the previous startup is completed, so that the decompression time is saved.
Specifically, a code package file can be obtained by decompressing from the installation package, wherein the file form of the code package file can be dex, and the file name can be class.dex; the byte codes of the code packet file can be read from the code packet file, the specific form of the byte codes can be coded bytes, and the byte codes of the code packet file can be obtained by reading the code packet file into the memory.
After the bytecode of the code packet file is obtained, a loading function in the virtual machine may be called, specifically, an array dvm _ dalvik _ system _ DexFile may be obtained in a function registry of the virtual machine through a dlsym function, and then the loading function _ openDexFile _ bytearrarray may be obtained by querying in the array in a manner of matching element character strings one by one.
Optionally, a code package object may be created in the virtual machine, so that the loading function loads the bytecode of the code package file into the first code package file object in the virtual machine that creates the code package object.
It can be appreciated that if the code package file is not load optimized, but the bytecode of the code package file is loaded, the memMap cannot be assigned in the code, which may cause the application to crash.
By analyzing the code:
if(dvm_dex->dex_object!=NULL){
return dvm_dex->dex_object;
}
if dvm _ dex- > dex _ object is not empty, it will go back directly and not be executed down to where the memMap assignment is needed. Therefore, a code packet object dex _ object can be created inside the virtual machine, such as pDvmDex, so that the loading function loads the bytecode of the code packet file into the first code packet file object of the code in the virtual machine creating the code packet object dex _ object, thereby avoiding the crash of the application when the application is started.
The method comprises the following steps of carrying out corresponding processing on relevant information of a code package file based on a preset function to obtain a code package file object, wherein the method comprises the following steps:
step S203: loading the byte codes of the code packet file into a first code packet file object based on a loading function; the first code packet file object comprises first starting information;
after obtaining the loading function _ openDexFile _ bytearray from the virtual machine, the bytecode of the code package file may be loaded as a legal first code package file object based on the loading function.
Optionally, loading the bytecode of the code package file into a first code package file object based on a loading function, including:
calling a loading function, and generating a pointer based on the byte codes of the code packet file;
and after the pointer is implanted into the virtual machine, constructing a first code packet file object based on the address of the pointer.
Optionally, another loading function dvmrawdefilenopenarray may be invoked to process the bytecode of the code package file, an original first code package file object is generated first, and then a pointer dexorajar is generated via the original first code package file object. The pointer DexOrJar can be implanted into the virtual machine, so that the virtual machine can construct a legal first code packet file object by using the address of the pointer DexOrJar as a cookie. And the first code packet file object comprises first starting information, and the application can be started according to the first starting information.
Starting the application according to the starting information, comprising:
step S204: and starting the application according to the first starting information.
Optionally, the first start information may be added to a class loader of the virtual machine, so that the class loader loads the first code package file object to start the application.
Specifically, makeDexElements may be called to add the first start information to the class loader PathClassLoader, and the class loader PathClassLoader may load the class in the first code package file object usage code package, thereby ensuring the start of the application.
Optionally, after the first installation or update, the adopted bytecode for directly loading the code package file by using the loading function can save loading time to a certain extent and optimize upgrade experience. However, in the long term, the code package file may be optimized in the prior art in the subsequent starting process, and then the starting process may be performed based on the optimized file. Therefore, there is also a need to optimize the code package file at the appropriate time in the background after the first installation or update is completed.
According to the method and the device, the byte codes of the code package file are obtained by decompressing from the installation package, the loading function is obtained from the virtual machine, the byte codes of the code package file package can be directly loaded based on the obtained loading function, so that a legal first code package file object is formed, the loading time is greatly shortened, the first code package file object contains the first starting information, the application is started through the first starting information, the starting and loading time is saved, and the installation and upgrading experience of a user is improved.
A possible implementation manner is provided in the embodiments of the present disclosure, as shown in fig. 3, where the relevant information of the code package file includes the code package file, and the preset function includes an optimization function;
acquiring relevant information of a code package file of an application, wherein the relevant information comprises the following steps:
step S301: when detecting that the application starts triggering operation, decompressing an installation package of the application to acquire a code package file;
step S302: obtaining an optimization function in a virtual machine;
when the code package is started or updated for the first time, compared with the prior art that the code package file is compressed and then optimized, the code package file can be not compressed, but the code package file obtained by decompression in the installation package is directly obtained, then the uncompressed code package file is directly optimized, and the whole starting process is also optimized to a certain extent.
It should be noted that, the disk space occupied by the uncompressed code package file is doubled compared with the compressed code package file, so that the uncompressed code package file can be directly optimized under the condition of sufficient disk space.
After the code package file is obtained by decompression from the installation package, in order to avoid the problem of SIGSTKFLT signal crash, the obtained code package file can be processed by acquiring an optimization function dvmrawdefileopen in the virtual machine through a dlsym function.
It should be noted that the SIGSTKFLT signal is a signal specific to the virtual machine, and it is only when the virtual machine wants to suspend all threads but the thread cannot respond, and it will send this signal to the responding thread, so that the application crashes.
The method comprises the following steps of carrying out corresponding processing on relevant information of a code package file based on a preset function to obtain a code package file object, wherein the method comprises the following steps:
step S303: optimizing the code packet file based on an optimization function to obtain a second code packet file object, wherein the second code packet file object comprises second starting information;
generally, the virtual machine is in running state when executing java code, but if the JNI method is called, the state is switched to native state, and if the state is in native state, the virtual machine does not require that the thread must be suspended. Specifically, if the code package file is directly optimized by using an optimization function dvmRawDexFileOpen inside the virtual machine in the native state to obtain a second code package file object without java, the native state can also be always maintained, so that the problem of SIGSTKFLT signals is solved.
Starting the application according to the starting information, comprising:
step S304: and starting the application according to the second starting information.
Optionally, the second start information may be added to a class loader of the virtual machine, so that the class loader loads the second code package file object to start the application.
Specifically, makeDexElements may be called to add the second start information to the class loader PathClassLoader, and the class loader PathClassLoader may load a class in the second code package file object usage code package, thereby ensuring the start of the application.
According to the method and the device for loading the code package file, the code package file is obtained by decompressing the installation package, the optimization function is obtained from the virtual machine, the code package file or the code package file is optimized based on the obtained optimization function, a legal second code package file object is obtained, loading time is greatly shortened, the second code package file object comprises second starting information, the application is started through the second starting information, starting and loading time is saved, and installation and upgrading experience of a user is improved.
Optionally, in an actual operation process, to avoid the problem of the SIGSTKFLT signal, the operation of starting the application according to the second start information and the operation of optimizing the code package file based on the optimization function to obtain the second code package file object may be placed in different processes.
It should be noted that, if the second code package file object is obtained by optimizing the code package file without using a separate process, the start process is prevented from starting the application by using the second code package file object, referring to fig. 4.
Optionally, when the second code package file object is loaded through the class loader, the operation of optimizing the code package file based on the optimization function to obtain the second code package file object may be suspended
Specifically, referring to fig. 5, first, an optimization process starts to execute, a mutex lock is obtained, and then an optimization function dvmRawDexFileOpen is used to perform optimization processing on a code package file to obtain a second code package file object. After the optimization process finishes processing the first code packet file, the optimization process can acquire the preparation lock first and then release the preparation lock to continue to optimize the next code packet file because no other preparation lock is held.
At this time, the starting process or other non-optimization processes are started, the preparation lock is successfully acquired first, then the mutual exclusion lock is acquired in a blocking manner, and at this time, the optimization process can only wait for the release of the mutual exclusion lock because the mutual exclusion lock is acquired in the previous step.
After the second code packet file is processed by the optimization process, the preparation lock is detected to be held by other processes, so that the acquisition fails, the optimization of the code packet file is stopped, and the mutual exclusion lock is released and quit.
At this point, the initiating process may successfully acquire the mutex lock and immediately release the prepare lock so that other processes may acquire it. And then, after the loading of the second code file object is finished and started, releasing the mutual exclusion lock, continuing to execute a subsequent service flow, and finally calling an optimization process and finishing the optimization processing of the original code packet file.
In general, in this mode, the optimization process can actively discover the second code packet file object of other processes, thereby interrupting the optimization process of the code packet file and releasing the mutual exclusion lock. The starting process does not need to wait for the whole code package file to be optimized, and the subsequent operation can be continuously executed only by waiting for the optimization process to complete the optimization of the latest code package file. Network resources are reasonably utilized.
An embodiment of the present disclosure provides an application starting apparatus, and as shown in fig. 6, the application starting apparatus 60 may include: a first acquisition module 601, a second acquisition module 602, a processing module 603, and an activation module 604, wherein,
a first obtaining module 601, configured to obtain relevant information of a code package file of an application when an application start triggering operation is detected;
a second obtaining module 602, configured to obtain a preset function in the virtual machine;
the processing module 603 is configured to perform corresponding processing on the relevant information of the code package file based on a preset function, so as to obtain a code package file object; wherein, the code package file object comprises starting information;
a starting module 604, configured to start the application according to the starting information.
The application start triggering operation may be when the application is installed for the first time, or when the application is upgraded, or when the application is restarted after installation or upgrade. At this time, the relevant information in the code package file of the application may be obtained first, and then the preset function may be obtained from the function registry inside the virtual machine through the dlsym function. Optionally, the preset function may include a function for loading the related information of the code packet file, or may be a function for optimizing the related information of the code packet file.
After the information related to the code package file is obtained after the preset function is obtained, corresponding loading processing or optimization processing may be performed on the code package file based on the preset function, and then a processed product, that is, a code package file object, is obtained. Specifically, the start information may be added to a class loader, and the class loader may load a code package file object to use a class in the code package, thereby ensuring the start of the application.
The method and the device have the advantages that the relevant information of the code package file in the application is subjected to relevant processing based on the preset function obtained in the virtual machine, the code package file object is obtained, loading time is saved, the application is started through the starting information in the code package file object, the application can be started quickly, and the installation and upgrading experience of a user is greatly improved.
Fig. 7 is a schematic structural diagram of an application starting apparatus provided in an embodiment of the present disclosure, and as shown in fig. 7, the apparatus of the embodiment may include:
a first obtaining first sub-module 701, configured to, when detecting that an application starts a trigger operation, decompress an installation package of an application to obtain a bytecode of a code package file;
a second obtaining first sub-module 702, configured to obtain a loading function in the virtual machine;
a loading module 703, configured to load the bytecode of the code package file into a first code package file object based on a loading function; the first code packet file object comprises first starting information;
the first start sub-module 704 is configured to start the application according to the first start information.
The application starting apparatus of this embodiment can execute the application starting method shown in the above embodiments of the present disclosure, and the implementation principles thereof are similar, and are not described herein again.
According to the method and the device, the byte codes of the code package file are obtained by decompressing from the installation package, the loading function is obtained from the virtual machine, the byte codes of the code package file package can be directly loaded based on the obtained loading function, so that a legal first code package file object is formed, the loading time is greatly shortened, the first code package file object contains the first starting information, the application is started through the first starting information, the starting and loading time is saved, and the installation and upgrading experience of a user is improved.
Fig. 8 is a schematic structural diagram of an application starting apparatus provided in an embodiment of the present disclosure, and as shown in fig. 8, the apparatus of this embodiment may include:
the first obtaining second sub-module 801 is configured to decompress an installation package of an application to obtain a code package file when detecting an application start triggering operation;
a second obtaining second sub-module 802, configured to obtain an optimization function in the virtual machine;
the optimization module 803 is configured to optimize the code packet file based on an optimization function to obtain a second code packet file object, where the second code packet file object includes second start information;
and the second starting sub-module 804 is configured to start the application according to the second starting information.
The application device of this embodiment can execute the application starting method shown in the above embodiments of the present disclosure, and the implementation principles thereof are similar and will not be described herein again.
According to the method and the device for loading the code package file, the code package file is obtained by decompressing the installation package, the optimization function is obtained from the virtual machine, the code package file or the code package file is optimized based on the obtained optimization function, a legal second code package file object is obtained, loading time is greatly shortened, the second code package file object comprises second starting information, the application is started through the second starting information, starting and loading time is saved, and installation and upgrading experience of a user is improved.
Referring now to FIG. 9, shown is a schematic diagram of an electronic device 900 suitable for use in implementing embodiments of the present disclosure. The electronic devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, notebook computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., car navigation terminals), and the like, and fixed terminals such as digital TVs, desktop computers, and the like. The electronic device shown in fig. 9 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
The electronic device includes: a memory and a processor, wherein the processor herein may be referred to as a processing device 901 described below, and the memory may include at least one of a Read Only Memory (ROM)902, a Random Access Memory (RAM)903, and a storage device 908, which are described below:
as shown in fig. 9, the electronic device 900 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 901 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)902 or a program loaded from a storage means 908 into a Random Access Memory (RAM) 903. In the RAM 903, various programs and data necessary for the operation of the electronic apparatus 900 are also stored. The processing apparatus 901, the ROM 902, and the RAM 903 are connected to each other through a bus 904. An input/output (I/O) interface 905 is also connected to bus 904.
Generally, the following devices may be connected to the I/O interface 905: input devices 906 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 907 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage 908 including, for example, magnetic tape, hard disk, etc.; and a communication device 909. The communication device 909 may allow the electronic apparatus 900 to perform wireless or wired communication with other apparatuses to exchange data. While fig. 9 illustrates an electronic device 900 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program carried on a non-transitory computer readable medium, the computer program containing program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication device 909, or installed from the storage device 908, or installed from the ROM 902. The computer program performs the above-described functions defined in the methods of the embodiments of the present disclosure when executed by the processing apparatus 901.
It should be noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In contrast, in the present disclosure, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network protocol, such as HTTP (HyperText transfer protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may exist separately without being assembled into the electronic device.
The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to:
when detecting that the application starts triggering operation, acquiring related information of a code packet file of the application;
acquiring a preset function in a virtual machine;
performing corresponding processing on the related information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and starting the application according to the starting information.
Computer program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including but not limited to an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules or units described in the embodiments of the present disclosure may be implemented by software or hardware. Wherein the designation of a module or unit does not in some cases constitute a limitation of the unit itself.
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
According to one or more embodiments of the present disclosure, there is provided an application starting method including:
when detecting that the application starts triggering operation, acquiring related information of a code packet file of the application;
acquiring a preset function in a virtual machine;
performing corresponding processing on the related information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and starting the application according to the starting information.
Optionally, the related information of the code packet file includes a bytecode of the code packet file, and the preset function includes a loading function;
acquiring relevant information of a code package file of an application, wherein the relevant information comprises the following steps:
decompressing the installation package of the application to obtain the byte codes of the code package file;
the method comprises the following steps of carrying out corresponding processing on relevant information of a code package file based on a preset function to obtain a code package file object, wherein the method comprises the following steps:
loading the byte codes of the code packet file into a first code packet file object based on a loading function; the first code packet file object comprises first starting information;
starting the application according to the starting information, comprising:
and starting the application according to the first starting information.
Optionally, a code package object may be created in the virtual machine, so that the loading function loads the bytecode of the code package file as the first code package file object in the virtual machine that created the code package object.
Optionally, loading the bytecode of the code package file into a first code package file object based on a loading function, including:
calling a loading function, and generating a pointer based on the byte codes of the code packet file;
and after the pointer is implanted into the virtual machine, constructing a first code packet file object based on the address of the pointer.
Optionally, the related information of the code packet file includes the code packet file, and the preset function includes an optimization function;
acquiring relevant information of a code package file of an application, wherein the relevant information comprises the following steps:
decompressing an installation package of the application to obtain a code package file;
the method comprises the following steps of carrying out corresponding processing on relevant information of a code package file based on a preset function to obtain a code package file object, wherein the method comprises the following steps:
optimizing the code packet file based on an optimization function to obtain a second code packet file object, wherein the second code packet file object comprises second starting information;
starting the application according to the starting information, comprising:
and starting the application according to the second starting information.
Optionally, starting the application according to the second start information and optimizing the code package file based on the optimization function to obtain the second code package file object are operations performed in different processes.
Optionally, the second start information may be added to a class loader of the virtual machine, so that the class loader loads the second code package file object to start the application, and when the second code package file object is loaded by the class loader, an operation of optimizing the code package file based on the optimization function to obtain the second code package file object is suspended.
According to one or more embodiments of the present disclosure, there is provided an application starting apparatus including:
the first acquisition module is used for acquiring relevant information of a code package file of an application when detecting application starting triggering operation;
the second acquisition module is used for acquiring a preset function in the virtual machine;
the processing module is used for correspondingly processing the relevant information of the code packet file based on a preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and the starting module is used for starting the application according to the starting information.
According to one or more embodiments of the present disclosure, there is provided an electronic device including:
one or more processors;
a memory;
one or more application programs, wherein the one or more application programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs are configured to perform operations corresponding to the application launching methods described above.
According to one or more embodiments of the present disclosure, there is provided a computer-readable storage medium including:
the computer storage medium is used for storing computer instructions which, when run on a computer, enable the computer to implement the application launching method described above.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the disclosure herein is not limited to the particular combination of features described above, but also encompasses other embodiments in which any combination of the features described above or their equivalents does not depart from the spirit of the disclosure. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (10)

1. An application startup method, comprising:
when detecting that an application starts triggering operation, acquiring related information of a code package file of the application;
acquiring a preset function in a virtual machine;
performing corresponding processing on the relevant information of the code packet file based on the preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and starting the application according to the starting information.
2. The method according to claim 1, wherein the related information of the code packet file comprises byte codes of the code packet file, and the preset function comprises a loading function;
acquiring the relevant information of the code packet file of the application, wherein the information comprises the following steps:
decompressing the installation package of the application to obtain the byte codes of the code package file;
based on the preset function, the relevant information of the code package file is correspondingly processed to obtain a code package file object, which comprises the following steps:
loading the bytecode of the code package file into a first code package file object based on the loading function; wherein, the first code packet file object comprises first starting information;
starting the application according to the starting information, comprising:
and starting the application according to the first starting information.
3. The method of claim 2, wherein the method comprises:
and creating a code packet object in the virtual machine, so that the loading function loads the byte code of the code packet file into the first code packet file object in the virtual machine creating the code packet object.
4. The method of claim 2 or 3, wherein the loading the bytecode of the code package file as a first code package file object based on the loading function comprises:
calling the loading function, and generating a pointer based on the byte codes of the code packet file;
and after the pointer is implanted into the virtual machine, constructing the first code packet file object based on the address of the pointer.
5. The method of claim 1, wherein the information related to the code package file comprises a code package file, and the preset function comprises an optimization function;
acquiring the relevant information of the code packet file of the application, wherein the information comprises the following steps:
decompressing the installation package of the application to obtain the code package file;
based on the preset function, the relevant information of the code package file is correspondingly processed to obtain a code package file object, which comprises the following steps:
optimizing the code packet file based on the optimization function to obtain a second code packet file object, wherein the second code packet file object comprises second starting information;
starting the application according to the starting information, comprising:
and starting the application according to the second starting information.
6. The method of claim 5,
and the starting of the application according to the second starting information and the optimization of the code package file based on the optimization function to obtain a second code package file object are operations performed in different processes.
7. The method of claim 6, wherein the launching the application according to the second launch information comprises:
adding the second starting information to a class loader of the virtual machine, so that the class loader loads the second code package file object to start the application, and suspending an operation of optimizing the code package file based on the optimization function to obtain the second code package file object when the second code package file object is loaded through the class loader.
8. An application startup device, characterized by comprising:
the first acquisition module is used for acquiring relevant information of a code package file of the application when detecting application starting triggering operation;
the second acquisition module is used for acquiring a preset function in the virtual machine;
the processing module is used for correspondingly processing the related information of the code packet file based on the preset function to obtain a code packet file object; wherein, the code package file object comprises starting information;
and the starting module is used for starting the application according to the starting information.
9. An electronic device, comprising:
one or more processors;
a memory;
one or more applications, wherein the one or more applications are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: executing the application launching method according to any of claims 1-7.
10. A computer-readable storage medium storing computer instructions which, when executed on a computer, cause the computer to perform the application launching method of any of claims 1 to 7.
CN202010075136.4A 2020-01-22 2020-01-22 Application starting method and device, electronic equipment and computer readable storage medium Active CN111240766B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010075136.4A CN111240766B (en) 2020-01-22 2020-01-22 Application starting method and device, electronic equipment and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010075136.4A CN111240766B (en) 2020-01-22 2020-01-22 Application starting method and device, electronic equipment and computer readable storage medium

Publications (2)

Publication Number Publication Date
CN111240766A true CN111240766A (en) 2020-06-05
CN111240766B CN111240766B (en) 2023-12-29

Family

ID=70876365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010075136.4A Active CN111240766B (en) 2020-01-22 2020-01-22 Application starting method and device, electronic equipment and computer readable storage medium

Country Status (1)

Country Link
CN (1) CN111240766B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913756A (en) * 2020-07-08 2020-11-10 北京达佳互联信息技术有限公司 Application program optimization method, device and system, electronic equipment and storage medium
CN112732365A (en) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 Method and device for starting pre-installed application program, electronic equipment and storage medium
CN112988592A (en) * 2021-04-07 2021-06-18 北京字节跳动网络技术有限公司 Code detection method, device, equipment and storage medium
CN115658184A (en) * 2022-12-26 2023-01-31 北京海誉动想科技股份有限公司 Method and device for quickly starting cloud application, storage medium and electronic equipment
CN112988592B (en) * 2021-04-07 2024-04-30 北京字节跳动网络技术有限公司 Code detection method, device, equipment and storage medium

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114871A1 (en) * 2003-11-24 2005-05-26 Wolff Adam G. System for optimizing application start-up
CN101944042A (en) * 2010-09-01 2011-01-12 深圳市拜特科技股份有限公司 Operation method of Java program and electronic terminal
US20120110601A1 (en) * 2010-10-28 2012-05-03 Spencer Andrew M Dynamically installing image processing
US20130219379A1 (en) * 2012-02-20 2013-08-22 International Business Machines Corporation Optimization of an application to reduce local memory usage
CN105278989A (en) * 2015-10-12 2016-01-27 邱寅峰 Fast loading method of APK file
CN105975311A (en) * 2016-05-09 2016-09-28 腾讯科技(深圳)有限公司 Application startup method and device
CN106203120A (en) * 2016-07-15 2016-12-07 北京邮电大学 A kind of multiple spot Hook reverse method for Android reinforcement application
CN106295371A (en) * 2016-08-22 2017-01-04 腾讯科技(深圳)有限公司 Application operation method, file reinforcement means and device
CN106775843A (en) * 2016-11-30 2017-05-31 四川长虹电器股份有限公司 The bytecode-optimized methods of dalvik based on internal memory loading
US20170242664A1 (en) * 2016-02-18 2017-08-24 Line Corporation Method, apparatus, system, and non-transitory computer readable medium for extending at least one function of a package file
CN107169324A (en) * 2017-05-12 2017-09-15 北京理工大学 A kind of Android application reinforcement means based on dynamic encryption and decryption
CN107423093A (en) * 2017-07-21 2017-12-01 珠海市魅族科技有限公司 Control method and device, computer installation and computer-readable recording medium
CN109214148A (en) * 2018-09-03 2019-01-15 平安普惠企业管理有限公司 A kind of dex file abstracting method, system and terminal device
CN109933381A (en) * 2019-03-06 2019-06-25 腾讯科技(深圳)有限公司 A kind of loading method and device of kernel

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114871A1 (en) * 2003-11-24 2005-05-26 Wolff Adam G. System for optimizing application start-up
CN101944042A (en) * 2010-09-01 2011-01-12 深圳市拜特科技股份有限公司 Operation method of Java program and electronic terminal
US20120110601A1 (en) * 2010-10-28 2012-05-03 Spencer Andrew M Dynamically installing image processing
US20130219379A1 (en) * 2012-02-20 2013-08-22 International Business Machines Corporation Optimization of an application to reduce local memory usage
CN105278989A (en) * 2015-10-12 2016-01-27 邱寅峰 Fast loading method of APK file
US20170242664A1 (en) * 2016-02-18 2017-08-24 Line Corporation Method, apparatus, system, and non-transitory computer readable medium for extending at least one function of a package file
CN105975311A (en) * 2016-05-09 2016-09-28 腾讯科技(深圳)有限公司 Application startup method and device
CN106203120A (en) * 2016-07-15 2016-12-07 北京邮电大学 A kind of multiple spot Hook reverse method for Android reinforcement application
CN106295371A (en) * 2016-08-22 2017-01-04 腾讯科技(深圳)有限公司 Application operation method, file reinforcement means and device
CN106775843A (en) * 2016-11-30 2017-05-31 四川长虹电器股份有限公司 The bytecode-optimized methods of dalvik based on internal memory loading
CN107169324A (en) * 2017-05-12 2017-09-15 北京理工大学 A kind of Android application reinforcement means based on dynamic encryption and decryption
CN107423093A (en) * 2017-07-21 2017-12-01 珠海市魅族科技有限公司 Control method and device, computer installation and computer-readable recording medium
CN109214148A (en) * 2018-09-03 2019-01-15 平安普惠企业管理有限公司 A kind of dex file abstracting method, system and terminal device
CN109933381A (en) * 2019-03-06 2019-06-25 腾讯科技(深圳)有限公司 A kind of loading method and device of kernel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SBSUJJBCY: "一种在Dalvik虚拟机上多Dex加载优化的方案", pages 1 - 3 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913756A (en) * 2020-07-08 2020-11-10 北京达佳互联信息技术有限公司 Application program optimization method, device and system, electronic equipment and storage medium
CN111913756B (en) * 2020-07-08 2024-01-02 北京达佳互联信息技术有限公司 Application program optimizing method, device and system, electronic equipment and storage medium
CN112732365A (en) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 Method and device for starting pre-installed application program, electronic equipment and storage medium
CN112988592A (en) * 2021-04-07 2021-06-18 北京字节跳动网络技术有限公司 Code detection method, device, equipment and storage medium
CN112988592B (en) * 2021-04-07 2024-04-30 北京字节跳动网络技术有限公司 Code detection method, device, equipment and storage medium
CN115658184A (en) * 2022-12-26 2023-01-31 北京海誉动想科技股份有限公司 Method and device for quickly starting cloud application, storage medium and electronic equipment

Also Published As

Publication number Publication date
CN111240766B (en) 2023-12-29

Similar Documents

Publication Publication Date Title
CN111475235B (en) Acceleration method, device, equipment and storage medium for function calculation cold start
CN111240766B (en) Application starting method and device, electronic equipment and computer readable storage medium
CN110851204B (en) Application starting method and device and application packaging method and device
CN107291481B (en) Component updating method, device and system
CN112162795B (en) Plug-in starting method and device, computer equipment and storage medium
CN111309391A (en) Application program starting method, device, equipment and medium
CN112965761B (en) Data processing method, system, electronic equipment and storage medium
CN113900721A (en) Operating system starting method and device and electronic equipment
CN114595065A (en) Data acquisition method and device, storage medium and electronic equipment
CN111338666A (en) Method, device, medium and electronic equipment for realizing application program upgrading
CN112416303B (en) Software development kit hot repair method and device and electronic equipment
CN110888773B (en) Method, device, medium and electronic equipment for acquiring thread identification
CN114090090B (en) Starting method and device of terminal firmware, electronic equipment and storage medium
CN113934437B (en) Method and system for installing application on cloud mobile phone and client cloud mobile phone
CN116302271A (en) Page display method and device and electronic equipment
CN112422648B (en) Data synchronization method and system
CN113448585B (en) Compiling method and device of thread pool, electronic equipment and storage medium
CN116360802A (en) Middleware processing method, middleware processing device, electronic equipment and storage medium
CN112732365A (en) Method and device for starting pre-installed application program, electronic equipment and storage medium
CN113032046A (en) Method, device and equipment for repairing so file and storage medium
CN109669720B (en) Chain type asynchronous request processing method and device based on Promise and electronic equipment
CN112631609A (en) Compiling method, device, terminal and storage medium
CN111767093B (en) Data processing method, apparatus and storage medium
CN112905167B (en) Application operation method and device and electronic equipment
CN113760338B (en) Method and device for switching application binary interface ABI and electronic equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant