Android踩坑经验-优化APK大小时不可轻易删除/META-INF目录

在优化APK大小时,往往会删除无用资源,重复资源等,有些童鞋可能看到META-INF文件夹下都是声明信息,签名信息等,因此感觉除了签名信息外,其他信息可随意删除,但其实不然。
META-INF文件夹主要存放的配置信息,签名信息,service注册信息,文件列表如下:
在这里插入图片描述
重点有MANIFEST.MF,CERT.RSA,CERT.SF三个文件和services,proguard文件夹:
MANIFEST.MF:可读文本文件,存放的是版本号,以及每个文件的哈希值
在这里插入图片描述
CERT.RSA:存放包的签名
CERT.SF:对每个文件的头三行进行哈希,内容形式跟MANIFEST.MF基本一致,内容如下:
在这里插入图片描述
services文件夹:这是Android模块开发SPI机制生成的文件夹,SPI全程是Service Provider Interface,不同的模块可以基于接口编程,主要用于代码拓展可插拔特性,有兴趣的可以去看下相关知识:https://www.jianshu.com/p/deeb39ccdc53。services文件夹里面存放的就是接口的注册信息,打开其中一个文件看一下:
在这里插入图片描述
上述文件表明代码中调用到MainDispatcherFactory的地方,实际调用的方法是AndroidDispatcherFactory接口。
proguard文件夹:从文件列表看,存放的是简搜使用的组件的混淆信息。
在这里插入图片描述
在现实遇到的坑是删除了/services目录后,使用Kotlin写的code很多崩溃,因此最好保留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值