Dalvik hat diese bekannte Beschränkung auf die Anzahl der Methoden, die es in einer einzigen .dex
Datei haben kann (etwa 65.536 von ihnen). Meine Frage ist, ob geerbte (aber nicht überschriebene) Methoden gegen dieses Limit zählen oder nicht.Bezahlen vererbte Methoden gegen das Dex-Methodenlimit in Android?
Um die Dinge konkret zu machen, nehme ich habe:
public class Foo {
public int foo() {
return 0;
}
}
public class A extends Foo { }
public class B extends Foo { }
public class C extends Foo { }
Für die Zwecke der 65.536 Verfahren zu begrenzen, hat diese Zählung als eine Methode hinzufügen oder 4 Hinzufügen? (Oder, denke ich, um die Dinge zu ihrer logischen Schlussfolgerung zu bringen, zählt das als 1 Methode oder 52 Methoden, wenn man bedenkt, dass java.lang.Object
12 Methoden mitbringt).
Als Hintergrund habe ich eine nicht-triviale Anzahl von generierten Klassen mit einigen Gemeinsamkeiten, und ich stoße auch gegen das Methodenlimit, also frage ich mich, ob es sich lohnt zu versuchen, einige davon zu abstrahieren in eine Klassenhierarchie, um Zeit zu gewinnen.
Da Sie die Sichtbarkeit der Methode ändern können, wäre es nicht sinnvoll, dass sie alle zählen müssten? [Siehe hier für Dex-Format] (http://www.retrodev.com/android/dexformat.html). –
Der Retrodev-Link ist ein wohlüberholtes Reverse-Engineering einer Vorabversion des Dex-Dateiformats. Probieren Sie für eine autoritativere und aktuellere Quelle aus. –
danfuzz
404 auf dex-format.html –