2013-10-18 9 views
13

Ich frage mich, welche Architekturen ich in die Application.mk-Datei meines Android-Spiels einfügen sollte.Android NDK: Was sollte ich in Application.mk für APP_ABI setzen?

Ich möchte alle möglichen Plattformen unterstützen, die Spiele auf Google Play und andere Arten von Android speichert herunterladen.

Ich würde sagen, dass ich setzen soll

APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know) 

Aber ich frage mich, ob ich sollte nicht gesetzt:

APP_ABI := armeabi armeabi-v7a x86 

oder

APP_ABI := all 

Bitte klären.

Antwort

13

Sie können auch mips angeben, die bei Verwendung von all enthalten wäre.

armeabi Code kann auf armeabi-v7a Geräte laufen, aber nicht umgekehrt. So haben Sie nicht müssenarmeabi-v7a, wenn Sie armeabi haben, aber es wird Ihnen erlauben, die Vorteile der Hardware Fließkommaoperationen auf einigen Geräten zu nutzen.

Beachten Sie auch, dass je mehr Architekturen Sie einschließen, desto größer wird Ihre resultierende APK sein. Und wenn Sie regelmäßig für alle Plattformen kompilieren, werden Ihre Builds länger dauern.

Werfen Sie einen Blick auf docs/CPU-ARCH-ABIS.html in Ihrer NDK Installation für weitere Informationen über die verschiedenen Architekturen.

6

Ich würde empfehlen, mindestens zu setzen, armee-v7a und x86.

armeabi-V7A deckt die meisten, möglicherweise alle der jüngsten Armvorrichtungen, und gibt Ihnen Hardware-Punkt-Auflage schweben.

x86 deckt alle von der aktuellen Ernte von x86-Geräte (die größte davon ist das Samsung Galaxy Tab 3). Darüber hinaus machen Intel in diesem Jahr eine große und sehr öffentliche Nachfrage nach Tablet-Marktanteilen und werden wahrscheinlich in der Zukunft beliebter sein.

Es gibt eine Reihe von Auswirkungen davon. Krsteve ist korrekt, das wird deine Builds etwas langsamer machen (da du jetzt dein Spiel zweimal effektiv erstellst) und es dein APK vergrößern wird (weil du die x86 und ARM Binaries zusammengibst), jedoch im großen Schema von Dinge, die diese Binaries wahrscheinlich von Ihrer Größe in den Schatten gestellt werden, und wenn dies nicht der Fall ist, ist Ihr Spiel wahrscheinlich nicht groß genug, um die Größenbeschränkung für Google Play APK zu überschreiten.

Fassen wir zusammen:

  1. Verwenden armeabi-V7A und x86, oder verwenden Sie alle
  2. Die zusätzliche apk Größe wird entweder irrelevant oder von Ihrem Asset-Größe
  3. Ihre Bauzeiten wird den Schatten gestellt Erhöhung, aber es erhöht die Anzahl der Geräte, die Sie treffen können, so , dass ein fairer Kompromiss
  4. scheint