Funktionsweise Android im Vergleich zum PC

  • Antworten:11
Andreas S.
  • Forum-Beiträge: 9

16.07.2012, 08:44:35 via Website

Hallo Leute!
Ich arbeite schon jahrelang mit Computern und habe jetzt neu ein Android-Handy (Samsung Galaxy Xcover S5690). Nun habe ich ständig mit der Meldung "Nicht genügend Speicherplatz verfügbar." zu kämpfen. Um nun selber einschätzen zu können, was die ganzen Tipps zu diesem Thema wert sind, habe ich eine GRUNDSÄTZLICHE Frage zur Funktionsweise von Android:
Vom PC her kenne ich das so: Ich lade mir eine Installationsdatei herunter. Die starte ich und installiere damit das Programm. Beides verbraucht zunächst mal keinen RAM, sondern liegt als Datei irgendwo auf der Platte. Dann starte ich das installierte Programm. Jetzt wird es in den RAM geladen und verbraucht dort Platz. Starte ich viele Programme gleichzeitig, so swapt der PC und lagert RAM-Bereiche auf die Platte aus. Infolgedessen gibt es auf dem PC die Situation "Zu wenig RAM" praktisch nicht.
Was aber macht eigentlich Android??
Ich kann mir Apps herunterladen und installieren. Wenn das genau so wie am PC funktionieren würde, dürfte das ja erst mal keinen RAM verbrauchen. Trotzdem kommt immer schon beim Installieren die Meldung "Nicht genügend Speicherplatz verfügbar." Bitte versteht mich richtig: Ich frage hier NICHT nach irgendwelchen Tipps, was ich dagegen tun kann. Davon gibt es schon genug. Ich möchte GRUNDSÄTZLICH VERSTEHEN, wie Android Apps herunterlädt, installiert und startet. Ich habe z.B. Apps deinstalliert. Dann würde ich nach meiner PC-Erfahrung erwarten, dass die App-Datei selber aber noch auf dem Handy verbleibt, damit ich sie später evtl. neu installieren kann. Das ist aber offenbar nicht der Fall. Die deinstallierte App ist komplett verschwunden.
Wenn ich z.B. AppMonster starte, dann wird mir bei "Phone" angezeigt, dass 165MB belegt und 17 MB frei sind, obwohl ich gar keine andere App außer AppMonster gestartet habe (auf der SD-Karte sind übrigens noch über 7 GB frei!). Das bedeutet doch aber, dass das System selber fast den gesamten RAM verbraucht - oder? Dann ist das Ganze doch aber sinnlos, weil das Handy fast komplett mit sich selber beschäftigt ist und gar nichts anderes mehr machen kann - sprich: Keine andere App mehr starten kann. Oder!!??
Ich wäre sehr dankbar, wenn mir das alles mal jemand grundsätzlich erläutern würde. Leider habe ich dazu auch keine Antworten in dem Buch "Das inoffizielle Android-Handbuch" gefunden.
Noch einmal: Ich frage hier NICHT nach Tipps zur Lösung einzelner Probleme - die kann ich mir selber zusammensuchen. Ich möchte die Funktionsweise von Android im Vergleich zum PC GRUNDSÄTZLICH verstehen!!

Danke für jeden Hinweis - evtl. auch auf Quellen, wo ich nachlesen kann.

MfG
A*

Antworten
Gelöschter Account
  • Forum-Beiträge: 3.230

16.07.2012, 09:21:03 via App

Du hast einen Denkfehler, es geht bei der Meldung nicht um RAM sondern den internen Speicher des Telefons. Du kannst dir mal die App App2Sd herunterladen und damit Apps zum Teil auf die SD Karte verschieben.
Ansonsten musst du Apps deinstallieren.

Antworten
Andreas S.
  • Forum-Beiträge: 9

16.07.2012, 09:31:33 via Website

