StartAndroidAndroid-App-Struktur verstehen: Activities und Services

Android-App-Struktur verstehen: Activities und Services

Android-Apps haben im Vergleich zu anderen Plattformen wie iOS, Windows oder macOS eine ausgeprägte Struktur. Unabhängig davon, ob Sie gerade erst mit der Entwicklung von Android-Apps beginnen oder Ihr Wissen vertiefen möchten, ist es wichtig, die Schlüsselkomponenten zu verstehen, aus denen Android-Apps bestehen.

In diesem Artikel wird Bardimin Activity, Fragment, Intent, Broadcast Receiver und Service im Detail besprechen, die die Kernkomponenten sind, um sicherzustellen, dass Android-Apps ordnungsgemäß funktionieren.

Wenn Sie verstehen, wie jede dieser Komponenten funktioniert und interagiert, können Sie eine Anwendung erstellen, die nicht nur effizient, sondern auch einfach zu verwalten und weiterzuentwickeln ist. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Leitfaden hilft Ihnen, die Struktur von Android-Apps zu verstehen und sie in Ihren Projekten zu implementieren.

Beginnen wir mit der Untersuchung von Activity, den grundlegenden Komponenten, die für die Anzeige der Benutzeroberfläche (UI) in Android-Apps verantwortlich sind.

Android Application Structure

1. Activity: Grundlegende Benutzeroberfläche

Activity ist eines der wichtigsten Elemente bei der Entwicklung von Android-Apps. Dieses Element ist für die Anzeige der (UI) user interface verantwortlich und regelt die Benutzerinteraktion mit der Anwendung. Jede Activity stellt in der Regel eine einzelne Ansicht innerhalb der App dar, und Android-Apps bestehen oft aus mehreren Activity, die zusammenarbeiten, um eine umfassende Benutzererfahrung zu bieten.

Beispiel: In einer Kalender-App:

  • Activity Erste: Zeigt eine Liste der Tagespläne der Benutzer an.
  • Activity Zweitens: Ermöglicht es Benutzern, neue Termine durch Ausfüllen von Formularen hinzuzufügen.

Setiap Activity ist für die Ausführung bestimmter Aufgaben konzipiert und kann separat aufgerufen werden, sowohl aus der App selbst als auch aus anderen Apps. Das macht Activity zu einer hochflexiblen und wiederverwendbaren Komponente.

Hauptmerkmale der Tätigkeit

  • Unabhängig: Jedes Activity arbeitet unabhängig und ist unabhängig von anderen Activity.
  • Kann von Intent aufgerufen werden : Activity kann mit Intent aufgerufen werden, entweder explizit (direkte Erwähnung des Klassennamens) oder implizit (Angabe der Aktion, die Sie ausführen möchten).
  •  (Lifecycle) Lifecycle: Activity verfügt über Lebenszyklen, die von Android-Systemen verwaltet werden, z. B. onCreate(), onStart(), onResume() und onDestroy(), die es Entwicklern ermöglichen, das Verhalten der App zu steuern, wenn Activity erstellt, angezeigt oder gestoppt wird.

Funktionsweise der Aktivität

Activity arbeitet autonom, was bedeutet, dass jedes Activity funktionieren kann, ohne auf andere Activity angewiesen zu sein. Dadurch können Activity in einer Vielzahl von Anwendungen wiederverwendet werden.

Beispiele für die Wiederverwendung von Aktivitäten

  • E-Mail-Apps: Eine E-Mail-App kann über eine Activity zum Senden von Nachrichten verfügen. Activity kann von anderen Apps, z. B. der Kalender-App, verwendet werden, um Besprechungseinladungen zu senden, ohne dass eine neue Activity von Grund auf neu erstellt werden muss.
  • Social Media Apps: Activity zum Teilen von Inhalten können in verschiedenen Apps wiederverwendet werden, z. B. in Fotogalerien oder Nachrichten-Apps.

