2016-06-01 14 views
1

Ich habe viel über verschiedene Anwendungsgrößen nach der Installation gelesen. E.G .: Why apk size increase in different android versionApp-Größe unterscheidet sich in verschiedenen Android-Versionen

Aber etwas, das ich immer noch nicht verstehe. Ich habe eine Anwendung (com.onhost.skuska in LibGDX gemacht) und Android 4.3. unmittelbar nach der Installation (z. B. ohne zusätzliche Daten) dauert es 17.54 MB und Android 5.0, Galaxy S6 dauert 30,73 MB.

Zuerst dachte ich, es geht um unterschiedliche Hardware oder Bildschirmauflösung. Ich habe versucht, die App auf Genymotion Emulator von S4 mit Android Version 4.3 zu installieren und es war mehr oder weniger 17,5 MB. Wenn ich die Anwendung auf meinem S4 mit Android 5.0 installiert habe, steigt die App-Größe nach der Installation auf 29,21 MB.

Ich habe tatsächliche Dateien untersucht (mit Find-Name "Skuska" am Terminal) nach der Installation. Auf Android 5.0, Galaxy S6 (Genymotion) die wichtigsten Ordner und Dateien sind diese:

  • Datei, 22 MiB, /data/dalvik-cache/x86/[email protected]@[email protected] APK @ classes.dex
  • Ordner, 912 KiB, /data/data/com.onhost.skuska/lib/ enthält:
    • Datei, 668 KiB, libgdx-freetype.so
    • Datei, 244 KiB, libgdx.so
  • Ordner, 8.8 MiB, Daten/app/com.onhost .skuska-1/enthält:
    • Datei, 8120 KiB, base.apk
    • Ordner, 920 KiB, lib/x86/wieder vorkommt: libgdx-freetype.so und libgdx.so

Dateien auf Android 4.3 sind wie folgt:

  • Datei, 8924 KiB, /data/dalvik-cache/[email protected]@[email protected]
  • Datei, 8120 KiB, /data/app/com.onhost.skuska-2.apk
  • Ordner, 912 KiB, /data/app-lib/com.onhost.skuska-2/ enthält:
    • Datei, 668 KiB, libgdx-freetype.so
    • Datei, 244 KiB, libgdx.so

Wie wir die Hauptunterschied liegt in der .dex Datei sehen können. Ich möchte Sie fragen, ob es eine Möglichkeit gibt, die Größe der .dex-Datei wie auf Android 4.3 zu ändern. Oder warum gibt es zwei mal * .so Dateien in Android 5.0?

Vielen Dank für einen Vorschlag zur Lösung dieses Problems.

EDIT: Ich benutze Proguard zum Schrumpfen (keine Optimierung oder Verschleierung). EDIT 2: Ich habe auch einige andere Apps überprüft, die nicht in LibGDX programmiert sind und deren Version 5.0 ist größer, aber nicht so dramatisch.

Antwort

1

Der Grund, warum sie unterschiedliche Größen haben, ist, dass Android 5.0 zusätzliche Funktionen enthält, die aus Kompatibilitätsgründen in classes.dex enthalten sind (auch wenn Sie sie nicht verwenden). Dies wird manchmal auch Boilerplate-Code genannt. Wenn Sie zwei verschiedene Installationen haben, die beide unterschiedlich signiert sind, aber den gleichen App-Namen (com.onhost.skuska) verwenden, dann wird Android beide installieren und den ersten nicht überschreiben und stattdessen eine -1 zu der hinzufügen Ende (com.onhost.skuska-1) usw.

/data/dalvik-cache/x86/[email protected]@[email protected]@classes.dex ist eine Cache-Datei und wird verwendet, um das Laden von häufig verwendeten Anwendungen zu beschleunigen, so dass die APK-Datei nicht jedes Mal extrahiert werden muss.

+0

Vielen Dank für Ihre Antwort. Und denkst du, kann ich irgendetwas dagegen tun? Ich habe auch in 6.0 überprüft und es scheint wieder normal zu sein. Ich habe auch einige andere Apps überprüft, die nicht in LibGDX programmiert wurden, und ihre Version 5.0 ist größer, aber nicht so dramatisch. – Jozef