Ja,
danke für den Tipp. Aber wie gesagt - es geht mir nicht um die Lösung einzelner Probleme, sondern um ein GRUNDSÄTZLICHES Verständnis der Funktionsweise. Deinem Beitrag entnehme ich, dass das, was beim PC die Festplatte ist, beim Handy aus zwei Teilen besteht: Der interne Speicher und die SD-Karte. Richtig? Nun scheint der interne Speicher aber seeehr klein zu sein. Damit ist die Ablage von Apps an diesem Ort also mehr oder weniger von vorneherein zum Scheitern verurteilt. Richtig? Warum wird es dann gemacht? Schlampige Programmierung?
Das würde ja bedeuten, wenn es z.B. drei Apps gibt, die ich gerne benutzen möchte, die sich aber alle im internen Speicher einnisten, dann müsste ich die ständig abwechselnd installieren und deinstallieren?? (Denn einige Apps lassen sich ja nicht auf die SD-Karte verschieben - soviel habe ich auch schon mitgekriegt.) Das ist doch alles irgendwie sehr unbefriedigend ...
Und nochmal meine Frage zum deinstallieren: Ich habe beobachtet, dass die App dann komplett verschwunden ist. Kann ich nicht, wie beim PC, eine Installationsdatei auf der SD-Karte ablegen und die App dann damit bei Bedarf installieren?

MfG
A*

— geändert am 16.07.2012, 09:52:21

Antworten
Gelöschter Account
  • Forum-Beiträge: 3.230

16.07.2012, 10:40:46 via Website

Also, wenn ich PC und Handy vergleiche, dann ist Der RAM bei beiden genau dasselbe.

Beim Handy habe ich allerdings vergleichbar mit einem Laptop einem fest verbauten internen Speicher und kann dann bei Bedarf eine externe Festplatte anschließen. Diese externe Platte ist dann deine SD Karte.

Jetzt müssen allerdings manche Apps auf dem internen Speicher verbleiben (Widgets, diverse Teile einzelner oder komplette Apps) da diese sonst nicht aufgerufen werden können. Am ehesten vergleichbar, wenn du unter Windows ein Programm unter C installierst und dann auf deine externe Platte D verschiebst weiss die registry auch nicht mehr was Sache ist und das Programm verweigert den Dienst.

Wieso das ganze so ist? Das stammt aus der Anfangszeit von Android, ich kenn das von meine, ersten Desire. Das ganze hat wohl Copyright technische Gründe, da ein Extrahieren der APK (also der installationsdatei) mit einfachsten Mitteln möglich ist.

Bei drei Apps ist es nicht so extrem, aber gesetzt den Fall du hast drei Navis auf deinem Handy, die schon mal gerne mit knapp 70 MB zu Buche schlagen, kommt man schon in enge Bereiche. Bei neueren Handys wurde das ganze umgangen, in dem der interne Speicher für Apps auf 1GB oder mehr angehoben wurde. Da hat man dieses Problem dann nicht mehr.

Du kannst die Installationsdatei schon extrahieren, bei gekauften kann es da allerdings Probleme geben (sowoh
Rechtlich als auch was die Funktionsweise angeht) wenn du zu Hause WLAN hast ist allerdings zu jederzeit eine Neuinstallation aus dem Market möglich.

Antworten
Andreas S.
  • Forum-Beiträge: 9

16.07.2012, 10:55:28 via Website