Die Möglichkeit, diese Activity wiederzuverwenden, spart nicht nur Zeit bei der Entwicklung, sondern sorgt auch für die Konsistenz der Benutzeroberfläche in verschiedenen Anwendungen.

Kommunikation zwischen den Aktivitäten

Activity können nicht persönlich interagieren. Alternativ bietet Android einen Mechanismus namens Intent, um einen weiteren Activity zu starten und Daten zwischen Activity zu übertragen.

Funktionsweise von Intent

Sie können Intent verwenden, um eine neue Activity aus einem aktiven Activity zu öffnen. Wenn ein Benutzer beispielsweise in der Kalender-App auf die Schaltfläche “Termin hinzufügen” klickt, öffnet Intent eine neue Activity zum Ausfüllen des Terminformulars.

Intent können auch Informationen von einem Activity zum anderen übertragen Activity. Sie können z. B. Termindetails aus der Terminliste Activity an die Activity Termindetails senden.

Beispiele für die Verwendung von Absichten

  • E-Commerce-Apps: Wenn Benutzer Produkte aus der Liste auswählen, wird Intent verwendet, um Produktdetails Activity zu öffnen und Informationen wie Produktnamen, Preise und Bilder zu senden.
  • Chat-App: Intent verwendet, um Chat-Activity zu öffnen und Daten wie Benutzer-IDs und Kontaktnamen zu senden.

2. Fragment: Modularität in der Benutzeroberfläche

Fragment ist ein wichtiges Element in der Entwicklung von Android-Apps, das es ermöglicht, Activity in kleine, modulare Teile zu zerlegen. Jedes Fragment verfügt über eine eigene (UI) -Benutzeroberfläche und -Logik, was die Verwaltung einer flexibleren und dynamischeren Benutzeroberfläche erleichtert.

Durch die Nutzung Fragment können Sie Apps erstellen, die besser auf unterschiedliche Bildschirmgrößen und Geräteausrichtungen reagieren, z. B. auf Smartphones, Tablets oder faltbare Geräte.

Vorteile der Verwendung von Fragment

Fragment bietet einige wichtige Vorteile bei der Entwicklung von Android-Apps:

  1. Modularität: Durch die Unterteilung Activity in Fragment können Sie jeden Teil der Schnittstelle separat verwalten, was die Entwicklung und Wartung von Code erleichtert.
  2. Flexibilität: Fragment ermöglicht das Erscheinungsbild mehrerer Teile der Benutzeroberfläche in einem einzigen Activity, was besonders nützlich für Geräte mit großen Bildschirmen wie Tablets ist.
  3. Wiederverwendbarkeit: Fragment kann in einer Vielzahl von Activity wiederverwendet werden, wodurch Codewiederholungen reduziert und die Entwicklungseffizienz verbessert werden.
  4. Anpassungsfähigkeit: Fragment einfache Anpassung der Benutzeroberfläche an verschiedene Bildschirmgrößen und Geräteausrichtungen.

Beispiele für die Verwendung von Fragmenten in E-Commerce-Anwendungen:

  • Fragment Erste: Zeigt die Liste der Produkte auf der linken Seite des Bildschirms an.
  • Fragment Zweite: Zeigt Produktdetails auf der rechten Seite des Bildschirms an.
  • Auf Mobilgeräten wird jeweils nur ein Fragment angezeigt, während auf Tablets beide Fragment gleichzeitig angezeigt werden können.

So  funktioniert Fragment

Fragment haben einen ähnlichen Lebenszyklus wie Activity, einschließlich Methoden wie onCreateView(), onStart() und onDestroyView(). Der Lebenszyklus hängt jedoch Fragment mit dem Activity zusammen, der ihn anzeigt.

Sie können Activity mithilfe von FragmentManager und FragmentTransaction Fragment hinzufügen.

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =   fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container, new MyFragment()));
fragmentTransaction.commit();

