Die S40-Maschine verfügt über ein besseres Gedächtnis für Spiele und Populärwissenschaften.

Das Originalplakat: 2014000 Ansichten: 313 Antworten: 10 Gepostet in: 2012-06-09 18:51:45
Es gibt zwei Hauptarten der Speichernutzung, nämlich Programme und Ressourcen. ·Die Programmklasse wird in eine Klassen-Bytecode-Datei kompiliert und beim Start des MIDlets in den Speicher geladen und dann auf einmal hinzugefügt. Das heißt, je mehr Klassen es im MIDlet gibt, je länger ein einzelnes Klassenprogramm ist und je mehr String-Konstanten und Daten in der Klasse vorhanden sind, desto größer wird die kompilierte Klassendatei und desto mehr Speicher wird nach dem Laden belegt. Ich verwende oft die Runtime-Methode im Konstruktor der MIDlet-Klasse, um zu überprüfen, wie viel Speicher das gesamte Programm nach dem Start des MIDlets belegt. //Optimierungsmethode: 1. Das MIDlet-Programm wird in zwei Klassen geschrieben, um die Speichernutzung zu reduzieren, jedoch auf Kosten der OOP-Funktionen von Java. Dieser Nachteil wird besonders deutlich, wenn das Programm relativ groß ist. Darüber hinaus kam es bei CoCoMo einmal zu einer Situation, in der eine einzelne Klasse zu groß und die Ladezeit zu lang war, wodurch die 6-Sekunden-Grenze auf dem Logo der Schatztruhe verletzt wurde. //2. Versuchen Sie, eleganten Code zu schreiben, die Anzahl der Funktionen zu reduzieren, Try Catch zu entfernen, wenn das Programm veröffentlicht wird, und die Anzahl der Programmzeilen zu minimieren. Dies ist auf dem alten 40 grundsätzlich nicht möglich, CoCoMo verlässt sich nun aber nicht mehr darauf, um Speicher zu sparen. //3. Schreiben Sie Daten und Zeichenfolgen in Dateien, laden Sie sie bei Verwendung in den Speicher und setzen Sie sie auf Null, wenn sie nicht verwendet werden. 4. E/A-Operation getClass(). getResourceAsStream(file);, Datenbankoperation RecordStore. openRecordStore(name, true);, Sound Creation Manager. createPlayer();, Image-Erstellung Image. createImage(file); wird in kurzer Zeit eine große Menge Speicher belegen und ihn später wieder freigeben. Wenn der verbleibende Speicher des MIDlet-Programms nicht ausreicht, kommt es bei häufigem Aufruf dieser Funktionen zu einem Speicherüberlauf, der zu einer sogenannten Speicherspitze führt, die besonders häufig bei den alten 40 auftritt. Wenn OutOfMemoryError erneut auftritt, verwenden Sie Runtime, um den Ort zu finden, an dem die Speicherspitze auftritt, und versuchen Sie, diese Anweisungen separat aufzurufen und das System flexibel zu nutzen. gc() rechtzeitig sammeln. //·Ressourcen Bilder: Sie belegen viel Speicher, insbesondere mobile Spiele mit vielen Bildressourcen. Die Berechnung der Speichernutzung von Bildressourcen ist für J2ME-Spieleentwickler zu einer regelmäßigen Aufgabe geworden. CoCoMo erklärt, wie man die Speichernutzung von Bildern berechnet: //Speichernutzung = Breite * Höhe * Anzahl der Pixelbytes, wobei die Anzahl der Pixelbytes je nach Modell variiert. //Zum Beispiel ist die Speichernutzung eines 64*64-Bildes auf dem 7210 = 64*64*1,5 = 614 4 (Byte) = 6K, Speichernutzung auf dem S60 = 64*64*2 = 8192 (Byte) = 8K. Die Anzahl der Pixelbytes variiert je nach Modell. Beispielsweise ist der 7210 ein 4096-Farben-Modell, was bedeutet, dass 12 Bit zur Darstellung eines Pixels verwendet werden, also mit 1,5 multiplizieren, während der S60 ein 65536-Farben-Modell ist und 16 Bit zur Darstellung eines Pixels verwendet werden, also mit 2 multiplizieren. //Optimierungsmethode//Es ist falsch zu glauben, dass das Komprimieren von Bildern Speicher sparen kann. Gemäß der obigen Erklärung hängt das Laden des Bildes in den Speicher nur von der Breite und Höhe ab und hat nichts mit der Größe der Bilddaten zu tun. Durch das Komprimieren des Bildes kann nur die Jar-Größe reduziert werden, nicht jedoch die Speichernutzung. //1. Statische Methode: Reduzieren Sie die Größe des Bildes. Je kleiner Breite und Höhe, desto kleiner wird das Ergebnis. Basierend auf dieser Idee sind Tools wie Animationseditoren entstanden, beispielsweise Gamelofts Prince of Persia. Nachdem die Charaktere geteilt wurden, können die Teile des menschlichen Körpers wiederverwendet werden. Durch die kompakte Platzierung jedes Teils soll die Größe des Bildes reduziert und jeder Zentimeter Platz im Bild voll ausgenutzt werden. //2. Dynamische Methode: Reduzieren Sie die Anzahl der Bilder, die gleichzeitig in den Speicher geladen werden. CoCoMo ist einmal im Naruto-Samurai-Projekt auf diese Situation gestoßen. Zu dieser Zeit gab es 6 Arten von Monstern. Wenn sie gleichzeitig in den Speicher geladen würden, würde er definitiv auf den alten 40 explodieren. Allerdings tauchten in jedem Level nur zwei bis drei Arten von Monstern auf, sodass jedes Level nur die Bilder der Monster laden musste, die in diesem Level auftauchten. Wenn ich jetzt über dieses Projekt nachdenke, kam es bei den alten 40ern häufig zu Überläufen. //Sound//Sound ist auch eine relativ speicherintensive Ressource. Die von der Audiospur im Ton belegten Bytes werden in einen Bytestream umgewandelt und in den Speicher geladen. Daher kann die Reduzierung der von der Audiospur belegten Bytes den Speicherverbrauch senken. Der aktuelle Ansatz von Gameloft besteht darin, ein Soundkonvertierungstool zu verwenden, um mid in ott zu konvertieren und ihn dann in einen ByteArrayInputStream-Bytestream umzuwandeln, um einen Player zu erstellen.
Antwort 🤍 0 📤 Aktie sammeln
Nicht verstanden..
Zu faul zum Anschauen..
Mir wird schwindelig beim Anschauen..
Es gibt eine Software von über 12 MB, die auch auf meinem S40 verwendet werden kann. http://dd9.lexun.com/9xf202/act/20110123/5/49904971.jar Xinhua Wörterbuch. Mobiltelefonbenutzer sollten vorsichtig sein beim Herunterladen.
Dies ist nur populärwissenschaftlich. Bitte um die Vorgehensweise.
Erforderlich ist Kenntnis von Java und es müssen bestimmte Java-Grundkenntnisse vorhanden sein.
Verstehst du, OP, weitergeleitet…
Warum gibt es keine Angaben zur Speichernutzung von 3D-Spielen? 3D-Spiele verbrauchen normalerweise viel RAM...
Lass es lieber, ich kann es sowieso nicht machen, auch wenn ich schaue.
Ich verstehe nur ein bisschen Java. Ein bisschen zu verstehen reicht, es ist nicht unbedingt nötig, alles bis ins Detail zu erforschen. Schließlich...
— Alle Antworten geladen —

Hinterlassen Sie eine Antwort