Die ideale Menge an RAM, die Telefone für reibungsloses Multitasking benötigen, ist ein ziemlich umstrittenes Thema. Apple kommt bei seinen iPhones mit einer kleineren Größe aus, die oft benutzerfreundlicher ist als Android-Lösungen. Auch eine RAM-Speicherverwaltung findet man beim iPhone nicht, wohingegen Android dafür eine eigene Funktion hat.
Geht man zum Beispiel in Samsung Galaxy-Handys um Einstellungen -> Gerätepflegefinden Sie hier eine RAM-Anzeige mit Informationen darüber, wie viel Speicherplatz frei und wie viel belegt ist. Nachdem Sie auf das Menü geklickt haben, können Sie sehen, wie viel Speicher jede Anwendung beansprucht, und Sie haben hier auch die Möglichkeit, den Speicher zu löschen. Hier ist auch die RAM-Plus-Funktion untergebracht. Das bedeutet, dass eine bestimmte Anzahl GB vom internen Speicher abgezogen wird, die als virtueller Speicher verwendet wird. Können Sie sich so etwas auf iOS vorstellen?
Smartphones sind auf RAM angewiesen. Es dient ihnen zum Speichern des Betriebssystems, zum Starten von Anwendungen und auch zum Speichern einiger ihrer Daten im Cache- und Pufferspeicher. Daher muss der Arbeitsspeicher so organisiert und verwaltet werden, dass Anwendungen reibungslos ausgeführt werden können, auch wenn Sie sie in den Hintergrund stellen und nach einer Weile wieder öffnen.
Swift vs. Java
Wenn Sie jedoch eine neue Anwendung starten, benötigen Sie freien Speicherplatz, um sie laden und ausführen zu können. Ist dies nicht der Fall, muss der Platz geräumt werden. Das System wird daher einige laufende Prozesse, beispielsweise bereits gestartete Anwendungen, zwangsweise beenden. Allerdings arbeiten beide Systeme, also Android und iOS, unterschiedlich mit RAM.
Das iOS-Betriebssystem ist in Swift geschrieben und iPhones müssen den von geschlossenen Apps genutzten Speicher nicht wirklich wieder in das System zurückführen. Das liegt an der Art und Weise, wie iOS aufgebaut ist, da Apple die volle Kontrolle darüber hat, da es nur auf seinen iPhones läuft. Im Gegensatz dazu ist Android in Java geschrieben und wird auf vielen Geräten verwendet, daher muss es universeller sein. Wenn die Anwendung beendet wird, wird der belegte Speicherplatz an das Betriebssystem zurückgegeben.
Nativer Code vs. JVM
Wenn ein Entwickler eine iOS-App schreibt, kompiliert er sie direkt in Code, der auf dem iPhone-Prozessor ausgeführt werden kann. Dieser Code wird als nativer Code bezeichnet, da für die Ausführung keine Interpretation oder virtuelle Umgebung erforderlich ist. Android hingegen ist anders. Wenn Java-Code kompiliert wird, wird er in Java-Bytecode-Zwischencode konvertiert, der prozessorunabhängig ist. Es kann daher auf unterschiedlichen Prozessoren unterschiedlicher Hersteller laufen. Dies hat enorme Vorteile für die plattformübergreifende Kompatibilität.
Natürlich gibt es auch eine Kehrseite. Jede Kombination aus Betriebssystem und Prozessor benötigt eine Umgebung, die als Java Virtual Machine (JVM) bezeichnet wird. Da nativer Code jedoch eine bessere Leistung erbringt als Code, der über die JVM ausgeführt wird, erhöht die Verwendung der JVM lediglich die von der Anwendung verwendete RAM-Menge. Daher verbrauchen iOS-Apps weniger Speicher, im Durchschnitt 40 %. Das ist auch der Grund, warum Apple seine iPhones nicht mit so viel RAM ausstatten muss wie bei Android-Geräten.
Ich bin nicht gerade ein Experte, aber ich beschreibe meine Sichtweise aus der Perspektive eines Nutzers, der Android seit 15 Jahren nutzt und nun seit 2 Monaten das iPhone 13 mini nutzt. Auf Android mit 8GB Speicher (zuletzt Samsung S21, Flip3) bin ich meist nach einer gewissen Zeit zur zuvor gestarteten Anwendung zurückgekehrt und diese war noch im RAM geladen, so dass sie nicht wieder von vorne anfing und ich problemlos dort weitermachen konnte, wo ich war aufgehört. Andererseits habe ich selbst mit 8 GB Speicher einmal pro Woche alle Anwendungen „abgeschossen“, um den RAM zu leeren, da das System bei vollem Speicher langsamer wurde. Ich habe kein Problem damit, auf dem iPhone langsamer zu werden, aber andererseits muss ich sagen, dass es mir bei der Nutzung nahezu identischer Anwendungen im Gegenteil regelmäßig passiert, dass ich bei der Rückkehr zu einer zuvor gestarteten Anwendung, Es wird wieder vollständig geladen und ich kann nicht reibungslos dort weitermachen, wo ich aufgehört habe.
Welche Option ist besser? Schwer zu sagen … Das Beenden von Apps auf Android und das Löschen des Arbeitsspeichers ist eine Frage von zwei Klicks. Das erneute Laden der gesamten Anwendung auf dem iPhone ist nicht so zeitaufwändig und daher auch nicht so wichtig... Ideal wäre natürlich mehr RAM auf dem iPhone und Multitasking wie bei Android :-D
Scheiße, es ist schon wieder dumm. Zum einen gibt es Android schon lange nicht mehr in Java, dafür gibt es Kotlin. Für den Speicher ist der Garbage Collector zuständig, der einfachste in iOS, der trotz seiner Nachteile existiert. Das Ganze ist, dass iOS Apps beendet, sobald Sie sie vom Bildschirm entfernen. Dies gibt Speicher frei, genau wie unter Linux, wenn Sie kill pid eines Prozesses eingeben. Aus diesem Grund dauert es so lange, den Browser zu öffnen und zur vorherigen Arbeit zurückzukehren. Dieser Artikel ist eine wörtliche Übersetzung eines X Jahre alten Artikels eines iOS-Fanatikers ohne Programmierkenntnisse. Ja, natürlich liegt die Speicherverwaltung hauptsächlich in der Verantwortung des Programmierers und dessen, was die Anwendung tut. Wenn er darauf hustet, gibt es ein Speicherleck in der Welt und pqk, Sie können X GB Speicher haben und es ist immer noch nutzlos. Und in einer Zeit, in der viele Anwendungen nur WebView sind, ist das sehr einfach, weil es selbst frisst, was es kann. Der Artikel ist Unsinn, Müll.
Android verwendet nicht mehr JVM, sondern DVM. Darüber hinaus wird es dann in eine native ausführbare Datei kompiliert
Java ist immer noch in Android.