Fragment können nicht direkt miteinander kommunizieren. Alternativ erfolgt die Kommunikation über den Activity, in dem sich der Fragment befindet, oder über eine Schnittstelle (interface) zur Datenübertragung.

3. Intent: Kommunikationsmechanismus zwischen den Komponenten

Intent ist einer der Schlüsselmechanismen bei der Entwicklung von Android-Apps. Diese Komponente wird verwendet, um eine Activity zu starten, zu Service oder Broadcast zu senden. Darüber hinaus ermöglicht Intent auch die Kommunikation zwischen Komponenten innerhalb derselben Anwendung oder sogar zwischen verschiedenen Anwendungen.

Intent kann unterschieden werden in:

  • Explizit: Ruft eine bestimmte Komponente (z. B. Activity oder Service) auf, indem ihr Klassenname direkt erwähnt wird.
  • Implizit: Geben Sie die Aktion an, die Sie ausführen möchten, oder den Datentyp, den Sie verarbeiten möchten, und das Android-System wählt die am besten geeignete Komponente aus.

Arten von Absichten

1. Explicit Intent

Explicit Intent wird verwendet, wenn Sie genau wissen, welche Komponente Sie aufrufen möchten, z. B. eine bestimmte Activity oder Service in Ihrer Anwendung.

So funktioniert’s:

Sie geben den Namen der Komponentenklasse an, auf die Sie zugreifen möchten. Zum Beispiel das Starten eines neuen Activity, um Produktdetails anzuzeigen.

Intent intent  new Intent(this, ProductDetailActivity.class);
startActivity(intent);

Anwendungsbeispiel:

  • Starten Sie eine neue Activity, um das Anmeldeformular anzuzeigen.
  • Starten Sie Service, um Dateien im Hintergrund herunterzuladen.

2. Intent Implicit

Intent Implicit wird verwendet, wenn Sie das Android-System auffordern möchten, die am besten geeignete Komponente basierend auf den von Ihnen angegebenen Aktionen oder Datentypen auszuwählen.

So funktioniert’s:

Sie geben die Aktionen (z. B. ACTION_VIEW) und Daten (z. B. URIs oder MIME-Typen) an, die Sie verarbeiten möchten. Das Android-System sucht nach einer Komponente, die die Anfrage verarbeiten kann.

Intent intent =new Intent(Intent.ACTION_VIEW, Uri.parse(“https://www.example.com”)));
startActivity(intent);

Anwendungsbeispiel:

  • Öffnen Sie die URL im Standardbrowser des Benutzers.
  • Teilen Sie Text oder Bilder mit anderen Apps (z. B. sozialen Medien oder E-Mails).
  • Wählen Sie die App aus, um die PDF-Datei zu öffnen.

Der Unterschied zwischen expliziter und impliziter Absicht

AspekteExplicit IntentImplicit Intent
ZweckRuft bestimmte Komponenten in der Anwendung auf.Aufforderung an das System, die entsprechende Komponente auszuwählen.
GebrauchenWird für die interne Navigation der Anwendung verwendet.Wird verwendet, um mit anderen Anwendungen oder Systemkomponenten zu interagieren.
BeispielStarten Sie die Aktivität Produktdetails.Öffnen Sie die URL in einem Browser oder geben Sie Inhalte frei.

Beispiele für die Verwendung von Intent in Apps

1. E-Commerce-Anwendungen:

  • Explicit Intent: Beginnt Activity Produktdetails, wenn der Benutzer auf einen Artikel in der Produktliste klickt.
  • Implicit Intent: Teilen Sie Produktdetails mit Social-Media-Apps oder E-Mails.

2. Social-Media-Anwendungen:

  • Explicit Intent: Startet einen Kommentar Activity wenn der Benutzer auf die Schaltfläche “Kommentare anzeigen” klickt.
  • Implicit Intent: Öffnet einen externen Link im Standardbrowser des Benutzers.

3. Musik-Apps:

  • Explicit Intent: Startet Service, um einen Song im Hintergrund abzuspielen.
  • Implicit Intent: Teilen Sie Songs mit anderen Apps wie WhatsApp oder Instagram.

4. Broadcast Receiver: Reagieren auf Systemänderungen

Broadcast Receiver ist eine wesentliche Komponente in einer Android-App, die es Ihrer App ermöglicht, auf Broadcast Intent zu reagieren, die vom Android-System oder anderen Apps gesendet werden. Broadcast Intent ist eine Systemnachricht, die Sie über eine Statusänderung oder ein bestimmtes Ereignis informiert, z. B. eine Änderung des Akkustatus, der Netzwerkverbindung oder eine eingehende SMS-Nachricht.

Durch die Verwendung von Broadcast Receiver können Sie Apps erstellen, die besser auf Änderungen in der Umgebung oder im System reagieren und so eine bessere Benutzererfahrung bieten.

So funktioniert Broadcast Receiver

Broadcast Receiver läuft im Hintergrund und hat keine Benutzeroberfläche. Sie sind so konzipiert, dass sie schnell und effizient auf Broadcast Intent reagieren. Hier sind einige wichtige Punkte zur Funktionsweise von Broadcast Receiver:

1. Anmeldung:

  • Broadcast Receiver müssen auf dem Android-System registriert sein, um auf Broadcast Intent zu antworten.
  • Die Registrierung kann entweder statisch (über AndroidManifest.xml) oder dynamisch (über Programmcode) erfolgen.

Beispiel für eine statische Registrierung in AndroidManifest.xml:

   <receiver android:name=“.MyBroadcastReceiver”>
    <intent-filter>
  <action android:name=“android.intent.action.BATTERY_LOW” />
  </intent-filter>
  </receiver>

Beispiel für die dynamische Registrierung im Code:

   IntentFilter filter  new IntentFilter(Intent.ACTION_BATTERY_LOW);
    MyBroadcastReceiver receiver   new MyBroadcastReceiver();
   registerReceiver(receiver, filter);

2. Begrenzte Ausführungszeit:

  • Broadcast Receiver hatten nur etwa 5 Sekunden  Zeit, um die Aufgabe zu erledigen.
  • Wenn eine Aufgabe länger dauert, z. B. das Herunterladen von Daten oder das Verarbeiten von Dateien, empfehlen wir Ihnen, Service zu starten oder WorkManager zu verwenden.

3. Machbare Aufgaben:

  • Benachrichtigungen senden : Benachrichtigen Sie Benutzer über Statusänderungen, z. B. schwache Batterie oder Internetverbindungen.
  • Dienst starten: Starten Sie den Dienst, um Hintergrundaufgaben auszuführen, z. B. die Datensynchronisierung.
  • Daten aktualisieren: Aktualisieren Sie lokale Daten oder senden Sie Daten an einen Server.

Arten von Broadcast Intent

Broadcast Intent kann in zwei Typen unterteilt werden:

1. Normal Broadcast:

  • Asynchron an alle registrierten Broadcast Receiver gesendet.
  • Beispiel: ACTION_BOOT_COMPLETED (wird gesendet, wenn das Gerät den Bootvorgang abgeschlossen hat).

2. Ordered Broadcast:

  • Wird nacheinander an jeweils einen Broadcast Receiver gesendet.
  • Broadcast Receiver können die Ergebnisse ändern oder die Ausbreitung von Broadcast Intent stoppen.
  • Beispiel: ACTION_NEW_OUTGOING_CALL (wird gesendet, wenn ein Benutzer einen ausgehenden Anruf tätigt).

Beispiele für die Verwendung von Broadcast-Empfängern

1. Reagieren auf Batteriewechsel:

  • Broadcast  Receiver können erkennen, wenn der Akku des Geräts schwach ist (ACTION_BATTERY_LOW) oder aufgeladen wird (ACTION_BATTERY_OKAY).
  • Beispiel: Senden einer Benachrichtigung an den Benutzer, wenn der Akku schwach ist.

2. Reagieren auf Änderungen der Netzwerkkonnektivität:

  • Broadcast Receiver können Änderungen in der Internetverbindung (ACTION_CONNECTIVITY_CHANGE) erkennen.
  • Beispiel: Zeigt eine Meldung an, wenn ein Gerät die Internetverbindung verliert.

3. Beantwortung eingehender SMS-Nachrichten:

  • Broadcast Receiver können eingehende SMS-Nachrichten (ACTION_SMS_RECEIVED) erkennen.
  • Beispiel: Benachrichtigungen anzeigen oder SMS-Nachrichten automatisch verarbeiten.

5. Service: Hintergrundprozess ohne UI

Service ist eine wesentliche Komponente in einer Android-App, mit der Sie Aufgaben im Hintergrund ohne Benutzeroberfläche ausführen können. Service eignet sich ideal für Aufgaben, die auch dann ausgeführt werden müssen, wenn die App nicht verfügbar ist, z. B. Musikstreaming, Datensynchronisierung oder Standortaktualisierungen.

Durch die Verwendung von Service können Sie sicherstellen, dass Ihre App auch dann ordnungsgemäß funktioniert, wenn Benutzer nicht direkt mit der App interagieren.

Arten von Dienstleistungen

Service kann in zwei Haupttypen unterteilt werden:

1. Started Service

Started Service ist ein Typ von Service, der von einer anderen Komponente gestartet wird, z. B. Activity oder Broadcast Receiver, und so lange ausgeführt wird, bis die Aufgabe abgeschlossen ist.

So funktioniert’s:

  • Started Service beginnt mit dem Aufruf der startService()-Methode.
  • Service wird im Hintergrund ausgeführt, bis die Aufgabe abgeschlossen oder manuell gestoppt wird.
  • Sobald die Aufgabe abgeschlossen ist, wird der Service automatisch gestoppt.

Beispiel-Code:

Intent intent =  new Intent(this, MyStartedService.class);
startService(intent);

2. Bound Service

Bound Service ist ein Typ von Service, der an andere Komponenten gebunden wird, z. B. Activity oder Fragment, und so lange ausgeführt wird, wie diese Komponenten aktiv sind.

So funktioniert’s:

  • Bound Service beginnt mit dem Aufruf der bindService()-Methode.
  • Service wird so lange ausgeführt, wie Komponenten daran angehängt sind.
  • Wenn alle Komponenten die Bindung lösen, stoppt der Service automatisch.

Beispiel-Code:

Intent intent =new Intent(this, MyBoundService.class);
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);

Der Unterschied zwischen gestartetem Dienst und gebundenem Dienst

AspekteStarted ServiceBound Service
Wie man anfängtBeginnend mit startService().Beginnend mit bindService().
DauerWird ausgeführt, bis die Aufgabe abgeschlossen oder gestoppt ist.Wird so lange ausgeführt, wie Komponenten angefügt sind.
KommunikationEs kann nicht direkt mit anderen Komponenten kommuniziert werden.Kann direkt mit geklebten Bauteilen kommunizieren.
AnwendungsbeispieleMusikstreaming, Datensynchronisierung.Musikplayer, Echtzeit-Kommunikation.

Beispiele für die Nutzung von Diensten in Anwendungen

1. Musik-Apps:

  • Started Service: Spielen Sie Musik im Hintergrund ab, wenn die App inaktiv ist.
  • Bound Service: Steuern Sie die Wiedergabe von Musik von Activity oder Fragment.

2. Sport-Apps:

  • Started Service: Verfolgt den Standort des Benutzers beim Laufen oder Radfahren.
  • Bound Service: Zeigt Echtzeit-Standort- und Geschwindigkeitsdaten auf dem Activity an.

3. Chat-App:

  • Started Service: Senden und Empfangen von Nachrichten im Hintergrund.
  • Bound Service: Zeigt neue Nachrichten in Echtzeit auf Activity an.

6. Content Provider: Datenaustausch zwischen Anwendungen

Content Provider ist eine wesentliche Komponente in Android-Apps, die es Apps ermöglicht, Daten mit anderen Apps zu teilen. Mit Content Provider können Sie anderen Apps Zugriff auf die Daten Ihrer App gewähren, z. B. Kontaktlisten, Mediendateien oder Datenbanken.

Content Provider ermöglicht Ihrer App auch den Zugriff auf Daten aus anderen Apps, z. B. den Zugriff auf die Kontaktliste oder Fotogalerie eines Benutzers.

So verwenden Sie Content Provider

Content Provider bietet eine standardisierte Schnittstelle für den Zugriff auf und die Manipulation von Daten. Der Datenzugriff erfolgt über URI (Uniform Resource Identifier) die durch die Content Provider definiert sind.

1. Zugriff auf Daten von Content Provider

Um auf Daten aus dem Content Provider zuzugreifen, müssen Sie die entsprechenden ContentResolver und URI verwenden.

Beispiel für den Zugriff auf eine Kontaktliste:

Uri uri =ContactsContract.Contacts.CONTENT_URI;
Cursor cursor =getContentResolver().query(uri, null, null, null, null);
if (cursor != null) {
    while   (cursor.moveToNext()) {
     String name  cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
     Log.d(“Contact”, name);
        }
    cursor.close();
}

2. Hinzufügen, Ändern oder Löschen von Daten

Sie können Daten auch über Content Provider mit ContentResolver hinzufügen, ändern oder löschen.

Hinzufügen von Daten:

ContentValues values =  new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, “John Doe”);
Uri newContactUri =getContentResolver().insert(ContactsContract.Contacts.CONTENT_URI, values);

