CN105278989B - Apk文件的快速加载方法 - Google Patents
Apk文件的快速加载方法 Download PDFInfo
- Publication number
- CN105278989B CN105278989B CN201510657289.9A CN201510657289A CN105278989B CN 105278989 B CN105278989 B CN 105278989B CN 201510657289 A CN201510657289 A CN 201510657289A CN 105278989 B CN105278989 B CN 105278989B
- Authority
- CN
- China
- Prior art keywords
- file
- dex
- odex
- apk
- files
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种APK文件的快速加载方法,包括以下步骤:S1、解压所述APK文件并提取其中的DEX文件,将所述DEX文件压缩成JAR文件,其中所述DEX文件的数量为多个,文件名分别为classes2.dex,classes3.dex,…classesN.dex;S2、初始化一个VM(虚拟机),所述VM将至少一个所述DEX文件制作成ODEX文件,并且在ODEX文件的制作过程中对DEX文件中包含的零个类进行验证和优化;S3、所述VM调用函数DexFile.loadDex()加载所述ODEX文件,这种APK文件的快速加载方法在制作ODEX文件时省略了验证和优化的过程,而是将验证和优化的过程安排在加载ODEX文件发生异常时进行,不仅能够将DEX文件更快地加载到操作系统中,应用启动快,界面显示及时,提升了用户体验,而且不会影响应用软件的正常运行,机器性能也得到更好的发挥。
Description
技术领域
本发明涉及移动终端应用软件技术领域,尤其涉及一种APK文件的快速加载方法。
背景技术
APK(Android PacKage)的缩写即Android安装包。将APK文件(即APK应用程序)直接传到Android模拟器或Android操作系统的终端设备(比如安卓智能手机)中执行即可安装。APK文件其实是zip格式,但后缀名被修改为apk,在windows系统上可以通过解压缩工具(比如winrar软件)直接解压查看。解压APK文件后,一般的可看到的目录
结构如下表所示:
其中classes.dex文件内包含可执行代码,较早的Android操作系统版本只支持一个DEX文件,但是随着硬件性能提高,应用的执行代码越来越庞大,一个DEX文件已经无法满足需求,所以在最新的Android5.0版操作系统中原生支持加载多个DEX文件(classes.dex,classes2.dex,…classesN.dex)。现有的多DEX加载方案的工作流程如下:
1)启动时检查当前Android系统的版本,如果大于Android5.0版本,流程结束,否则进入下一步;
2)遍历APK文件中所包含的文件,找到所包含的DEX文件。因为Android系统只能加载JAR文件(文件名以“.jar”结尾的ZIP文件,里面包含classes.dex),所以将APK中的DEX文件解压后重新压缩成ZIP文件。
3)对解压出的DEX文件逐个调用Android系统提供的DexFile.loadDex()函数,将DEX加载到系统,并添加到已加载DEX的列表中。
这种加载方式消耗的时间过长,导致应用启动缓慢,长时间无法显示出界面,用户体验差。
发明内容
本发明要解决的技术问题是:为了解决现有的APK文件的加载方法消耗的时间过长,导致应用启动缓慢,长时间无法显示出界面,用户体验差的问题,本发明提供了一种APK文件的快速加载方法来解决上述问题。
本发明解决其技术问题所采用的技术方案是:一种APK文件的快速加载方法,包括以下步骤:
S1、解压所述APK文件并提取其中的DEX文件,将所述DEX文件压缩成JAR文件,其中所述DEX文件的数量为多个,文件名分别为classes2.dex,classes3.dex,…classesN.dex;
S2、初始化一个VM(虚拟机),所述VM将至少一个所述DEX文件制作成ODEX文件,并且在ODEX文件的制作过程中对DEX文件中包含的零个类进行验证和优化;
S3、所述VM调用函数DexFile.loadDex()加载所述ODEX文件。
作为优选,在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述VM则对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
作为优选,在所述步骤S3中,如果加载时出现异常的ODEX文件通过验证,所述VM则对此ODEX文件进行优化。
作为优选,所述VM为Dalvik VM,在所述步骤S2中,所述Dalvik VM调用函数dexopt将DEX文件制作成ODEX文件。
作为优选,在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述DalvikVM调用函数dexopt对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
作为优选,如果加载时出现异常的ODEX文件通过验证,所述Dalvik VM调用函数dexopt对此ODEX文件进行优化。
作为优选,所述VM为ART VM,在所述步骤S2中,所述ART VM调用函数dex2oat将DEX文件制作成ODEX文件。
作为优选,在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述ART VM调用函数dex2oat对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
作为优选,如果加载时出现异常的ODEX文件通过验证,所述ART VM调用函数dex2oat对此ODEX文件进行优化。
作为优选,在所述APK文件的文件结构中所述文件
classes2.dex,classes3.dex,…classesN.dex分别对应一个Central directoryfile、一个Local file header和一个数据内容,在所述步骤S1中,所述文件classes2.dex压缩成JAR文件的具体步骤为:首先复制所述文件classes2.dex对应的Central directoryfile、Local file header和数据内容并且将它们构成JAR文件的文件结构,然后将Centraldirectory file中的文件名修改为classes.dex,最后调整Central directory file中的指针指向Local file header;
所述文件classes3.dex,classes4.dex…classesN.dex压缩成JAR文件的具体步骤与所述文件classes2.dex压缩成JAR文件的具体步骤一致。
本发明的有益效果是,这种APK文件的快速加载方法在制作ODEX文件时省略了验证和优化的过程,而是将验证和优化的过程安排在加载ODEX文件发生异常时进行,不仅能够将DEX文件更快地加载到操作系统中,减少加载所消耗的时间,应用启动快,界面显示及时,提升了用户体验,而且不会影响应用软件的正常运行,机器性能也得到更好的发挥。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的一种APK文件的快速加载方法的实施例一的流程图。
图2是本发明的一种APK文件的快速加载方法的实施例四的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
实施例一,
如图1所示,本发明提供了一种APK文件的快速加载方法,包括以下步骤:
S1、解压APK文件并提取其中的DEX文件,将DEX文件压缩成JAR文件,其中DEX文件的数量为多个,文件名分别为classes2.dex,classes3.dex,…classesN.dex;
S2、初始化一个VM(虚拟机),VM将至少一个DEX文件制作成ODEX文件,并且在ODEX文件的制作过程中对DEX文件中包含的零个类进行验证和优化;
S3、VM调用函数DexFile.loadDex()加载ODEX文件。
VM调用函数DexFile.loadDex()加载DEX文件时,首先会检查DEX文件对应的ODEX文件是否已经存在,如果已经存在则直接进行加载。现有技术中ODEX文件的制作过程中最主要的是验证和优化的DEX,其中验证过程涉及到每个DEX文件中的所有类和类中的所有方法中的指令,目标是检查非法指令序列,验证通过再进行优化,优化和验证虽然可以保证程序安全高效的运行,但是它们也是最消耗性能,导致应用长时间无法响应,降低用户体验原因所在;其实DEX文件不经过验证和优化也可以正常执行,因此本发明的提供一种APK文件的快速加载方法在VM调用函数DexFile.loadDex()加载ODEX文件之前快速制作ODEX文件,其中通过自定义参数在ODEX文件的制作过程中取消了验证和优化两个步骤,进而大大降低了加载DEX文件所消耗的时间。
前期省略了验证和优化两个步骤可能会导致程序在运行时出现异常状态,如果一个ODEX文件在加载时出现异常,VM则对此ODEX文件中包含的所有类进行验证,寻找非法指令序列;如果验证不通过,说明ODEX文件中有非法指令序列,则产出错误报告,如果ODEX文件通过验证,说明不存在非法指令,那么考虑到有些大型应用软件对硬件配置的要求较高,而机器本身硬件上的不足,在执行未优化的ODEX文件时较为吃力,那么VM则对此ODEX文件进行优化。
实施例二,
在Dalvik运行模式下,虚拟机为Dalvik VM,在步骤S2中,Dalvik VM调用函数dexopt将DEX文件制作成ODEX文件,而在步骤S3中,如果一个ODEX文件在加载时出现异常,Dalvik VM调用函数dexopt对此ODEX文件中包含的所有类进行验证,寻找非法指令序列,如果加载时出现异常的ODEX文件通过验证,Dalvik VM调用函数dexopt对此ODEX文件进行优化。Dalvik VM做的优化主要包含下面这些:
1)对于虚方法的调用,把方法索引修改成vtable索引。
2)把field的get/put修改成字节偏移量。把boolean/byte/char/short等类型的变量合并到一个32‐bit的形式,更少的代码可以更有效地利用CPU的I‐cache。
3)把一些大量使用的简单方法进行inline,这样能减少方法调用的开销。
4)删除空方法。
5)加入一些计算好的数据,比如,Dalvik VM需要一个hash table来查找类名字,我们就可以在优化阶段进行计算,不用放到DEX加载的时候了。
实施例三,
Google在Android4.4中新增加了ART(Android Run Time)用来替代之前的Dalvik,在ART的运行模式下,VM为ART VM,在步骤S2中,ART VM调用函数dex2oat将DEX文件制作成ODEX文件;在步骤S3中,如果一个ODEX文件在加载时出现异常,ART VM调用函数dex2oat对此ODEX文件中包含的所有类进行验证,寻找非法指令序列;如果加载时出现异常的ODEX文件通过验证,ART VM调用函数dex2oat对此ODEX文件进行优化。ART VM与DalvikVM不同之处在于,Dalvik VM执行的是DEX字节码,这意味着Dalvik VM包含有一个解释器,用来执行DEX字节码,Dalvik VM在运行时动态地将执行频率很高的DEX字节码翻译成本地机器码,然后再执行;ART VM执行的是本地机器码,而将DEX文件翻译成本地机器码的过程正是调用函数dex2oat对DEX文件进行优化的过程,一般在应用软件进行安装和系统启动时,ART VM会对APK文件中的主DEX文件(一般是classes.dex)进行翻译,其余的与Dalvik环境下DEX文件的加载方式类似,是在应用软件运行时才会进行翻译。
实施例四,
应用软件启动慢,界面显示不及时的另外一个原因在于现有的方案中,先将DEX文件从APK文件中解压出来,然后又重新压缩成JAR文件,解压与压缩消耗了大量性能;因为APK和JAR都是属于ZIP文件,具有类似的文件结构,具体来说,ZIP文件结构主要包括索引区域和内容区域,ZIP文件中的每一个文件都对应索引区域中的一个Central directoryfile header(中央目录文件头),Central directory file header描述的基本信息如文件名、文件原始大小、压缩方式、压缩后大小、校验和等,另外这个结构还包含一个指针,指向内容区域的Local file header(局部文件头),Local file header同样包含的文件的基本信息,紧随其后的是压缩过的数据内容,那么在APK文件的文件结构中文件classes2.dex,classes3.dex,…classesN.dex分别对应一个Central directory file、一个Local fileheader和一个数据内容,如图2所示,本发明提供的一种APK文件的快速加载方法的实施例四中使用了一种DEX文件快速提取并压缩的方法,以文件classes2.dex为例具体说明:首先复制文件classes2.dex对应的Central directory file、Local file header和数据内容并且将它们构成JAR文件的文件结构,然后将Central directory file中的文件名修改为classes.dex,最后调整Central directory file中的指针指向Local file header;文件classes3.dex,classes4.dex…classesN.dex压缩成JAR文件的具体步骤与文件classes2.dex压缩成JAR文件的具体步骤一致;通过这种方法能极大的降低解压和压缩所消耗的性能,提升APK文件的加载速度。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (10)
1.一种APK文件的快速加载方法,其特征在于:包括以下步骤:
S1、解压所述APK文件并提取其中的DEX文件,将所述DEX文件压缩成JAR文件,其中所述DEX文件的数量为多个,文件名分别为classes2.dex,classes3.dex,…classesN.dex;
S2、初始化一个VM(虚拟机),所述VM将至少一个所述DEX文件制作成ODEX文件,并且在ODEX文件的制作过程中对DEX文件中包含的所有类均不进行验证和优化;
S3、所述VM调用函数DexFile.loadDex()加载所述ODEX文件。
2.如权利要求1所述的APK文件的快速加载方法,其特征在于:在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述VM则对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
3.如权利要求2所述的APK文件的快速加载方法,其特征在于:在所述步骤S3中,如果加载时出现异常的ODEX文件通过验证,所述VM则对此ODEX文件进行优化。
4.如权利要求1所述的APK文件的快速加载方法,其特征在于:所述VM为Dalvik VM,在所述步骤S2中,所述Dalvik VM调用函数dexopt将DEX文件制作成ODEX文件。
5.如权利要求4所述的APK文件的快速加载方法,其特征在于:在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述Dalvik VM调用函数dexopt对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
6.如权利要求5所述的APK文件的快速加载方法,其特征在于:如果加载时出现异常的ODEX文件通过验证,所述Dalvik VM调用函数dexopt对此ODEX文件进行优化。
7.如权利要求1所述的APK文件的快速加载方法,其特征在于:所述VM为ART VM,在所述步骤S2中,所述ART VM调用函数dex2oat将DEX文件制作成ODEX文件。
8.如权利要求7所述的APK文件的快速加载方法,其特征在于:在所述步骤S3中,如果一个ODEX文件在加载时出现异常,所述ART VM调用函数dex2oat对此ODEX文件中包含的所有类进行验证,寻找非法指令序列。
9.如权利要求8所述的APK文件的快速加载方法,其特征在于:如果加载时出现异常的ODEX文件通过验证,所述ART VM调用函数dex2oat对此ODEX文件进行优化。
10.如权利要求1~9任一项所述的APK文件的快速加载方法,其特征在于:在所述APK文件的文件结构中所述文件classes2.dex,classes3.dex,…classesN.dex分别对应一个Central directory file、一个Local file header和一个数据内容,在所述步骤S1中,所述文件classes2.dex压缩成JAR文件的具体步骤为:首先复制所述文件classes2.dex对应的Central directory file、Local file header和数据内容并且将它们构成JAR文件的文件结构,然后将Central directory file中的文件名修改为classes.dex,最后调整Central directory file中的指针指向Local file header;
所述文件classes3.dex,classes4.dex…classesN.dex压缩成JAR文件的具体步骤与所述文件classes2.dex压缩成JAR文件的具体步骤一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510657289.9A CN105278989B (zh) | 2015-10-12 | 2015-10-12 | Apk文件的快速加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510657289.9A CN105278989B (zh) | 2015-10-12 | 2015-10-12 | Apk文件的快速加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105278989A CN105278989A (zh) | 2016-01-27 |
CN105278989B true CN105278989B (zh) | 2018-04-06 |
Family
ID=55148044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510657289.9A Active CN105278989B (zh) | 2015-10-12 | 2015-10-12 | Apk文件的快速加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105278989B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997294A (zh) * | 2016-01-26 | 2017-08-01 | 中兴通讯股份有限公司 | odex文件生成方法及装置 |
CN105975311B (zh) | 2016-05-09 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
CN106066686B (zh) * | 2016-05-31 | 2019-02-05 | Oppo广东移动通信有限公司 | 一种信息处理方法及终端设备 |
CN106055363B (zh) | 2016-05-31 | 2017-11-14 | 广东欧珀移动通信有限公司 | 一种识别文件的方法及移动终端 |
CN106250180B (zh) * | 2016-07-27 | 2019-10-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种odex优化控制方法及移动终端 |
CN106648740A (zh) * | 2016-10-18 | 2017-05-10 | 努比亚技术有限公司 | 一种可执行文件的加载方法及终端 |
CN106528255B (zh) * | 2016-12-19 | 2019-07-12 | 北京小米移动软件有限公司 | 类加载方法及装置 |
CN107193544B (zh) * | 2017-04-01 | 2021-01-15 | 北京五八信息技术有限公司 | 一种应用程序组件化开发方法及装置 |
CN107015816A (zh) * | 2017-05-25 | 2017-08-04 | 微鲸科技有限公司 | 操作系统升级方法、装置及一种智能终端 |
CN108415737B (zh) * | 2018-02-07 | 2021-11-19 | 北京奇虎科技有限公司 | 一种在虚拟机中加载插件的方法及电子终端 |
CN108897588B (zh) * | 2018-07-09 | 2021-08-13 | 广州市千钧网络科技有限公司 | 一种用于模块间通信的路由方法和路由装置 |
CN111273955B (zh) * | 2020-01-16 | 2024-01-19 | 惠州Tcl移动通信有限公司 | 热修复插件优化方法、装置、存储介质及电子设备 |
CN111240766B (zh) * | 2020-01-22 | 2023-12-29 | 抖音视界有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
CN111782226A (zh) * | 2020-06-24 | 2020-10-16 | 长沙摩智云计算机科技有限公司 | 一种直捷安装安卓应用的方法、系统、设备及介质 |
CN112306570A (zh) * | 2020-10-14 | 2021-02-02 | 华帝股份有限公司 | 一种Android APP快速启动的方法、Android终端及存储介质 |
CN113741993B (zh) * | 2021-06-15 | 2022-07-01 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
KR101518420B1 (ko) * | 2014-11-11 | 2015-05-07 | 주식회사 에스이웍스 | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520733B (zh) * | 2008-02-27 | 2014-04-16 | 国际商业机器公司 | 装载类的方法和装置及重组类存档文件方法 |
-
2015
- 2015-10-12 CN CN201510657289.9A patent/CN105278989B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
KR101518420B1 (ko) * | 2014-11-11 | 2015-05-07 | 주식회사 에스이웍스 | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN105278989A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105278989B (zh) | Apk文件的快速加载方法 | |
US10204108B2 (en) | Method and apparatus for manufacturing file system update package, method and apparatus for updating file system update package, and terminal | |
CN103955363B (zh) | 一种程序升级安装包的制作方法 | |
US8719810B2 (en) | Program upgrade system and method for over the air-capable mobile terminal | |
CN103294563B (zh) | 一种对安装单元进行版本冲突检查的方法和系统 | |
US10452376B2 (en) | Method for identifying file and mobile terminal | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
US10922213B2 (en) | Embedded quality indication data for version control systems | |
CN104765816B (zh) | 浏览器的升级方法、装置和电子设备 | |
US20180225098A1 (en) | Systems and methods for producing launchers for a mobile terminal | |
CN104866324A (zh) | 一种便携操作系统构建方法及便携存储器 | |
CN104615463A (zh) | 一种系统属性设置方法及终端 | |
CN107766130A (zh) | 虚拟机向容器迁移的方法和装置 | |
US9513762B1 (en) | Static content updates | |
KR101882759B1 (ko) | 안정된 바이너리 식별 방법 및 장치 | |
JP2015513139A (ja) | ワイヤレス・ハンドヘルド・デバイス起動方法及びワイヤレス・ハンドヘルド・デバイス | |
US9141385B2 (en) | Managing operating system components | |
JP2009199321A (ja) | 関連性検査装置、関連性検査方法、及び関連性検査プログラム | |
CN101271399A (zh) | 在嵌入式系统剪裁可重定位的elf文件的方法 | |
US11775290B2 (en) | Detection of API backward compatibility across software versions | |
CN102169446B (zh) | 一种基于开源系统基本输入输出系统的bios系统和方法 | |
CN108958814A (zh) | 一种多模冗余的嵌入式操作系统启动方法 | |
KR102226379B1 (ko) | 일종의 시스템 펌웨어의 버닝 스피드 향상 방법 | |
CN106997364A (zh) | 一种终端的应用资源检测方法及装置 | |
CN113204558B (zh) | 数据表结构自动更新方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170904 Address after: 100084, Beijing, Haidian District on the road No. 26, room 0921, room 9 Applicant after: Beijing top image technology Co., Ltd. Address before: Jianye Yunjin Road District of Nanjing City, Jiangsu Province, No. 186 7-2-1204 211100 Applicant before: Qiu Yinfeng |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |