[发明专利]一种启动应用的控件加载方法及装置有效

专利信息
申请号: 201910067089.6 申请日: 2019-01-24
公开(公告)号: CN111552518B 公开(公告)日: 2023-04-07
发明(设计)人: 宋照春;贾晓婷;杨夕凯 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F9/445 分类号: G06F9/445
代理公司: 北京鼎佳达知识产权代理事务所(普通合伙) 11348 代理人: 王伟锋;刘铁生
地址: 英属开曼群岛大开*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 启动 应用 控件 加载 方法 装置
【说明书】:

发明公开了一种启动应用的控件加载方法及装置,涉及应用研发技术领域,主要目的在于在主Dex中利用代理组件替换应用启动所需的组件以确保应用成功启动。本发明主要的技术方案为:在主Dex中设置代理组件以及组件映射表,所述组件映射表中记录有所述代理组件与设置在辅助Dex中的应用组件的对应关系;在启动应用时,将应用中的类加载器替换为代理类加载器,所述代理类加载器用于在所有Dex优化完成前将启动应用所需加载的应用组件替换为对应的代理组件;利用优化完成的Dex中的应用组件替换应用加载的代理组件,以启动所述应用组件。

技术领域

本发明涉及应用研发技术领域,尤其涉及一种启动应用的控件加载方法及装置。

背景技术

随着应用不断迭代,业务线的扩展,App的功能越来越丰富,其编译包也就越来越大,在Android编译App的时候,很容易出现Dex文件方法数超过了最大值65536上限的错误。这是因为在Android系统中,一个APP的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多个Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。当Android系统启动一个应用的时候,需要对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt,DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODex文件,即Optimised Dex,因为执行ODex的效率会比直接执行Dex文件的效率要高很多,而DexOpt会把每一个类的方法id检索起来,存在一个链表结构里面,但是在Android5.0以下的大部分手机中这个链表的长度是用一个short类型来保存的,因为Dalvik的invoke-kind指令集中,method reference inDex只留了16bits,最多能引用65535个方法,导致了方法id的数目不能够超过65536个。所以Android IDE在编译项目的时候,限制了Dex的方法数,当一个项目足够大的时候,就会发生该错误。

为了解决上述的问题,常用的是multiDex的分包方案,当方法数超过65536的时候,生成多个Dex文件,把应用启动时必须用到的类和该类的直接引用类放到主Dex中,把其他类放到辅助Dex中。当应用启动之后,动态加载辅助Dex,从而避免出现方法数超出65536上限的问题。然而,这种分包方案并不能确保将所有应用启动必须的类放到主Dex中,而一旦出现该情况,在应用启动时,如果从主Dex中无法加载到启动所需的组件,而存储该组件的辅助Dex此时还未动态加载完成,那么该应用将会因为组件无法加载而导致启动失败。

发明内容

鉴于上述问题,本发明提出了一种启动应用的控件加载方法及装置,主要目的在于在主Dex中利用代理组件替换应用启动所需的组件以确保应用成功启动。

为达到上述目的,本发明主要提供如下技术方案:

一方面,本发明提供一种启动应用的控件加载方法,具体包括:

在主Dex中设置代理组件以及组件映射表,所述组件映射表中记录有所述代理组件与设置在辅助Dex中的应用组件的对应关系;

在启动应用时,将应用中的类加载器替换为代理类加载器,所述代理类加载器用于在所有Dex优化完成前将启动应用所需加载的应用组件替换为对应的代理组件;

利用优化完成的Dex中的应用组件替换应用加载的代理组件,以启动所述应用组件。

另一方面,本发明提供一种启动应用的控件加载装置,具体包括:

设置单元,用于在主Dex中设置代理组件以及组件映射表,所述组件映射表中记录有所述代理组件与设置在辅助Dex中的应用组件的对应关系;

类加载器替换单元,用于在启动应用时,将应用中的类加载器替换为代理类加载器,所述代理类加载器用于在所有Dex优化完成前将启动应用所需加载的应用组件替换为对应的代理组件;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910067089.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top