Ändern von Daten:

ContentValues values =  new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, “Jane Doe”);
getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values, null, null);

Löschen von Daten:

getContentResolver().delete(ContactsContract.Contacts.CONTENT_URI, null, null);

Beispiele für die Verwendung von Content Provider

1. Kontakt Anwendung:

  • Content Provider ermöglicht es anderen Apps, auf die Kontaktliste des Benutzers zuzugreifen.
  • Beispiel: Eine Messaging-App verwendet eine Content Provider, um den Kontakt des Empfängers auszuwählen.

2. Fotogalerie-App:

  • Content Provider ermöglicht es anderen Apps, auf Fotos und Videos zuzugreifen, die auf dem Gerät gespeichert sind.
  • Beispiel: Eine Social-Media-App verwendet eine Content Provider, um Fotos zum Hochladen auszuwählen.

3. Kalender-App:

  • Content Provider ermöglicht es anderen Apps, auf Zeitpläne und Ereignisse im Kalender des Benutzers zuzugreifen.
  • Beispiel: Eine Erinnerungs-App verwendet eine Content Provider, um Ereignisse zum Kalender hinzuzufügen.

7. Application Manifest: Kleber, der Anwendungen zusammenhält

Application Manifest ist eine XML-Datei, die als “Klebstoff” dient, der alle Komponenten einer Android-App zusammenhält. Diese Datei definiert die Struktur der Anwendung, einschließlich Activity, Service, Broadcast Receiver und Content Provider, sowie die für die Anwendung erforderlichen Berechtigungen.

