CN109491695B - Incremental updating method for integrated android application - Google Patents

Incremental updating method for integrated android application Download PDF

Info

Publication number
CN109491695B
CN109491695B CN201811219307.5A CN201811219307A CN109491695B CN 109491695 B CN109491695 B CN 109491695B CN 201811219307 A CN201811219307 A CN 201811219307A CN 109491695 B CN109491695 B CN 109491695B
Authority
CN
China
Prior art keywords
file
package
application
class
code
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.)
Active
Application number
CN201811219307.5A
Other languages
Chinese (zh)
Other versions
CN109491695A (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201811219307.5A priority Critical patent/CN109491695B/en
Publication of CN109491695A publication Critical patent/CN109491695A/en
Application granted granted Critical
Publication of CN109491695B publication Critical patent/CN109491695B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

The invention discloses an incremental updating method for integrated android application, which is based on real Native, adds a static field for all classes in the application for android Native codes, inserts a jump code at the entrance of the method, and comprises a condition judgment for the static field; in addition, the method for reading the bundle path is changed, and incremental updating of the application is realized by using bsdiff. The invention optimizes the existing hot repair technology, realizes a hot repair framework with stronger compatibility and effective in real time without restarting, can repair the bug on the line and update the resource file at any time without releasing a new version, can quickly repair the found problems, is not only helpful for developers, but also has important significance for improving the application experience.

Description

Incremental updating method for integrated android application
Technical Field
The invention relates to the field of APP performance optimization, in particular to an incremental updating method for integrated android applications.
Background
Along with the popularization of smart mobile phones, people's life is more and more not leaving the cell-phone, and the quantity of android APP is eruptive to increase, and meanwhile, the function of APP is more and more complicated, and the user of using is more and more, also more and more high to the performance requirement of APP. The fact Native is a facebook open-source cross-platform mobile application development framework, codes written by the fact Native framework support two major mainstream platforms, namely android and IOS, Native projects are integrated into the fact Native, the fact Native is used as supplement in project development, the unification of platform services can be achieved to a certain degree, flexible development efficiency is achieved, and the defects of Native development are overcome.
Although the existing App can be subjected to professional functional test and performance test of testers when being put on the shelf in an application market and the version is updated, due to the fact that android devices are various, screens are different in size, and the test cannot be completely covered, various abnormal conditions are inevitable. When the performance problem is suddenly detected after the application is released and needs to be emergently repaired, if the application needs to be modified by a developer firstly according to a normal flow, the application is recompiled and packaged, and then the application is released again through testing, and a user needs to download the updated APP to normally use. It can be seen that the whole process is very time-consuming, the performance problem that has occurred cannot be modified in time, and the user experience is also affected.
Disclosure of Invention
The invention mainly aims to overcome the defects and shortcomings of the prior art and provide an incremental updating method for integrated android applications, and the method is based on React Native, optimizes the existing thermal repair technology, realizes a thermal repair framework with stronger compatibility and real-time effect without restarting, can repair on-line bugs and update resource files at any time without releasing a new version, can quickly repair found problems, is greatly helpful for developers, and has important significance for improving application use experience.
The purpose of the invention is realized by the following technical scheme:
an incremental updating method for integrated android application is based on fact Native and comprises the following steps:
7) inserting a code for acquiring the latest patch package in the project, changing a method for reading a bundle path, adding repair function codes to all classes and methods before converting the class file into a dex file in a compiling period, and preparing for incremental hot updating;
8) packaging the codes processed in the step 1), using a ProGuard tool to solve the problem of code confusion and optimize the size of the package, and finally using the package on line;
9) when the application in the step 2) has problems and needs to be updated, realizing an incremental patch package by referring to the principle of Instant Run of a just-in-time compilation technology, obtaining a patch.
10) Detecting and updating the application, downloading the incremental patch package and checking, and repairing the code with problems by using a hot loading mode so that the application can be repaired without restarting;
11) optimizing the performance problem caused by the fact that $ change fields need to be subjected to reflection assignment in the step 4), and storing and searching the reflected fields and method by using a global Lru Cache to ensure that reflection is only called once as much as possible;
12) when the needed resources cannot be found in the original apk, the path of reading the resource file by the application is changed to point to the self-defined patch package path, so that the purpose of incrementally loading the resources in the update package is achieved.
Further, in step 1), the method for changing the read bundle path specifically includes:
the method comprises the following steps that a bundle file in an installation package is under an asset directory, and the asset directory has no writing authority, so that the bundle file in the installation package cannot be modified, and a getJSBNDleFile method is provided by a reach Native to modify and read a bundle path; when returning null by default, the method reads the bundle in the asset, and when updating, returns the bundle file path under the writable directory.
In step 1), adding repair function codes to all classes and methods specifically includes the following steps:
(1) implementing a Gradle plug of Transform by using Groovy language to analyze corresponding annotation (the modified method needs to add @ Modify annotation, and all modified classes are obtained through the annotation);
(2) and modifying class bytecode and inserting repair codes by adopting an ASM framework, processing a class file by using api in an ASM package, using a ClassVisitor as an operation class and using a MethodVisitor as an operation method.
Furthermore, the code obfuscation and the optimized packet size in the step 2) both use the idea of ProGuard; the method for solving the code confusion is that a patch package is generated aiming at the code before confusion, then the class in the application package is processed on a character string by utilizing the mapping relation of the class corresponding to the mapping file generated during formal packaging, and the class in the application package uses the confused class name in the running environment; optimizing the package size is to map all methods with int values uniquely during compilation, save all mapping relations into a single file, and read the corresponding methods only through the mapping file. Because the method character strings in the byte codes are in a descriptor form and have longer length, the number of the character strings can be obviously reduced by the method, and the size of an application packet is further reduced; meanwhile, if it is confirmed that some classes are absolutely not abnormal, the $ change field is not needed to be added to the class, and repair logic is not needed to be added to the method in the class. Through the two modes, the problem of increasing character strings is obviously optimized, and the problem of increasing packet sizes is well solved.
Furthermore, in step 3), the Instant compiling technology Instant Run can Run the modified code without restarting the App, so that the compiling speed is greatly increased, and the time for reconstructing and deploying the application is reduced; and realizing the incremental patch package by referring to the principle of Instant Run, obtaining a patch.jar patch package by using RocooFix, comparing application files of two versions by using bsdiff to obtain a difference file, downloading the patch file by a client, combining the patch file and the local application file by using a bsmatch command to obtain a new version, and storing the new version in a user-defined directory.
Further, the hot loading manner used in step 4) is to hot load the js code, wherein the hot load js code needs to empty the ReactInstanceManager configuration and restart the activity after decompression; for java codes, based on step 1), hot repair function codes are inserted into each function in the compiling stage, when packing is applied, a static field $ change is inserted into each class, and after a patch package is issued, a new DexClassLoader is used for loading, and then a loadClass method is called to realize: firstly, obtaining all class information needing to be repaired through a patch package, loading the repair classes by using a loadClass method, calling a newInstance method to obtain an instance object of the repair classes, then circularly taking each class to be modified through reflection, and assigning $ change fields in the badClass into newly created instances of the repair classes, thereby being capable of repairing badMethod in real time.
Furthermore, the optimization step 4) in step 5) needs to optimize the performance problem caused by the assignment of the $ change field through reflection, which is realized by using a global Lru Cache to store and search the reflected field and method on the basis of referring to the Instant Run scheme, so as to ensure that the reflection is called only once as far as possible.
Furthermore, the method of repairing the resource file in step 6) needs to be changed to getpothInAs, each time of updating only needs to package the modified and newly added resource file, and store all the modified and newly added file names in a custom array, if the accessed file name is in the array, the picture resource is searched from the directory where the offline script is located, otherwise, the picture resource is searched from the asset, so that the hot updating of the resource file is realized, and the file downloading flow of the user is reduced.
Compared with the prior art, the invention has the following advantages and beneficial effects:
1. the invention provides an incremental updating method for the real Native integrated android project, can quickly repair found problems, saves user flow, is not only helpful for developers, but also has important significance for improving application experience.
ProGuard is a tool for obfuscating code and can be used to compress and optimize code. Because the java code is very easy to decompile and the android is written by using the java code, the invention uses ProGuard tools to confuse the java code in order to protect the labor result of a developer. Code obfuscation essentially translates computer program code into a form that is difficult to read and understand, but functionally equivalent to the original program. The invention also uses ProGuard tool to compress the application, and uses it to remove useless code and delete useless comments, to optimize the apk packet size.
bsdiff is a delta packet comparison tool that can implement incremental updates of an application. And comparing the two files by using a bsdiff command to obtain a delta file with the patch as a suffix name, detecting, updating and downloading the delta file by applying detection, and generating a new file by using a bspatch command with the local file.
Gradle is an automatic construction tool and is a mainstream compiling tool for the current Android project. As an intelligent construction system, Gradle inherits many characteristics of Ant and Maven and has the following characteristics: 1) better combines with Android Studio IDE; 2) the configuration is simple, the expansion is easy, and a custom compiling process is supported; 3) the construction of different versions and multi-channel automatic packaging are easier to realize; 4) code confusion, item dependence addition and the like are very convenient; 5) code and resources can be easily reused. For some simple programs, compiling, packaging and running can be finished by using Android Studio without configuring any code.
ASM is a very comprehensive Java bytecode manipulation framework that aims to generate, transform, and parse compiled Java classes represented in byte arrays, and can dynamically change class behavior before the classes are loaded into a virtual machine, so as to modify or directly produce binary class files, and implement work targeting bytecode operations such as code generation, code obfuscation, code translation, and the like. Since the Java virtual machine specification specifies the format to which a class file should conform, and all Java classes are stored strictly in the class file according to this specification, it is sufficient for ASM to parse all elements in a class, including class name, method, and bytecode instructions. Unlike the implementation of AspectJ on a pure Java code level, the ASM library is an abstraction of a bottom byte code level, the requirement on a developer is higher, byte code and Java virtual machine related knowledge are required, and the difficulty in maintenance is increased. But also because of this, the operation efficiency is faster than that of other frameworks, and the application monitoring function based on the non-buried point is more suitable for being used so as not to influence the normal operation performance of the application.
2. The invention adopts the incremental updating method, saves the user flow and improves the user experience; according to the invention, the patch package is loaded through the DexClassLoader, so that the compatibility and the stability are better, and the preverify problem caused by a similar loading scheme does not exist; the invention uses the hot update mechanism of Instant Run for reference, can take effect immediately and does not need to restart the application; the invention supports the repair of method level, supports newly added methods and classes, and supports the repair of resource files.
3. The invention refers to the principle of Instant Run, a thermal restoration dynamic loading mode and a script loading mechanism of real Native, realizes a thermal restoration framework with stronger compatibility and real-time effect, can restore online bugs and update resource files at any time without releasing a new version, has no invasion to codes, solves the problems of larger volume of a compressed bag, longer updating time, more flow waste of users and the like by introducing an incremental updating method, and greatly reduces the cost of application updating.
Drawings
FIG. 1 is a flowchart of an incremental update method for an integrated android application according to the present invention.
FIG. 2 is a block diagram of a thermal remediation scheme implementation of the present invention.
Fig. 3 is a flow chart of patch delivery and repair according to the present invention.
Detailed Description
The present invention will be described in further detail with reference to examples and drawings, but the present invention is not limited thereto.
As shown in fig. 1, an incremental update method for integrating android applications is further described in detail for an embodiment of the present invention based on a real Native, and includes the following steps:
step 1), for a Native android project, integrating the Native android project into a real Native framework according to a method provided by a real Native official website, and mainly comprising the following steps: (1) and configuring the real Native dependence and project structure. (2) And (4) creating a js file and writing a js code of the React Native component. (3) Add an RCTRootView in the application. This RCTRootView is the container that is used to carry your React Native components. (4) And starting the Packager service of the real Native and running the application. (5) And verifying whether the part of the components work normally.
And 2) inserting a code for acquiring the latest patch package into the project, storing the patch package into a getFilesDir (). getABsolutePath () directory, changing a read bundle path into a getFilesDir (). getABsolutePath () directory by using a getJSBNDeFile method provided by the React Native, reading a bundle file under the directory each time the APP is updated, and then, downloading, decompressing and covering the bundle file by using a new version of the bundle file.
Step 3), repairing the function code includes adding a $ change field for the class and repairing logic for the methods therein. The method for adding the repair function code to all classes and methods comprises the following steps: (1) implementing a Gradle plug of Transform by using Groovy language to analyze corresponding annotation (the modified method needs to add @ Modify annotation, and all modified classes are obtained through the annotation); (2) the method is characterized in that an ASM framework is adopted to modify class bytecode and insert repair code, an api in an ASM package is mainly used for processing a class file, a ClassVisitor is used as an operation class, and a MethodVisitor is used as an operation method.
Step 4), in order to protect the Java source code well, we need to confuse the compiled class file, rename classes, fields and methods by using short and meaningless names, remove codes which are not used in the read Native Java, and finally obtain a smaller APK file. Using Proguard to solve the code confusion problem and optimize the package size, enabling Proguard in the read Native, modifying android/app/build. def enableproguardireebuilds ═ true, and finally, the application is released.
And 5) realizing the incremental patch package by referring to the principle of Instant Run, obtaining the patch. And downloading the patch file by the client, merging the patch file with the local application file by using a bsmatch to obtain a new version bundle, and storing the new version bundle in a user-defined directory.
And 6), applying detection and update, downloading the incremental patch package, decompressing and checking, wherein as shown in FIG. 2, the hot-loading js code needs special processing, the processing is simple, and the ReactInstanceManager configuration is cleared and the activity is restarted after decompression. For java code, based on step 3), a hot repair function code may be inserted into each function in the compiling stage, and when packaging is applied, a static field $ change may be inserted into each class, as shown in fig. 3, after a patch package is issued, a new dexclassrloader is used for loading, and then a loadClass method is called for implementation. Firstly, obtaining all class information needing to be repaired through a patch package, loading the repair classes by using a loadClass method, calling a newInstance method to obtain an instance object of the repair classes, then circularly taking each class to be modified through reflection, and assigning $ change fields in the badClass into newly created instances of the repair classes, thereby being capable of repairing badMethod in real time.
Step 7), optimizing the performance problem caused by reflection: because the attributes of the original object are accessed in the generated substitution class, the problem of the access authority caused by reflection is necessarily involved. The Instant Run is handled in such a way that during compilation: 1) all protected and default access authority methods and fields are changed into public, and direct access can be achieved without reflection; 2) and for the private method, copying all the private methods of the repaired class into the reloaded class, and directly calling the private method of the reloaded class when the method in the reloading needs to call the private method of the HotFix class. However, for protected methods and fields of the frame layer (e.g. protected methods of activity), since the access right cannot be modified and can only be called by reflection, the private field also causes certain performance problems. On the basis of the reference Instant Run scheme, the following optimization method is adopted: and a field and a method which are reflected are stored and searched by using a global Lru Cache, so that the reflection is ensured to be called only once as much as possible.
And 8) realizing incremental updating of the resource file, wherein the getPAThInAchieve method needs to be changed, each updating only needs to pack the modified and newly added resource file, all the modified and newly added file names are stored in a custom array, if the accessed file name is in the array, the resource file is searched from the directory where the offline script is located, otherwise, the resource file is also searched from the asset, so that the thermal updating of the resource file is realized, and the file downloading flow of a user is reduced.
The above embodiments are preferred embodiments of the present invention, but the present invention is not limited to the above embodiments, and any other changes, modifications, substitutions, combinations, and simplifications which do not depart from the spirit and principle of the present invention should be construed as equivalents thereof, and all such changes, modifications, substitutions, combinations, and simplifications are intended to be included in the scope of the present invention.

