Unterschied zwischen Ausführung der Aufgabe und Ausführung des Prozesses in Android

8

Kann mir jemand sagen, was der Unterschied zwischen Aufgabe und Prozess in Android ist. Wenn ich dieses Code-Snippet verwende.

%Vor%

Was ist der Unterschied zwischen applications = Appmgr.getRunningAppProcesses() und apps = Appmgr.getRunningTasks(30) .

Bitte hilf mir. Grüße

    
salman khalid 16.11.2011, 08:04
quelle

3 Antworten

7

getRunningAppProcesses () :

Gibt eine Liste von RunningAppProcessInfo-Datensätzen zurück oder null, wenn keine Prozesse ausgeführt werden (es wird keine leere Liste zurückgegeben). Diese Listenreihenfolge ist nicht angegeben.

getRunningTasks (int maxNum) :

Gibt eine Liste der Aufgaben zurück, die gerade ausgeführt werden, wobei die aktuellsten zuerst und die älteren danach in Reihenfolge sind. Beachten Sie, dass "running" nicht bedeutet, dass der Code der Aufgabe gerade geladen ist oder aktiv ist - die Aufgabe wurde möglicherweise vom System eingefroren, so dass sie im vorherigen Zustand erneut gestartet werden kann, wenn sie in den Vordergrund gebracht wird.

Aktualisierung:

Jetzt der Unterschied zwischen Task und Prozess .

In Android ist eine Aufgabe eine Menge oder Sie können eine Sammlung von Aktivitäten sagen. Es dreht sich alles um Benutzerinteraktion mit diesen Aktivitäten. Android behält diese Aktivitäten im Stapel bei, entsprechend werden sie geöffnet und behalten diesen Stapel bei. Kann ein Stapel oder viele Stapel sein, die zuletzt geöffnete Aktivität oben auf dem Stapel. Android hält den Zustand des Systems aufrecht. Eine Anwendung hat eine eigene Aufgabe mit geöffneten Aktivitäten. Wenn neue Anwendung gestartet wird, erstellt das System eine neue Aufgabe mit neuen Aktivitäten in der LIFO-Struktur. Und wenn der Benutzer mit dieser Aufgabe auf dem Startbildschirm interagiert, navigiert er einfach zu einer bestimmten Anwendung und die Aufgabe dieser Anwendung wird nun zum Vordergrund.

While Process ist mit der Android-Anwendungskomponente verknüpft. Jede neue Android-Anwendung startet im neuen Prozess (Linux-Prozess) in einem eigenen Benutzerbereich. Alle Anwendungskomponenten werden standardmäßig auf demselben Prozess ausgeführt. Und es wird als Single-Thread-Prozess ausgeführt. Deshalb heißt es Main Thread of Application. Hier können Sie jedoch einen separaten Prozess für verschiedene Android-Anwendungskomponenten wie Aktivität, Service, Provider oder Broadcast-Empfänger mit dem Manifest-Attribut android:process definieren. Android Process verfügt über die gleiche Grundstruktur wie Linux Process mit UserId, sodass Sie verschiedene Android-Anwendungskomponenten, die auf demselben Prozess laufen, mit derselben UserId kombinieren können.

Also, während Sie getRunningAppProcesses() aufrufen. Damit erhalten Sie alle laufenden Prozesse der Android-Anwendung, die mit dem Ausführen von Anwendungskomponenten zusammenhängen.

Und getRunningTasks (int maxNum) enthält eine Liste der erstellten Aufgaben für verschiedene laufende Anwendungen von Systemen, während der Benutzer mit Anwendungen interagiert.

    
user370305 16.11.2011, 08:20
quelle
8

Die vorherige "Antwort" ist das Ersetzen eines unbekannten Themas durch ein anderes. Die Frage bezieht sich auf die Systemdefinition, nicht darauf, wie man verwandte Informationen und Unterschiede zwischen Methoden und Klassen erhält.

Eigentlich in der Android-Task = Anwendung und besteht aus Aktivitäten.

Prozess ist eine Division durch Speichertrennung und eine Menge von laufenden Threads ist separierter Speicher.

Standardmäßig ist die Anwendung ein Prozess. Der Entwickler kann durch die Verwendung des Attributs "android: process" in "activity", "service", "receiver" und anderer Definition ausführbarer Einheiten innerhalb der Manifest-Zeit eine weitere Trennung durch Prozesse definieren.

Siehe Ссылка

    
Simon 09.11.2012 05:59
quelle
3

Android hat Linux-Kernel. Der Prozess ähnelt also den Prozessen in Linux. Jeder Prozess kann mehrere Threads haben. Wenn ein Prozess gestartet wird, wird standardmäßig ein Thread ausgeführt. Dieser Thread wird als Hauptthread oder UI-Thread bezeichnet. Möglicherweise werden andere Worker- oder asynchrone Threads in einem Prozess ausgeführt.

Aufgabe oder Anwendung andererseits können als eine Menge von Aktivitäten in einer Anwendung visualisiert werden. Es ist möglich, dass jede Aktivität in der Aufgabe so konfiguriert ist, dass sie in verschiedenen Prozessen ausgeführt wird. Gleiches gilt für andere Berechtigungen von Android - Dienste, Provider usw. Infact-Komponenten verschiedener Tasks / Anwendungen können im selben Prozess laufen (vorausgesetzt, die Anwendungen teilen dieselbe Linux-Benutzer-ID und sind mit denselben Zertifikaten signiert).

Wenn die Arbeitsgeschwindigkeit des Systemspeichers niedrig ist, wird ein älterer Prozess beendet. Beachten Sie, dass dies Komponenten unterschiedlicher Anwendung haben kann.

%Vor%

Oben werden Sie laufende Aufgaben geben, oder besser gesagt, wir können sie Anwendung nennen, die aus einer Reihe von Aktivitäten besteht. (Liste von RunningTaskInfo -Objekten). Dies wird wiederum zwei wesentliche Dinge haben.

  1. baseActivity: Komponente, die als erste Aktivität in der Aufgabe
  2. gestartet wurde
  3. topActivity: Aktivitätskomponente am Anfang des Verlaufsstapels der Aufgabe

und

%Vor%

Oben werden alle laufenden Prozesse im System angezeigt. Da es sich um einen Prozess handelt, wird ihm pid (processId) und 'uid (userId) zugeordnet. Einige der wichtigen Felder hier sind -

  1. processName: Der Name des Prozesses, dem dieses Objekt zugeordnet ist
  2. pid: Die Pid dieses Prozesses; 0 wenn keine
  3. uid: Die Benutzer-ID dieses Prozesses.
  4. pkgList: Alle Pakete, die in den Prozess geladen wurden.
Aniket Thakur 19.12.2014 18:09
quelle

Tags und Links