Ok,
danke für die ausführlichen Erklärungen. Nun sehe ich schon etwas klarer.
Aber noch eine Nachfrage: Was meinst Du konkret mit "Extrahieren der Installationsdatei"? Wie gesagt - ich vergleiche das immer mit meinem PC. Da liegt diese Datei auf Festplatte, ich führe sie aus und installiere damit das entsprechende Programm. Ich kann es auch wieder deinstallieren - deswegen bleibt die Installationsdatei aber trotzdem liegen und ich kann sie immer wieder zum Installieren benutzen. Auf dem Handy ist das umgekehrt? Die App ist gleich nach dem Herunterladen installiert und ich müsste RÜCKWÄRTS aus der installierten App die Installationsdatei "extrahieren"? Meinst Du das so?? Wenn ja - wie geht das? Wo landet dann die extrahierte Datei und wie kann ich damit die App wieder installieren?
Du hast schon recht - im Grunde ist das Wurscht - ich kann ja eine deinstallierte App jederzeit wieder herunterladen und installieren. Das geht wunderbar über WLAN - nun habe ich aber schon in der einen Woche, die ich das Handy habe, gemerkt, dass Downloads "auf der grünen Wiese" nervig langsam sind. Außerdem haben ja diese ganzen wunderbaren "Flatrates" den Nachteil, dass die Downloadgeschwindigkeit nach dem Überschreiten einer bestimmten Grenze (250MB ... 500MB ) so langsam wird, dass das Downloaden völlig inakzeptabel wird. Man kann dann höchstens noch Mails lesen.
Daher würde es mich schon interessieren, ob ich auf dem Handy ähnlich wie auf dem PC arbeiten kann: Ich lege mir einen bestimmten Vorrat an Installationsdateien an (auf der SD-Karte ist ja mehr als genug Platz) und installiere/deinstalliere dann je nach Bedarf bestimmte Apps (auch "auf der grünen Wiese").
Wenn Du mir noch erklären könntest, wie das geht ... das wäre toll!

MfG
A*

— geändert am 16.07.2012, 10:56:04

Antworten
Gelöschter Account
  • Forum-Beiträge: 3.230

16.07.2012, 10:59:37 via Website

Naja der Market macht im Prinzip nichts anderes, er lädt herunter, installiert und löscht dann die temporäre Datei wieder.

Mit Apps wie AppMonster beispielsweise lassen sich aber aus der installierten App sogenannte APK Dateien erzeugen, die du auf der SD Karte mit dir herumtragen und bei Bedarf installieren kannst. (APK unter Android ist vergleichbarr mit Msi Dateien unter Windows)

Wie gesagt über die Legalität des ganzen habe ich mich weder informiert, noch mit Gedanken gemacht, ich nutze die App auch um Backups alter Versionen zu haben oder Apps auf Androidgerate zu bringen die für diese App eigentlich nicht freigegeben worden sind.

Antworten
Andreas S.
  • Forum-Beiträge: 9

16.07.2012, 11:03:19 via Website

Hallo!
Wo finde ich dann diese APK-Datei auf meinem Handy und wie installiere ich damit die App? Auf dem PC geht das einfach mit einem Doppelclick. Auf dem Handy?

MfG
A*

Antworten
Andreas S.
  • Forum-Beiträge: 9

16.07.2012, 11:12:07 via Website

Großes Dankeschön für diesen Hinweis!
Habe mir den Artikel gleich geholt und werde ihn studieren!!

