我突然想到,我们使用的 ProGuard 代码优化之一,即合并类层次结构,可能根本不是一个好的选择。
我的预感是合并类以减少对 ClassLoader 的调用是有益的,这至少在 JVM 上是一个特别慢的操作,并且在我们的代码中,我们选择了许多更小的(通常是内部的)类而不是大神对象类,所以ClassLoader会比较频繁地运行。
然而,考虑到所有类都将合并为一个类的极端情况(可能不太可能),那么即使加载器只会被调用一次,我们最终也会将大量代码加载到内存中,而这些代码很可能永远不会被使用(我猜80/20规则也适用于此)。
这让我想知道:
1) Dalvik 中的类加载速度到底有多快?这是一个值得通过使用类合并来减少的操作吗?
2)也就是说,你会推荐在Android上使用类合并吗?