Claims (8)

1. An incremental updating method for integrated android application is characterized by comprising the following steps based on reach Native:
1) inserting a code for acquiring the latest patch package in the project, changing a method for reading a bundle path, adding repair function codes to all classes and methods before converting the class file into a dex file in a compiling period, and preparing for incremental hot updating;
2) packaging the codes processed in the step 1), using a ProGuard tool to solve the problem of code confusion and optimize the size of the package, and finally using the package on line;
3) when the application in the step 2) has problems and needs to be updated, realizing an incremental patch package by referring to the principle of Instant Run of a just-in-time compilation technology, obtaining a patch.
4) Detecting and updating the application, downloading the incremental patch package and checking, and repairing the code with problems by using a hot loading mode so that the application can be repaired without restarting;
5) optimizing the performance problem caused by the fact that $ change fields need to be subjected to reflection assignment in the step 4), and storing and searching the reflected fields and method by using a global Lru Cache to ensure that reflection is only called once as much as possible;
6) when the needed resources cannot be found in the original apk, the path of reading the resource file by the application is changed to point to the self-defined patch package path, so that the purpose of incrementally loading the resources in the update package is achieved.
2. The incremental update method for the integrated android application of claim 1, wherein in step 1), the method for changing the read bundle path specifically comprises:
the method comprises the following steps that a bundle file in an installation package is under an asset directory, and the asset directory has no writing authority, so that the bundle file in the installation package cannot be modified, and a getJSBNDleFile method is provided by a reach Native to modify and read a bundle path; when returning null by default, the method reads the bundle in the asset, and when updating, returns the bundle file path under the writable directory.
3. The incremental update method for the integrated android application of claim 1, wherein in the step 1), the adding of the repair function code to all classes and methods specifically includes the following steps:
(1) implementing a Gradle plug of Transform by using a Groovy language to analyze corresponding annotations;
(2) and modifying class bytecode and inserting repair codes by adopting an ASM framework, processing a class file by using api in an ASM package, using a ClassVisitor as an operation class and using a MethodVisitor as an operation method.
4. The method for incrementally updating an integrated android application as recited in claim 1, wherein the code obfuscation and packet size optimization in step 2) both use the idea of ProGuard; the method for solving the code confusion is that a patch package is generated aiming at the code before confusion, then the class in the application package is processed on a character string by utilizing the mapping relation of the class corresponding to the mapping file generated during formal packaging, and the class in the application package uses the confused class name in the running environment; optimizing the package size is to map all methods with int values uniquely during compilation, save all mapping relations into a single file, and read the corresponding methods only through the mapping file.
5. The incremental updating method for the integrated android application of claim 1, wherein in step 3), the just-in-time compilation technology Instant Run can Run the modified code without restarting the App, thereby greatly improving the compilation speed and reducing the time for reconstructing and deploying the application; and realizing the incremental patch package by referring to the principle of Instant Run, obtaining a patch.jar patch package by using RocooFix, comparing application files of two versions by using bsdiff to obtain a difference file, downloading the patch file by a client, combining the patch file and the local application file by using a bsmatch command to obtain a new version, and storing the new version in a user-defined directory.
6. The method for incrementally updating an integrated android application as recited in claim 1, wherein the hot-loading manner is used to hot-load js code in step 4), wherein the hot-loading js code requires emptying the ReactInstanceManager configuration and restarting the activity after decompression; for java codes, based on step 1), hot repair function codes are inserted into each function in the compiling stage, when packing is applied, a static field $ change is inserted into each class, and after a patch package is issued, a new DexClassLoader is used for loading, and then a loadClass method is called to realize: firstly, obtaining all class information needing to be repaired through a patch package, loading the repair classes by using a loadClass method, calling a newInstance method to obtain an instance object of the repair classes, then circularly taking each class to be modified through reflection, and assigning $ change fields in the badClass into newly created instances of the repair classes, thereby being capable of repairing badMethod in real time.
7. The method for incrementally updating an integrated android application as recited in claim 1, wherein in step 5), the optimization step 4) requires performance problems caused by assignment of a $ change field through reflection, and is implemented by storing and searching a reflected field and method through a global Lru Cache on the basis of reference to an Instant Run scheme, so as to ensure that the reflection is called only once.
8. The incremental update method for integrated android applications as claimed in claim 1, wherein in step 6), the resource file needs to be repaired by changing a getPathInArchive method, each update only needs to package the modified and newly added resource files, and store all the modified and newly added file names in a custom array, if the accessed file name is in the array, the picture resource is searched from a directory where the offline script is located, otherwise, the picture resource is also searched from the asset, so that the thermal update of the resource file is realized, and the file download flow of the user is reduced.
CN201811219307.5A 2018-10-19 2018-10-19 Incremental updating method for integrated android application Active CN109491695B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811219307.5A CN109491695B (en) 2018-10-19 2018-10-19 Incremental updating method for integrated android application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811219307.5A CN109491695B (en) 2018-10-19 2018-10-19 Incremental updating method for integrated android application