Die wichtige Rolle von Application Manifest

1. Definieren von Anwendungskomponenten:

  • Activity: Definiert den Bildschirm oder die Benutzeroberfläche.
  • Service: Definieren Sie den Hintergrundprozess.
  • Broadcast Receiver: Definiert die Komponenten, die auf Systemmeldungen reagieren.
  • Content Provider: Definieren Sie den Mechanismus des Datenaustauschs.

Beispiel für Activity Definition  in AndroidManifest.xml:

<activity android:name=“.MainActivity”>
   <intent-filter>
     <action android:name=“android.intent.action.MAIN” />
  <category android:name=“android.intent.category.LAUNCHER” />
  </intent-filter>
</activity>

2. Erklären Sie die Erlaubnis:

  • Android-Apps benötigen eine Berechtigung, um auf bestimmte Funktionen wie Kamera, Standort oder Internet zugreifen zu können.
  • Diese Genehmigung wurde im AndroidManifest.xml erteilt.

Beispiel für eine Berechtigungsdeklaration:

<uses-permission android:name=“android.permission.CAMERA” />
<uses-permission android:name=“android.permission.INTERNET” />

3. Definieren von Anwendungsmetadaten:

  • Application Manifest enthält auch Informationen wie App-Name, Symbol, Design und Version.

