java Proguard是否只删除一个地方使用的方法?[方法内联]
我正在考虑使用Proguard,因为我的应用程序更接近生产,使其更轻
在Android上,除了低存储设备外,还有65K方法限制。我知道Proguard会删除未使用的方法,但它会删除只在一个地方使用的方法吗?我的意思是,我写了一些方法只是为了让代码更干净,但它可以节省一个方法调用(CPU和RAM返回的最昂贵的操作之一,我研究了微码)和一个65K最大计数的方法,以及最终包中的一些字节
Proguard是否检测到此类情况并删除方法?我必须自己配置吗?如果是,stacktrace Deobfousation呢
# 1 楼答案
它不会删除它们,因为使用了代码
如果启用了^{} optimization ,它将内联这些方法:方法调用将被删除,方法代码将插入方法调用所在的位置
如果内联方法中存在异常,它将显示在方法调用站点(调用被删除的位置)的stacktrace中
# 2 楼答案
如果使用proguard,则不会删除该方法
而且,如果你已经知道一个这样的方法,为什么不在启用proguard的情况下构建一个apk,并在应用程序中测试该方法调用的功能,然后自己检查呢