Ist mit Largeheap in Android manifest eine gute Praxis?

Ich entwickle in NDK . Es hängt in Galaxy S3 . Für die Prüfung habe ich android:largeheap = "true" in Manifest . Dann gab es kein hängendes Problem. Ist es eine gute Praxis, largeHeap="true" zu benutzen?

Gibt es irgendeine Chance, dass Google meinen Build aufgrund dieses Tags ablehnt und wie kann ich verhindern, dass meine App nicht mehr benutzt wird, ohne largeheap="true" ?

  • Diese Anwendung oder eine Bibliothek, die sie verwendet, verwendet NSQuickDrawView, die veraltet wurde. Apps sollte die Verwendung von QuickDraw beenden und in Quartz verschieben
  • Wie kann ich die NullPointerException in v4.DrawerLayout beheben?
  • Was heißt dieser blaue Schatten?
  • Fehler android SurfaceFlinger
  • Eclipse - parseSdkContent fehlgeschlagener Fehler - XML-Dateien nicht erkennen
  • Wie man die Breite und die Höhe anpasst, wenn eine Aktivität als Dialog angezeigt wird
  • Android ViewGroup Crash: Versuchen Sie, aus dem Feld 'int android.view.View.mViewFlags' auf eine Nullobjektreferenz zu lesen
  • Wie man Google Tag Manager in Cordova implementiert
  • Google Play-Entwickler-Konsole: Beta-Test bezahlte Apps kostenlos?
  • Holen Sie GPS-Koordinaten: Android
  • So erstellen Sie Spinner-Liste mit CustomAdapter in Android
  • Android-Anwendung, die nicht von der Verknüpfung ausgeht
  • 2 Solutions collect form web for “Ist mit Largeheap in Android manifest eine gute Praxis?”

    Kurze Antwort

    Nein, wenn du es brauchst, ist es keine schlechte Paktise, weil es dort ist.

    Lange Antwort

    Offizielle doc-Staaten

    Ob die Prozesse Ihrer Anwendung mit einem großen Dalvik-Heap erstellt werden sollen. Dies gilt für alle für die Anwendung erstellten Prozesse.
    Es gilt nur für die erste Anwendung, die in einen Prozess geladen wird; Wenn Sie eine freigegebene Benutzer-ID verwenden, um mehrere Anwendungen zu erlauben, einen Prozess zu verwenden, müssen sie diese Option konsequent verwenden oder sie haben unvorhersehbare Ergebnisse.
    Die meisten Apps sollten das nicht brauchen und sollten sich stattdessen darauf konzentrieren, ihren gesamten Speicherverbrauch für eine verbesserte Leistung zu reduzieren . Dies ermöglicht auch nicht eine feste Erhöhung des verfügbaren Speichers, da einige Geräte durch ihren gesamten verfügbaren Speicherplatz eingeschränkt sind.

    Einige Entwickler verwenden es, um OOM excepetion zu vermeiden, also, wenn Sie es verwenden, um nur ein OOM zu vermeiden, ist es ein sehr sehr schlechtes Pactice.

    Niemals einen großen Haufen anfordern, nur weil du kein Gedächtnis hast und du eine schnelle Lösung benötigst . Du solltest es nur verwenden, wenn du genau weißt, wo all dein Gedächtnis zugewiesen ist und warum es behalten werden muss

    Wenn du eigentlich mehr Platz brauchst, ist es ok, es zu benutzen , du kannst getMemoryClass() , um den Heap und getLargeMemoryClass() großen Heap zu überprüfen.

    Aber wenn du es vermeiden kannst, das großeHeap zu benutzen, wäre es der beste Weg, um zu gehen, wie die offizielle Dokumentation fortfährt:

    Doch selbst wenn Sie zuversichtlich sind, dass Ihre App den großen Haufen rechtfertigen kann, sollten Sie es vermeiden, es zu einem beliebigen Ausmaß zu geben . Die Verwendung des zusätzlichen Speichers wird zunehmend zum Nachteil der gesamten Benutzererfahrung sein, da die Garbage Collection länger dauert und die Systemleistung bei der Taskwechsel oder bei der Ausführung anderer gemeinsamer Operationen langsamer sein kann.
    Darüber hinaus ist die große Heap-Größe nicht das gleiche auf allen Geräten und kann genau das gleiche wie die reguläre Haufen Größe . Also, auch wenn du die große Haufengröße anfordert, solltest du getMemoryClass () anrufen, um die reguläre Haufengröße zu überprüfen und danach zu streben, immer unter diesem Limit zu bleiben.

    Ich schlage auch vor, dass du dich hier ansehen kannst

    Persönlich würde ich sagen, dass es nicht wirklich in die Kategorie der "guten / schlechten Praxis" fallen, wenn sie richtig verwendet wird .

    Nach den docs :

    Die meisten Apps sollten das nicht brauchen und sollten sich stattdessen darauf konzentrieren, ihren gesamten Speicherverbrauch für eine verbesserte Leistung zu reduzieren. Dies ermöglicht auch nicht eine feste Erhöhung des verfügbaren Speichers, da einige Geräte durch ihren gesamten verfügbaren Speicherplatz eingeschränkt sind.

    Wenn du alles in deiner Macht getan hast, um den Speicherverbrauch zu reduzieren und es noch zu verlangen, dann ist es keine schlechte Sache, es zu benutzen.

    Wenn deine App hängt, musst du das direkt ansprechen – das largeHeap ist kein Zauberstab, der für alle Geräte Probleme macht. Dieser Punkt wird aus dem folgenden Auszug der Android Trainingsunterlagen deutlich:

    [Die] Fähigkeit, einen großen Heap anzufragen, ist nur für einen kleinen Satz von Apps gedacht, die die Notwendigkeit rechtfertigen können, mehr RAM zu verbrauchen (wie eine große Fotobearbeitungs-App). Niemals einen großen Heap anfordern, nur weil du kein Gedächtnis hast und du eine schnelle Lösung benötigst – du solltest es nur benutzen, wenn du genau weißt, wo all dein Gedächtnis zugewiesen ist und warum es behalten werden muss. – (Quelle)

    Ich sollte auch hinzufügen, dass Google nicht ablehnen Ihre App für die Verwendung es.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.