[JAVA] Informationen zu Android-App-Komponenten

Überblick

Vor kurzem habe ich mich entschlossen, während eines Praktikums eine Android-Anwendung zu entwickeln, und es fiel mir schwer, die Komponenten zu verstehen. Deshalb werde ich das Gelernte anstelle eines Memos aufschreiben. Es ist ziemlich rudimentär und möglicherweise nicht sehr hilfreich: zufrieden:

Bücher zum Lernen verwendet

Einführung in die Entwicklung von Android-Anwendungen, die Sie aus den Grundlagen lernen können

Übersicht und Rolle jeder Komponente

Aktivität
Es ist eine Komponente zum Anzeigen des Bildschirms der Anwendung, und es gibt einen Mechanismus zum Speichern / Wiederherstellen des Status und zum Aufrufen anderer Komponenten. Der Mechanismus, der beim Aufrufen anderer Aktivitäten Informationen als Nachricht an das System übermittelt, heißt intent .
Fragment
Eine Darstellung der Benutzeroberfläche der Aktivität und eines Teils von gestern. Dies ist praktisch, da Sie die Anzeigemethode abhängig von der Größe des Bildschirms ändern und die einheitliche Benutzeroberfläche und Logik von der Aktivität unabhängig machen können.
Service
Eine Komponente, die im Hintergrund ausgeführt wird und keine Benutzeroberfläche bietet. Da es getrennt vom Hauptprozess betrieben werden kann, ist es praktisch, wenn Sie den Prozess so ausführen möchten, dass das Verhalten des Benutzers nicht beeinträchtigt wird, oder wenn Sie den Prozess fortsetzen möchten, ohne vom Lebensstil der Aktivität beeinflusst zu werden. Da es jedoch im Wesentlichen auf dem Hauptthread desselben Prozesses wie die Anwendung ausgeführt wird, sollten Sie bei der Implementierung vermeiden, den Prozess zu schreiben, der die CPU unverändert überlastet, und ihn ausführen, nachdem Sie einen Thread am Service-Standort
Inhaltsanbieter
Eine Komponente, die den Zugriff auf Daten ermöglicht, die von der App verwaltet werden. Es bietet eine Schnittstelle, über die Daten unabhängig vom Format der verwalteten Daten erfasst und bearbeitet werden können. Das Android SDK enthält von Anfang an mehrere Inhaltsanbieter, sodass Sie Fotos, Kalenderinformationen, Kontaktinformationen usw., die mit der Kamera aufgenommen wurden, problemlos abrufen und aktualisieren können.
Rundfunkempfänger
Empfängt die Broadcast-Absicht und verarbeitet sie. Absichten können von einzelnen Apps gesendet werden, sie können jedoch auch vom System ausgegeben werden (wenn das Gerät an ein Ladegerät angeschlossen ist, wenn sich das Datum ändert usw.). Standardmäßig zeigt der Rundfunkempfänger ein Dialogfeld an, in dem der Benutzer gefragt wird, ob der Prozess zwangsweise beendet werden soll, wenn der Prozess nicht innerhalb von 10 Sekunden abgeschlossen ist. Daher wird er nur zum Aufrufen des Dienstes verwendet, der die Daten aktualisiert, und des Prozesses selbst. Sollte auf der Seite des anrufenden Dienstes erfolgen.

Komponentenlebenszyklus

Aktivität
Die Rückrufmethode wird jedes Mal aufgerufen, wenn sich der Status ändert. Der Entwickler führt eine Verarbeitung durch, die jedem Status in dieser Rückrufmethode entspricht.
Fragment
Grundsätzlich wird die Verarbeitung nach der Rückrufmethode wie die Aktivität beschrieben, aber da das Fragment eine in der Aktivität platzierte Komponente ist, beeinflusst dies den Lebensstil der Aktivität Erhalten. Wenn eine Aktivität zerstört wird, werden auch die Fragmente dieser Aktivität zerstört.
Service
Abhängig von den beiden Startmethoden, dem Status "gestartet" von startService () und dem Status "gebunden" von bindService (), gibt es unterschiedliche Formen. Im ersteren Fall wird das System nicht gestoppt, es sei denn, es wird aufgrund von Speichermangel gestoppt oder explizit beendet. Daher muss es explizit beendet werden, wenn es nicht mehr benötigt wird, um eine unnötige Speicherbelegung zu verhindern. Im letzteren Fall sind die ausgeführte Komponente und der Dienst eine Art Client-Server-Beziehung. Wenn der Anrufer die Verbindung aufhebt, wird der Dienst beendet. In diesem Fall können mehrere Komponenten an denselben Dienst gebunden werden.
Inhaltsanbieter
Wird beim Start der App generiert und nicht zerstört, solange der Vorgang fortgesetzt wird. Grundsätzlich ist es nicht erforderlich, den Lebenszyklus des Inhaltsanbieters zu kennen.
Rundfunkempfänger
OnReceive () Überlebt nur. Wenn onReceive () beendet ist, wird es als unnötiges Objekt betrachtet und bald zerstört. Wenn Sie jedoch die goAsync () -Methode lesen, kann sie ausgeführt werden, bis Sie die finish () -Methode der PendingResult-Klasse aufrufen, bei der es sich um den Rückgabewert handelt.
(Referenz) Aktivitätslebenszyklus ![activity_lifecycle_pic](https://qiita-image-store.s3.amazonaws.com/0/124827/a181161c-9628-b89e-e644-9af1b4c9e3f7.jpeg) #### Lebenszyklusvisualisierung Jede Komponente hat ihren eigenen Lebenszyklus, und die Verarbeitung, die in jeder Phase des Lebenszyklus durchgeführt werden kann, ändert sich, was die Komplexität von Smartphone-Apps verursacht. Klassen, die für lebenszyklussensitive Prozesse wie Anzeige und Benutzereingaben verantwortlich sind, sollten so einfach wie möglich gestaltet werden. Prozesse wie Geschäftslogik und Datenpersistenz sollten so gestaltet werden, dass sie nicht vom Lebensstil der Aktivität beeinflusst werden.

Schließlich

Das Obige ist eine kurze Zusammenfassung der Komponenten. Ich lerne zurzeit mit einem Taschenrechner und einem Notizblock. Wenn ich Lust dazu habe, möchte ich anstelle einer Notiz etwas über die Implementierung schreiben. : kissing_closed_eyes: chu ☆

Ishikawa ist immer noch kalt: Maske:

Recommended Posts