Jetzt habe ich aber noch eine grundsätzliche Frage (vielleicht steht's auch in dem Artikel drin ... aber wenn ich hier schon mal Spezialisten an der Angel habe ...). Wie ist das mit dem Multitasking? Auf dem PC laufen mehrere Programme friedlich gleichzeitig und ich wechsle munter zwischen Firefox, Word, ... usw. hin und her. Wie ist das auf dem Handy? Da sind ja zwei Buttons: "Back" und "Home". Was passiert nun wirklich, wenn ich da drauf drücke? Also ganz detailliert:

Eine App läuft, ich klicke mich in der App vorwärts, indem ich auf den Touch-Screen "tatsche" und gehe dann mit dem "Back"-Button zurück. Was passiert, wenn ich auf diese Weise VOR DEN START der App zurückgehe? Wird die App beendet oder läuft sie (wie auf dem PC) weiter? Wenn ja, wie kann ich sie beenden? Wieder über eine andere App wie AppMonster? Das wäre dann ja wie am PC, wenn ich mit dem Task-Manager ein Programm "gewaltsam abwürge". Geht das so auf dem Handy?

Dieselbe Frage zum "Home"-Button. Was passiert wirklich, wenn ich in einer laufenden App darauf drücke? Wird die App beendet oder läuft sie weiter und ich kann eine weitere App starten? Das wäre dann so, als wenn ich am PC ein Programmfenster minimiere und zum Desktop zurückkehre. Richtig??

MfG
A*

— geändert am 16.07.2012, 11:27:21

Antworten
Andreas S.
  • Forum-Beiträge: 9

17.07.2012, 08:15:54 via Website

So,
ich habe den c't-Artikel, den Gertrud K. mir empfohlen hat, studiert und bin zu folgenden Erkenntnissen gekommen:

(1) Android ist ein Betriebssystem, das auf dem Linux-Kernel 2.6 basiert und in vielen Punkten an den Betrieb mit knappen Systemressourcen angepasst wurde: wenig Hauptspeicher ("RAM"), langsamer Prozessor, wenig Massenspeicher (das ist die Festplatte beim PC - auf dem Handy bestehend aus fest installiertem internen Speicher und zusätzlich eingesetzter SD-Karte)

(2) Das vom PC her bekannte "swappen" gibt es nicht (Wenn alle gestarteten Programme zusammen mehr Hauptspeicher brauchen, als zur Verfügung steht, lagert der PC zeitweise nicht benötigte Daten aus dem RAM auf die Festplatte aus.) Das wurde so gemacht, damit ein Handy zur Not auch ohne eingesetzte SD-Karte zurechtkommt.

(3) Die Konsequenz daraus ist, dass beim Neustart einer App u.U. eine andere App beendet werden muss, um Platz im RAM zu schaffen. Android sorgt dann aber dafür, dass Nutzereingaben erhalten bleiben. Wenn ich also gerade eine Mail schreibe und parallel dazu auf eine Landkarte schauen will, wird das Mailprogramm evtl. beendet. Der Text, den ich bisher geschrieben hatte, wird aber gespeichert. Wenn ich dann zur Mail-App zurück wechsle, wird der Text wieder angezeigt. Dadurch entsteht der Eindruck, die App sei weiter gelaufen.

(4) Problem: Nur reine Texteingaben des Nutzers "überleben" den Abbruch einer App - die Auswahl in einer Klappbox (in Android "Spinner" genannt) z.B. nicht! Zumindest nicht automatisch durch Android gesteuert. Es kann aber sein, dass der Programmierer der App dafür gesorgt hat. Kann aber auch nicht. Man sollte also beim Wechseln zwischen Apps sicherheitshalber immer nochmal kontrollieren, ob alle Eingaben noch richtig sind!

(5) Eine App besteht aus mehreren Komponenten. Das sind kleine Programmbestandteile, die innerhalb der App bestimmte Aufgaben erfüllen. Apps können ihre Komponenten anderen Apps zur Verfügung stellen. Dadurch brauchen nicht alle einzelnen Funktionen immer wieder neu programmiert zu werden. Das spart dann auch wieder Systemressourcen im Betrieb. Eine solche Komponente läuft u.U. weiter, auch wenn die App, in der sie enthalten ist, beendet wurde, weil eine andere App diese Komponente noch benötigt. Wird eine Komponente eine längere Zeit lang von Apps nicht benötigt, wird sie automatisch von Android beendet. Das ist also ein ziemlich buntes Durcheinander, das da herrscht und niemand kann im Grunde sagen, was gerade wirklich läuft. Hintergrund für das Alles ist immer wieder der Zwang, mit knappen Systemressourcen auszukommen.

(6) Jede App läuft in einer eigenen virtuellen Maschine (VM). Das ist so etwas wie ein "simulierter Computer". Das Betriebssystem stellt für jede App einen eigenen abgeschotteten Bereich im Hauptspeicher zur Verfügung. Das gibt es auch auf dem PC. Unter Windows 7 gibt es z.B. eine VM, die einen Windows XP-Rechner simuliert. Das ist eine wunderbare Sache, wenn man alte Software, die unter Win7 nicht mehr läuft, benutzen möchte. Die unter Android benutzte VM heißt "Dalvik Virtual Machine" DVM (das ist der Heimatort des Entwicklers auf Island!).

(7) Was unter Windows eine .exe-Datei ist (also ein ausführbares Programm), ist unter Android die .dex-Datei ("Dalvik Executable Bytecode"). Das ist also das Programm, das von der DVM ausgeführt wird. Das, was unter Windows eine Installationsdatei ist (üblicherweise auch mit der Endung .exe), ist unter Android die .apk-Datei ("Android Application Package"). Darin ist die .dex-Datei enthalten und weitere Programmbestandteile (z.B. Bilder, Texte und Sound). Diese .apk-Datei kann dann also zur Installation einer App auf dem Handy benutzt werden.

(8) Unter Android gibt es wegen der beschränkten Bildschirmgröße keine Fenster wie auf dem Windows-PC. Eine App füllt also normalerweise immer den gesamten Bildschirm aus. Für den Wechsel zwischen Apps gibt es daher drei Mechanismen, die über zwei Knöpfe auf dem Handy gesteuert werden ("Back" und "Home"):

(a) Der "Back"-Knopf ersetzt den aktuellen Bildschirminhalt durch den zuvor angezeigten. Standardmäßig gehen dabei eingegebene Daten verloren - es sei denn, der Entwickler der App hat durch entsprechende Programmierung dafür gesorgt, dass diese gerettet werden und beim erneuten Aufruf des Bildschirms wieder zur Verfügung stehen.

(b) Ein KURZER Druck auf dem "Home"-Button zeigt den "Home"-Bildschirm an, wo der Nutzer eine neue App starten kann.

(c) Ein LANGER Druck auf den "Home"-Button zeigt eine Liste aller kürzlich aktiven Apps an. Davon kann der Nutzer eine auswählen. Sie wird dann u.U. inklusive der zuvor eingegebenen Daten wieder angezeigt, so dass es für den Nutzer so aussieht, als sei die App die ganze Zeit über weiter gelaufen - obwohl sie in Wirklichkeit bereits beendet wurde! (inkl. Rettung der zuvor eingegebenen Daten!)

(9) Aufgrund dieses ausgefeilten Ressourcenmanagements von Android kann eine App prinzipiell beliebig viele Systemressourcen anfordern. Android managed das dann schon. Das stellt aber hohe Anforderungen an eine sorgfältige Programmierung! Viele Programmierer sind nicht so sorgfältig und gehen schlampig mit den SCHEINBAR unbegrenzt zur Verfügung stehenden Systemressourcen um. Das ist dann der Augenblick für die sog. Task-Manager, die auf vielen Handys installiert sind. Sie dienen dazu, ressourcenfressende Apps "gewaltsam" zu beenden (vgl. den Task-Manager auf dem PC!). Aus dem zuvor Gesagten geht ganz klar hervor, dass diese Task-Manager bei sorgfältiger Programmierung der Apps eigentlich überflüssig wären!

MfG
A*

PS: Ich bitte die Experten darum, meinen Text hier zu ergänzen bzw. zu korrigieren, wenn ich etwas falsch oder unvollständig dargestellt habe!

— geändert am 17.07.2012, 08:49:47

Antworten
Gelöschter Account
  • Forum-Beiträge: 141

17.07.2012, 12:40:45 via App

@ Andreas

Gut erklärt!

Eigenkomposition, oder durch das Netz inspiriert?

Antworten
Andreas S.
  • Forum-Beiträge: 9

17.07.2012, 12:44:22 via Website

Hallo!
Das stammt alles aus dem oben genannten c't-Artikel!
Ich hab's nur mit einfachen Worten zusammengefasst.

MfG
A*

Antworten