Publications (2)

Publication Number Publication Date
CN109491695A CN109491695A (en) 2019-03-19
CN109491695B true CN109491695B (en) 2021-08-06

Family

ID=65692026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811219307.5A Active CN109491695B (en) 2018-10-19 2018-10-19 Incremental updating method for integrated android application

Country Status (1)

Country Link
CN (1) CN109491695B (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297655B (en) * 2019-06-21 2023-06-06 百度在线网络技术(北京)有限公司 Method, device, equipment and storage medium for generating patch package
CN110333892B (en) * 2019-06-28 2022-12-13 百度在线网络技术(北京)有限公司 Method, device and equipment for generating patch of application program and storage medium
CN110321135B (en) * 2019-06-28 2023-04-11 百度在线网络技术(北京)有限公司 Thermal restoration method, device, equipment and computer readable storage medium
CN110309655B (en) * 2019-07-05 2021-08-17 武汉绿色网络信息服务有限责任公司 Method and device for detecting safety in APP updating process
CN110162330B (en) * 2019-07-08 2021-04-13 上海赫千电子科技有限公司 System and method applied to automobile ECU (electronic control Unit) file upgrading
CN110543323A (en) * 2019-09-11 2019-12-06 北京搜狐新动力信息技术有限公司 Application program repairing method and device
CN110647348B (en) * 2019-09-20 2022-11-22 浪潮思科网络科技有限公司 Method and system for solving problem of difficult code maintenance caused by version differentiation
CN110941433B (en) * 2019-11-13 2022-03-22 佛山职业技术学院 Method and system for edge-assisted deployment of third party application to microcontroller
CN111061486B (en) * 2019-12-10 2022-06-24 杭州有赞科技有限公司 Android application program increment method
CN111352849B (en) * 2020-03-13 2023-05-16 杭州趣维科技有限公司 Mobile terminal code-free embedded point solving method
CN111596935A (en) * 2020-04-27 2020-08-28 五八有限公司 Script packing method and device, electronic equipment and storage medium
CN112286564A (en) * 2020-10-22 2021-01-29 上海艾拉比智能科技有限公司 Differential upgrade algorithm for binary system files of IOT (input/output) equipment
CN112328296B (en) * 2020-11-30 2024-04-02 北京百度网讯科技有限公司 Method, device, equipment and medium for updating software aiming at cross-platform application
CN112817624B (en) * 2021-01-28 2022-10-04 杭州衣科信息技术股份有限公司 Real Native-based gray scale heat deployment system
CN113268264A (en) * 2021-06-01 2021-08-17 广州欢网科技有限责任公司 Method and intelligent device for realizing Android hot update
CN113792026B (en) * 2021-08-11 2023-08-11 深圳力维智联技术有限公司 Method and device for deploying database script and computer-readable storage medium
CN113448611B (en) * 2021-08-31 2021-11-30 中邮消费金融有限公司 Method and system for quickly and thermally updating application program
US11822910B2 (en) 2021-10-14 2023-11-21 International Business Machines Corporation Reducing a delivery size of a software update
CN115544521B (en) * 2022-11-25 2023-03-03 神州灵云(北京)科技有限公司 Method and device for generating checksum of offline installation file

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701930A (en) * 2014-01-07 2014-04-02 浙江大学 Mobile application program real-time updating method and system
CN106919378A (en) * 2016-08-24 2017-07-04 阿里巴巴集团控股有限公司 Application based on increment updates and method of testing and system, server and client
CN107122662A (en) * 2017-04-12 2017-09-01 金陵科技学院 A kind of mobile Internet App Code obfuscation assessment methods based on Proguard softwares
CN107463405A (en) * 2017-08-04 2017-12-12 深圳市华傲数据技术有限公司 The update method and device of a kind of application program
CN107729041A (en) * 2017-07-26 2018-02-23 上海壹账通金融科技有限公司 The hot update method of application program, device, terminal and storage medium
CN108399080A (en) * 2018-03-05 2018-08-14 深圳市华讯方舟软件信息有限公司 A kind of hot update methods of Android App

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296323B2 (en) * 2016-02-02 2019-05-21 ZeroTurnaround AS System and method for fast initial and incremental deployment of apps

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701930A (en) * 2014-01-07 2014-04-02 浙江大学 Mobile application program real-time updating method and system
CN106919378A (en) * 2016-08-24 2017-07-04 阿里巴巴集团控股有限公司 Application based on increment updates and method of testing and system, server and client
CN107122662A (en) * 2017-04-12 2017-09-01 金陵科技学院 A kind of mobile Internet App Code obfuscation assessment methods based on Proguard softwares
CN107729041A (en) * 2017-07-26 2018-02-23 上海壹账通金融科技有限公司 The hot update method of application program, device, terminal and storage medium
CN107463405A (en) * 2017-08-04 2017-12-12 深圳市华傲数据技术有限公司 The update method and device of a kind of application program
CN108399080A (en) * 2018-03-05 2018-08-14 深圳市华讯方舟软件信息有限公司 A kind of hot update methods of Android App

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JavaScript in mobile applications: React native vs ionic vs NativeScript vs native development;Hugo Brito等;《 2018 13th Iberian Conference on Information Systems and Technologies (CISTI)》;20180616;全文 *
react_native在app开发中的应用研究;焦锋;《数字技术与应用》;20170615;全文 *
安卓应用软件测试信息智能监测系统设计;陆璐等;《现代电子技术》;20170715;第40卷(第14期);全文 *
移动应用的实时增量更新;尹茸;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140115;全文 *

Also Published As

Publication number Publication date
CN109491695A (en) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109491695B (en) Incremental updating method for integrated android application
CN106775723B (en) Android platform-based system firmware customization method and Android device
CN108229112B (en) Protection application program, and running method and device of application program
CN111090433B (en) Data processing method, device and storage medium
CN109614165B (en) Multi-version parallel operation method and device for COM (component object model) component
CN107451474B (en) Software bug fixing method and device for terminal
EP1782191B1 (en) Method for loading software with an intermediate object oriented language in a portable device
CN108229148B (en) Sandbox unshelling method and sandbox unshelling system based on Android virtual machine
CN109032631B (en) Application program patch package obtaining method and device, computer equipment and storage medium
CN110659031A (en) Compiling method and device of application program, electronic equipment and storage medium
CN110032425B (en) Dynamic link library file virtualization method, system and storage medium
CN110908677A (en) Method for optimizing size of Flutter application installation package and storage medium
CN113867768A (en) Operating system processing method and device, electronic equipment and storage medium
CN108536444B (en) Plug-in compiling method and device, computer equipment and storage medium
CN103942051B (en) Application dispositions method and device based on PAAS platforms
KR101863325B1 (en) Method and apparatus for preventing reverse engineering
CN113220314B (en) APP resource loading and APK generation method, device, equipment and medium
CN104978221A (en) Method and system for implementing downloading and deleting of program
CN115576560A (en) Hot reloading method, device, equipment and medium for dynamic loader
CN111367512B (en) Method and device for creating Android library module dependency relationship in application development
US9612808B1 (en) Memory use for string object creation
Golemon Extending and Embedding PHP
CN113641389A (en) Software upgrading method, device and equipment based on OpenCPU
CN111273940B (en) Method and device for uploading program file to code warehouse
CN117075960B (en) Program reconstruction method, application cross-platform migration method, device and computing 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
GR01 Patent grant
GR01 Patent grant