Frage

In unserer Android-App haben wir zwei .so-Dateien:eine für x86 und eine für ARM.Sie sind ziemlich groß und erhöhen die Größe der APK-Datei von 7 MB auf 11 MB.

Da es sich bei .so-Dateien um Laufzeiteinheiten handelt, müssen sie sich in den .apk-Dateien befinden.

Gibt es eine Möglichkeit, die Größe von .so-Dateien zu reduzieren oder sie besser in meiner .apk zu verwenden/einzubauen?

Ich habe von hier aus einen Punkt bekommen http://developer.sonymobile.com/2012/01/31/tips-for-reducing-apk-file-size/ d.h.um die Debug-Symbole aus dem nativen Code zu entfernen.

War es hilfreich?

Lösung

Der Play Store ermöglicht es Ihnen Laden Sie separate APKs pro CPU-Architektur hoch.Sie hätten also ein ARM-APK und ein x86-APK und nicht ein APK mit beiden.

Das Einrichten solcher APKs ist mit Gradle für Android relativ einfach – verwenden Sie ein separates Produktgeschmack für jede Architektur.Ich gehe davon aus, dass es Rezepte dafür gibt, dies außerhalb von Gradle für Android zu tun, obwohl ich vermute, dass es komplizierter ist.

Ein anderer Ansatz besteht darin, x86 einfach nicht zu verteilen .so.Moderne x86-basierte Android-Geräte neigen dazu libhoudini, wodurch sie ARM verwenden können .so NDK-Bibliotheken.Allerdings ist die Emulation von ARM auf x86 wie beim Android-Emulator langsam, sodass Sie testen müssen, ob Ihre App auf x86 eine akzeptable Leistung erbringt.

Und wie Mr.Stratton schlägt vor, insbesondere wenn die Bibliotheken Ihnen gehören, zu prüfen, ob Sie die Größe der Bibliothek selbst reduzieren können.ProGuard entfernt nativen Code nicht auf die Art und Weise, wie es Java-Code entfernt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top