Gibt es eine empfohlene Grenze für die Speichernutzung in Android-Anwendungen? Wie sollte es unter 40 MB oder etwas sein .. Manchmal verwendet meine Anwendung bis zu 100 MB in Android Monitor, wenn ich schwere Gegenstände (News-Feed mit Videos) in Recyclerview laden und ich frage mich, ob es einige normale Speicherverbrauchsgröße, die wir folgen sollten .Was ist die empfohlene Grenze für die Speichernutzung in Android-Anwendungen?
Antwort
Verwenden Sie so wenig wie möglich.
Um mehr laufenden Prozesse zu ermöglichen, setzt Android eine harte Grenze für die Heap-Größe für jede App alloted. Die genaue Größe der Heap-Größe variiert zwischen Geräten, basierend darauf, wie viel RAM das Gerät insgesamt verfügbar hat . Wenn Ihre App die Heap-Kapazität erreicht hat und versucht, mehr Speicher zuzuweisen, löst das System eine OutOfMemoryError.
Um zu vermeiden, dass nicht genügend Arbeitsspeicher zur Verfügung steht, können Sie das System auf abfragen, um festzustellen, wie viel Heapspeicher auf dem aktuellen -Gerät verfügbar ist. Sie können das System für diese Abbildung abfragen, indem Sie getMemoryInfo() aufrufen. Dies gibt ein ActivityManager.MemoryInfo Objekt , die Informationen über das Gerät des aktuellen Speicherstatus, wie verfügbarer Speicher, Gesamtspeicher und die Speicherschwellen der Speicherebene, unterhalb derer die Systemprozesse zu töten beginnt zur Verfügung stellt. Die ActivityManager.MemoryInfo Klasse stellt auch ein einfaches boolean Feld, lowMemory, die Sie, ob das Gerät erzählt wird wenig Speicher ausgeführt wird.
Der folgende Codeausschnitt zeigt ein Beispiel, wie Sie die getMemoryInfo() verwenden können. Methode in Ihrer Anwendung.
public void doSomethingMemoryIntensive() {
// Before doing something that requires a lot of memory,
// check to see whether the device is in a low memory state.
ActivityManager.MemoryInfo memoryInfo = getAvailableMemory();
if (!memoryInfo.lowMemory) {
// Do memory intensive work ...
}
}
// Get a MemoryInfo object for the device's current memory status.
private ActivityManager.MemoryInfo getAvailableMemory() {
ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
return memoryInfo;
}
dieser link Weitere Informationen dazu finden.
Die allgemeine Empfehlung ist es, so wenig wie möglich zu verwenden. Wie erreicht man das ??
- Umgang mit Bitmaps richtig (In den meisten Fällen Sie eine dritte Party-Bibliothek wie Picasso, Fresco oder Glide verwenden möchten).
- Verwenden Sie Heap-Dump in android-Studio und analysieren Sie, was Ihren RAM verbraucht und auf Aktivitätslecks prüfen.
- Wenn Sie viele Daten aus dem Netzwerk anfordern, dann können Sie sie auch flatbuffers werden sie den Speicherbedarf und die Nutzlast einer Netzwerkanforderung reduzieren
- Nicht tief Ansicht mit Hierarchien
- 1. Was ist die empfohlene Größe von Daten für iOS
- 2. Was ist die empfohlene Dokumentstruktur für die Front-End-Entwicklung?
- 3. Was ist die empfohlene Klasse für die Darstellung einer Box?
- 4. Was ist die empfohlene Bcrypt C-Implementierung?
- 5. Was ist die Grenze in mq_unlink?
- 6. Was ist die Grenze für die Länge einer JavaScript-Eigenschaft?
- 7. Was ist die empfohlene Implementierung für Hash-OLE-Varianten?
- 8. Was ist eine empfohlene R-Schnittstelle für die Perl-Integration?
- 9. Was ist die empfohlene setup.ini für SQL 2000 MSDE installieren?
- 10. Was ist die empfohlene Speicheranforderung für einen Crate-Host?
- 11. Was ist die empfohlene Architektur für ASP.NET-Webanwendungen?
- 12. Was ist die maximale Grenze für Nachrichten in WCF?
- 13. Was ist die empfohlene error_reporting() Einstellung für die Entwicklung? Was ist mit E_STRICT?
- 14. Was ist die Grenze von Sinatra?
- 15. Was ist die praktische Grenze eines Textfelds?
- 16. Docker Grenze Speichernutzung funktioniert nicht
- 17. Was ist die empfohlene Methode in verketteten Spalten zu suchen?
- 18. Was ist die empfohlene Art, Datumsarithmetik in Perl zu machen?
- 19. Was ist die empfohlene ElasticSearch-Bereitstellung in Windows Azure?
- 20. Was ist der beste Weg, die Speichernutzung einer Website
- 21. Was ist die empfohlene Methode zum Anhängen an HDFS-Dateien?
- 22. Was ist die empfohlene Vorgehensweise für die Ausführung einer eigenständigen Clojure-REPL?
- 23. jQuery-Element-Konstruktoren - was ist die empfohlene Methode?
- 24. .NET: Was ist die maximal empfohlene Größe eines Werttyps?
- 25. Was ist die empfohlene Art, Berechtigungen mit peewee zu erteilen?
- 26. Was ist der empfohlene Datenbankentwurf für 2 Entitäten, die die meisten ihrer Attribute gemeinsam haben?
- 27. Was ist die Grenze des Feldtyps BIGINT in SQL?
- 28. Was ist die Grenze von auto_increment (integer) in mysql
- 29. Was ist die Grenze für Nr. von Steuerelementen auf einer asp.net-Seite & für die Sitzungsvariablen?
- 30. Empfohlene Vorgehensweise für die Anwendungsausnahmebehandlung in AngularJS
Die Empfehlung lautet: wie weniger als du kannst ... – Selvin