Beispiel für App-Metadaten:

<application
   android:name=“.MyApplication”
    android:icon=“mipmap/ic_launcher”
    android:label=“string/app_name”
     android:theme=“style/AppTheme”>
</application>

8. Application Resources: Assets für die Benutzeroberfläche

Die Android-App speichert Ressourcen wie Zeichenfolgen, Bilder, Schriftarten und UI-Layouts im Verzeichnis /res. Diese Ressourcen werden getrennt vom Programmcode verwaltet, sodass Sie die App problemlos an verschiedene Geräte, Sprachen und Bildschirmausrichtungen anpassen können.

Arten von Ressourcen

1. String: Text, der in der App verwendet wird, z. B. Titel, Nachrichten oder Beschriftungen.

Gespeichert in res/values/strings.xml.

Beispiel:

<string name=“app_name”>My App</string>
<string name=“welcome_message”>Welcome to My App!</string>

2. Bilder: Visuelle Assets wie Symbole, Hintergrundbilder oder Illustrationen.

Gespeichert in res/drawable/ oder res/mipmap/.

Beispiele: ic_launcher.png, background.jpg.

3. (Layout) Layout: Eine XML-Datei, die die Struktur der Benutzeroberfläche definiert.

Gespeichert in res/layout/.

Beispiele: activity_main.xml, fragment_detail.xml.

4. Farbe: Die Definition der Farbe, die in der Anwendung verwendet wird.

Gespeichert in res/values/colors.xml.

Beispiel:

<color name=“primary_color”>6200EE</color>
<color name=“secondary_color”>03DAC6</color>

5. Abmessungen: Die Größe und der Abstand, die im Layout verwendet werden.

Gespeichert in res/values/dimens.xml.

Beispiel:

<dimen name=“padding_small”>8dp</dimen>
<dimen name=“text_size_large”>24sp</dimen>

Zugreifen auf Ressourcen über Klasse R

Wenn eine App kompiliert wird, generiert Android automatisch eine R-Klasse, die Verweise auf alle Ressourcen enthält, die im Verzeichnis /res definiert sind. Sie können über die R-Klasse im Programmcode auf diese Ressourcen zugreifen.

Beispiel für den Zugriff auf Zeichenfolgen:

String appName =getString(R.string.app_name);

Beispiel für den Zugriff auf Bilder:

ImageView imageView =findViewById(R.id.my_imagee_view);
imageView.setImageResource(R.drawable.ic_launcher);

Beispiel für den Zugriff auf ein Layout:

setContentView(R.layout.activity_main);

Schlussfolgerung

Wenn Sie die wichtigsten Komponenten wie Activity, Fragment, Intent und Service verstehen, können Sie effizientere, modularere und verwaltbarere Android-Apps erstellen. Jede Komponente hat eine bestimmte Rolle, die es der App ermöglicht, sowohl im Vordergrund als auch im Hintergrund ordnungsgemäß zu funktionieren.

Darüber hinaus ermöglichen Komponenten wie Broadcast Receiver und Content Provider Ihrer App, auf Systemänderungen zu reagieren und Daten mit anderen Apps zu teilen.

Durch die Nutzung von Application Manifest und Application Resources können Sie die Struktur Ihrer Anwendung definieren und Assets wie Zeichenfolgen, Bilder und Layouts besser organisieren.

Neueste Artikel