[发明专利]一种资源编译方法及装置有效
申请号: | 201710197894.1 | 申请日: | 2017-03-29 |
公开(公告)号: | CN107368292B | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 黄咏 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 吴绍群 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 资源 编译 方法 装置 | ||
1.一种资源编译方法,其特征在于,包括:
对工程进行全量资源编译,获得所述工程的各模块的资源索引类文件,以及确定各资源与资源标识的对应关系,所述资源索引类文件包含从资源标识到对应资源的索引;
在所述工程发生资源变更后,根据所述对应关系,对变更的资源进行编译,得到所述资源变更后的工程全量的资源索引类文件;
对所述各模块的资源索引类文件中,所述变更的资源所属模块的资源索引类文件进行处理,以使处理后的资源索引类文件中的类继承所述全量的资源索引类文件中的对应类。
2.如权利要求1所述的方法,其特征在于,所述确定各资源与资源标识的对应关系,具体包括:
通过所述全量资源编译,输出资源标识映射文件;
根据所述资源标识映射文件,确定各资源与资源标识的对应关系。
3.如权利要求1所述的方法,其特征在于,所述根据所述对应关系,对变更的资源进行编译,得到所述资源变更后的工程全量的资源索引类文件,具体包括:
根据所述对应关系,对变更的资源进行编译,在编译过程中,为所述变更的资源定义对应的资源标识,其中,无变更的资源对应的资源标识与为所述变更的资源定义的对应的资源标识不冲突;
根据无变更的资源对应的资源标识,以及为所述变更的资源定义的对应的资源标识,得到所述资源变更后的工程全量的资源索引类文件。
4.如权利要求3所述的方法,其特征在于,所述根据所述对应关系,对变更的资源进行编译,在编译过程中,为所述变更的资源定义对应的资源标识,具体包括:
根据所述对应关系,对变更的资源进行编译,在编译过程中,为所述变更的资源定义对应的资源标识,其中,无变更的资源对应的资源标识保持不变。
5.如权利要求1所述的方法,其特征在于,所述对所述各模块的资源索引类文件中,所述变更的资源所属模块的资源索引类文件进行处理,具体包括:
去除所述全量的资源索引类文件中的类所具有的使所述类无法被继承的代码关键词;
对所述各模块的资源索引类文件中,所述变更的资源所属模块的资源索引类文件中的静态类执行:
确定所述静态类在去除了所述使所述类无法被继承的代码关键词的全量的资源索引类文件中资源类型匹配的类;
根据用于实现类继承的代码关键词,以及所述资源类型匹配的类的路径,对所述静态类进行修改,以使修改后的静态类继承所述资源类型匹配的类。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
缓存通过资源编译生成的资源索引类文件;
当有用于替换已缓存资源索引类文件的资源索引类文件生成时,检测所述用于替换的资源索引类文件相比于替换对象是否内容发生变化,若否且所述替换对象已实现应用,则不对所述用于替换的资源索引类文件实现应用。
7.如权利要求6所述的方法,其特征在于,所述不对所述用于替换的资源索引类文件实现应用,具体包括:
在所述用于替换的资源索引类文件对应的工程的编译期内,不为所述用于替换的资源索引类文件生成对应的编译产物。
8.如权利要求1~7任一项所述的方法,其特征在于,所述工程为Android工程,所述资源索引类文件为R.java文件。
9.一种资源编译装置,其特征在于,包括:
第一编译模块,对工程进行全量资源编译,获得所述工程的各模块的资源索引类文件,以及确定各资源与资源标识的对应关系,所述资源索引类文件包含从资源标识到对应资源的索引;
第二编译模块,在所述工程发生资源变更后,根据所述对应关系,对变更的资源进行编译,得到所述资源变更后的工程全量的资源索引类文件;
处理模块,对所述各模块的资源索引类文件中,所述变更的资源所属模块的资源索引类文件进行处理,以使处理后的资源索引类文件中的类继承所述全量的资源索引类文件中的对应类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710197894.1/1.html,转载请声明来源钻瓜专利网。