【发布时间】:2013-07-17 20:06:04
【问题描述】:
Dalvik 在单个 .dex 文件中可以拥有的方法数量有这个众所周知的限制(大约 65,536 个)。我的问题是继承(但不是覆盖)方法是否计入此限制。
为了具体化,假设我有:
public class Foo {
public int foo() {
return 0;
}
}
public class A extends Foo { }
public class B extends Foo { }
public class C extends Foo { }
出于 65,536 种方法限制的目的,这算作添加一种方法还是添加 4 种方法? (或者,我想,按照他们的逻辑结论,这算作 1 个方法还是 52 个方法,考虑到 java.lang.Object 也带来了 12 个方法)。
作为背景,我有大量具有一些共性的生成类,而且我也遇到了方法限制,所以我想知道是否值得尝试将其中的一些抽象出来进入类层次结构以争取一些时间。
【问题讨论】:
-
既然您可以更改方法的可见性,那么需要计算所有这些方法不是很有意义吗? See here for dex format.
-
retrodev 链接指向 dex 文件格式的预发布版本的可悲过时的逆向工程。尝试 source.android.com/devices/tech/dalvik/dex-format.html> 以获得更权威和最新的来源。
-
dex-format.html 上的 404
-
@JonShemitz:只需从 URL 栏中删除尾随的
>。他应该在那儿加个空格。