[发明专利]一种打包APK文件的方法、加载Bundle文件的方法及系统在审

专利信息
申请号: 201610149902.0 申请日: 2016-03-16
公开(公告)号: CN107203524A 公开(公告)日: 2017-09-26
发明(设计)人: 刘欢;刘文荣;屠寅海 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京国昊天诚知识产权代理有限公司11315 代理人: 黄熊
地址: 英属开曼群岛大开*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 打包 apk 文件 方法 加载 bundle 系统
【说明书】:

技术领域

本申请涉及计算机软件技术领域,尤其涉及一种打包APK文件的方法、加载Bundle文件的方法及系。

背景技术

APK包是Android应用程序的文件格式,通常以.APK作为文件名后缀。APK包本质上是一个zip压缩文件,即APK文件可直接以zip方式读写。APK包中包含应用程序运行所需的二进制代码、UI资源等内容。

Bundle是Android应用中的模块。Bundle可以包含一些二进制代码(classes.dex)和资源文件。Bundle可以动态加载/卸载。Bundle文件通常以zip文件的方式附加在主APK包中。通过Bundle可以将APK将应用程序的功能模块化,封装到独立的可插拔bundle文件,以实现动态添加或移除部分功能。Bundle的二进制代码一般通过DexClassLoader进行动态加载,而Bundle中的资源加载则一般通过反射方式将路径添加到AssetManager。对于包含多种业务的应用程序的APK,可以适用多Bundle架构。可以按照应用程序中的不同业务拆解为不同的Bundle,以利于业务的快速迭代。多Bundle结构也可以加快编译速度和启动速度。

现有技术一般是直接将Bundle的apk文件添加到总APK包中。现有技术的这种Bundle结构的APK中,由于Bundle的代码加载器DexClassLoader和资源加载器AssetManager所支持的文件只兼容非压缩或Zip压缩格式,因此bundle都可以压缩成zip(.apk)文件,代码(classes.dex)和资源(*.xml、*.png等)都是zip文件的个Entry。主APK运行时再将Bundle的路径设置到DexClassLoader和AssetManager。DexClassLoader即“类加载器”,其作用是可动态的读取dex文件,将dex文件中的类加载到虚拟机,从而实现在应用运 行过程中动态执行dex文件中的代码。AssetManager为资源管理器。Android应用打包后,代码和资源是一起打包在APK文件中。应用在运行的过程中,可以通过AssetManager来读取打包在APK中的资源文件。非压缩格式将使得最终的APK文件具有较大的体积。Zip压缩格式所通常采用的Deflate压缩算法压缩率并不高,也导致最终的APK文件具有较大的体积。

较大体积的APK文件,将需要较大的存储空间,并且传输过程需要较长的时间,消耗较大的流量。

发明内容

本申请实施例的目的是提供一种打包APK文件的方法、加载Bundle文件的方法及系,以减少APK文件的体积。

为解决上述技术问题,本申请实施例是这样实现的:

一种打包APK文件的方法,包括:

将Bundle.apk文件解压,得到该apk中的文件;

将所述解压得到的文件以Method=Store的方式打包为Zip文件;

采用LZMA算法将所述打包的Zip文件压缩为7z文件;

将所述压缩得到的7z文件文件添加到总的APK包中。

一种加载如权1所述的打包后的APK文件中Bundle文件的方法,包括:

将主APK中的Bundle文件进行LAMA解压,得到zip格式的Bundle文件;

所述解压得到的zip文件直接被DexClassLoader和AssetManager调用,完成所述Bundle文件的加载。

一种打包APK文件的系统,包括:

解压单元,用于将Bundle.apk文件解压,得到该apk中的文件;

打包单元,用于将所述解压得到的文件以Method=Store的方式打包为Zip文件;

压缩单元,用于采用LZMA算法将所述打包的Zip文件压缩为7z文件;

添加单元,用于将所述压缩得到的7z文件文件添加到总的APK包中。

一种加载如权1所述的打包后的APK文件中Bundle文件的系统,包括:

解压单元,用于将主APK中的Bundle文件进行LAMA解压,得到zip格式的Bundle文件;

加载单元,用于采用DexClassLoader和AssetManager完成对所述解压得到的zip文件的调用,完成所述Bundle文件的加载。

一种打包APK文件的方法,包括:

将Bundle.apk文件解压,得到该apk中的文件;

将所述解压得到的文件采用LZMA算法压缩为7z文件;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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