[发明专利]安装包编译方法、装置、电子设备及可读存储介质有效
申请号: | 201910739317.X | 申请日: | 2019-08-12 |
公开(公告)号: | CN110442347B | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 黄伟武 | 申请(专利权)人: | 广州虎牙科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53;G06F8/61 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 张欣欣 |
地址: | 511400 广东省广州市番禺*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 安装 编译 方法 装置 电子设备 可读 存储 介质 | ||
1.一种安装包编译方法,其特征在于,应用于电子设备,所述方法包括:
在检测到针对任一开发项目的编译操作时,获取该开发项目对应的编译更新数据,所述编译更新数据包括代码更新数据和资源更新数据二者中的至少一种;
根据该开发项目对应的编译更新数据判断该编译操作是否为首次操作;
若该编译操作不是首次操作,则获取所述代码更新数据对应的代码依赖源,并根据所述代码依赖源将所述代码更新数据更新到该开发项目的待编译安装包的反编译数据中,和/或将所述资源更新数据更新到该开发项目的待编译安装包的反编译数据中;
所述根据所述代码依赖源将所述代码更新数据更新到该开发项目的待编译安装包的反编译数据中的步骤,包括:
根据所述代码依赖源对所述代码更新数据进行编译,生成Class文件;
将所述Class文件转换为Dex文件;
对所述Dex文件进行反编译,得到对应的第一Smali文件;
对该开发项目的待编译安装包进行反编译,得到该开发项目的待编译安装包的反编译数据,所述反编译数据包括多个Smali文件夹;
获取预先确定的哈希表,所述哈希表包括每个Dex文件对应的Smali文件夹以及每个Smali文件夹对应的至少一个Smali文件;
从所述哈希表中查找与所述Dex文件对应的Smali文件夹作为目标Smali文件夹;
将所述第一Smali文件更新到所述目标Smali文件夹中。
2.根据权利要求1所述的安装包编译方法,其特征在于,所述根据该开发项目对应的编译更新数据判断该编译操作是否为首次操作的步骤,包括:
判断该开发项目的项目开发数据中是否存在与该编译更新数据关联的编译数据;
若该开发项目的项目开发数据中存在与该编译更新数据关联的编译数据,则判定该编译操作不是首次操作,否则判定该编译操作为首次操作。
3.根据权利要求1所述的安装包编译方法,其特征在于,所述获取所述代码更新数据对应的代码依赖源的步骤,包括:
获取所述代码更新数据在该开发项目中对应的项目目录;
从所述项目目录中获取与所述代码更新数据关联的目标Class文件,将该目标Class文件确定为所述代码更新数据对应的代码依赖源。
4.根据权利要求3所述的安装包编译方法,其特征在于,所述目标Class文件为与所述代码更新数据关联的第一次编译操作生成的Class文件,或者本次检测到的编译操作的上一次编译操作生成的Class文件。
5.根据权利要求1所述的安装包编译方法,其特征在于,所述将所述第一Smali文件更新到所述目标Smali文件夹中的步骤,包括:
将所述目标Smali文件夹中上一次编译得到的第二Smali文件替换为所述第一Smali文件;或者
将所述第一Smali文件作为新增Smali文件添加到所述目标Smali文件夹中。
6.根据权利要求1-4中任意一项所述的安装包编译方法,其特征在于,所述将所述资源更新数据更新到该开发项目的待编译安装包的反编译数据中的步骤,包括:
将该开发项目的待编译安装包进行反编译,得到反编译数据,所述反编译数据包括资源数据文件夹;
将所述资源数据文件夹中与所述资源更新数据对应的上一次编译的资源文件替换为所述资源更新数据;或者
将所述资源更新数据作为新增资源数据添加到所述资源数据文件夹中。
7.根据权利要求1所述的安装包编译方法,其特征在于,所述方法还包括:
将包括更新后的反编译数据进行重打包处理,得到重打包安装包;
对所述重打包安装包进行签名,得到编译后的安装包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州虎牙科技有限公司,未经广州虎牙科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910739317.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于编译器代码检测的规则扩充方法
- 下一篇:基于微服务架构的同名类转换方法