Erstellen einer Android-App

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Mobile Android-Anwendungsentwicklung


Hinweis: Auf dieser Seite wird die Entwicklung von geräteübergreifenden Anwendungen für die Android-Plattform beschrieben. Themen, die sich nicht auf die Entwicklungsphase beziehen, z. B. das Konfigurieren Ihres PCs und der Android-Geräte für die Zusammenarbeit mit Appmethod, finden Sie unter Mobile Android-Anwendungsentwicklung.

So erstellen Sie eine geräteübergreifende App, die Android unterstützt:

Datei > Neu > Geräteübergreifende Anwendung - Object Pascal
Datei > Neu > Geräteübergreifende Anwendung - C++

Wählen Sie dann im Experten Geräteübergreifende Anwendung einen geräteübergreifenden Anwendungstyp aus.

Komponentenbeschränkungen bei FireMonkey-Apps für Android

Während des Entwurfs von Android-Apps in Appmethod können Sie nur Komponenten verwenden, die auf Android-Geräten unterstützt werden. Wenn Android die aktive Zielplattform Ihres Projekts ist, dann sind in der Tool-Palette nicht unterstützte Komponenten abgedunkelt dargestellt.

Stilauswahl

Oben im Formular-Designer für geräteübergreifende Anwendungen wird die Stilauswahl angezeigt: StylesFormDes.png

Im Dropdown-Menü der Stilauswahl sind alle Stile aufgeführt, die Sie für die Master-Ansicht anwenden können.

Wählen Sie aus der Stilauswahl den Stil Android aus, um alle Eigenschaften für die Komponenten entsprechend der Zielplattform anzuzeigen.

Ansichtsauswahl

Oben im Formular-Designer für geräteübergreifende Anwendungen wird die Ansichtsauswahl angezeigt: ViewsFormDes.png

Das Dropdown-Menü der Ansichtsauswahl enthält alle verfügbaren Ansichten für die verschiedenen Plattformen, wie iOS, Android, Windows und OS X.

Verwenden Sie das Master-Formular für ein allgemeines Design Ihrer Anwendung. Anschließend können Sie Ihrem Projekt neue Ansichten hinzufügen, um Ihre Anwendung für einen bestimmten Gerätetyp anzupassen. Es ist sogar möglich, neue angepasste Ansichten zu erstellen; siehe Hinzufügen einer angepassten Ansicht zur Ansichtsauswahl. Folgende Ansichten sind für Android-Geräte vordefiniert:

  • Android 3.5" Phone
  • Android 4" Phone
  • Android 5" Phone
  • Android 7" Tablet
  • Android 10" Tablet
  • Google Glass
Hinweis: Weitere Informationen über die Auflösung der vordefinierten Ansichten finden Sie unter Display-Spezifikationen.
Hinweis: Wählen Sie die Android-Zielplattform aus, um alle verfügbaren Komponenten für Android anzuzeigen, andernfalls werden sie abgedunkelt dargestellt.

Fügen Sie neue Ansichten zu Ihrem Projekt hinzu, um Ihre Anwendung für einen bestimmten Android-Gerätetyp anzupassen. Alle Ansichten erben Komponenten und Eigenschaften vom Master-Formular. Weitere Informationen finden Sie unter Formular-Designer.

Hinweis: Wenn Sie bestimmte Aspekte Ihrer Anwendung für alle Android-Geräte anpassen möchten, können Sie dies mit dem Master-Formular durchführen, vorausgesetzt, Sie möchten diese Anpassungen nicht an die übrigen Plattformen weitergeben. Ansonsten verwenden Sie den Quelltext-Editor, zum Beispiel:
// You will see the changes applied at run-time.
{$IFDEF ANDROID}
    SpeedButton1.StyleLookup := priortoolbutton;
{$ENDIF}

Weitere Informationen:

Verwenden von Frameworks in Android-Apps

FireMonkey

Das FireMonkey-Framework eignet sich ideal für die Android-Zielplattform und unterstützt auch viele andere Plattformen.


RTL

Einige Units aus der Laufzeitbibliothek (RTL), die die grundlegende Funktionalität bereitstellen, können auf allen unterstützten Zielplattformen (einschließlich Android) verwendet werden, z. B. System.pas oder System.SysUtils.pas.

Andere RTL-Units sind nur für Android vorgesehen (siehe Android-API und Java Libraries). Diesen Units wird der Androidapi Unit-Gültigkeitsbereich vorangestellt.

Siehe auch Android-C-RTL.

Android-API und Java-Bibliotheken

Die RTL enthält einige Units, die Object Pascal- und C++-Interfaces für die native Android-API bereitstellen. Diesen Units ist der Gültigkeitsbereich Androidapi vorangestellt, und sie befinden sich in der Regel im Verzeichnis source\rtl\android\ Ihrer Installation von Appmethod. Das FireMonkey-Framework basiert auf einigen dieser Units. Sie können diese Units auch direkt verwenden.

Es ist auch möglich, Teile der Android-API, die nicht durch die RTL zugeordnet werden, oder eigene Java-Bibliotheken in Ihrem Projekt zu verwenden:

Namen von Android-Hauptbibliotheken können nicht als Anwendungsnamen verwendet werden

Sie dürfen Ihrem Projekt keinen Namen zuweisen, der zu einem Konflikt mit dem Namen einer Hauptbibliothek führt, z. B. <libNAME>.so.

Beispielsweise dürfen Sie keinen der folgenden Namen als Projektnamen verwenden:

  • c (steht in Konflikt mit libc.so)
  • m (steht in Konflikt mit libm.so)
  • z (steht in Konflikt mit libz.so)
  • ssl (steht in Konflikt mit libssl.so)
  • ui (steht in Konflikt mit libui.so)
  • gui (steht in Konflikt mit libgui.so)
  • camera_client (steht in Konflikt mit camera_client.so)

usw.

Ausrichtungsempfehlungen für mobile Symbolleisten und andere FireMonkey-Komponenten

Um sicherzustellen, dass das Aussehen und das Verhalten der Symbolleiste in Ihren Apps für die iOS- und Android-Plattformen identisch sind, sollten Sie die Ausrichtungseigenschaften im Objektinspektor wie folgt festlegen:

  • Legen Sie die Eigenschaft Align für alle TToolbar untergeordneten Steuerelemente fest. Die folgenden Beispiele sind Werte für die Eigenschaft Align:
    (Left, Right, Center, Contents)
  • Den Abstand zwischen Steuerelementen oder zwischen dem linken und dem rechten Rand von Symbolleisten legen Sie mit den folgenden Eigenschaften fest:
    Beispiel für eine Symbolleiste mit einem TLabel als Titel und zwei links ausgerichteten Schaltflächen mit einem Abstand zwischen jeder Schaltfläche:
    1. Setzen Sie für TToolBar:
      • Align = Top
    2. Setzen Sie für die untergeordnete TLabel-Komponente:
      • Align = Contents
    3. Setzen Sie die TLabel-Komponente mit dem Kontextmenü nach hinten.
    4. Setzen Sie für die beiden untergeordneten TSpeedButtons-Komponenten:
      • Align = Left, Right, Center, Contents, VertCenter
        Beschreibungen dieser Eigenschaften finden Sie unter FMX.Types.TAlignLayout.
      • Margins Left = 5
  • So formatieren Sie ein segmentiertes Steuerelement (mit Stilen versehene TSpeedButtons mit einem gemeinsamen Gruppennamen) zentriert auf der Symbolleiste:
    1. Fügen Sie der TToolBar ein TLayout-Steuerelement hinzu.
    2. Setzen Sie TLayout.Align auf Center.
    3. Fügen Sie dem TLayout Schaltflächen hinzu, und legen Sie Ausrichtungseigenschaften und Ränder für jede Schaltfläche fest (d. h. Align = Left, Margins = Left, Margins = Right usw.).
  • Um TLabel zu verwenden, müssen Sie TLabel.AutoSize auf False und die Align-Eigenschaft festlegen.
    • Um die Beschriftung auf der Symbolleiste zu zentrieren, die bereits Schaltflächen enthält, müssen Sie TLabel.Align auf Contents festlegen und im Kontextmenü Nach hinten setzen auswählen.

Für andere Steuerelemente gelten ähnliche Ausrichtungsregeln. Angenommen, Sie haben einem ListBox-Eintrag ein TSwitch hinzugefügt; damit der Schalter rechts ausgerichtet und vertikal zentriert ist, legen Sie die folgenden Eigenschaften für TSwitch fest:

  • Align= Right
  • Margins Right = 5

Verwenden von benutzerdefinierten Schriftarten in Android-Apps

Sie können in Ihren Android-Apps eigene Schriftarten verwenden. Eigene Schriftarten können in mobilen Anwendungen beispielsweise als Symbole verwendet werden. TrueType-Schriftarten haben gegenüber Rasterbilddateien Vorteile, weil diese Schriftarten schlank und vektorbasiert sind, sodass sie gut in hohe Auflösungen skaliert werden können. Sie können eigene Schriftarten in Ihre System-Schriftartenbibliothek auf Ihrem Entwicklungssystem installieren. Die eigenen Schriftarten sollten dann in der IDE beim Entwurf verfügbar sein.

Wenn Sie aber Ihre App zu diesem Zeitpunkt auf einem Zielgerät bereitstellen, werden die Schriftarten der App nur mit den auf dem Gerät verfügbaren installierten Schriftarten gerendert. Sie müssen Ihrem Projekt die Schriftart mit dem Bereitstellungs-Manager hinzufügen, um sicherzustellen, dass die beim Entwurf in der IDE angezeigten Schriftarten auf das Gerät kopiert werden.

Die grundlegenden Schritte zum Einbeziehen einer eigenen Schriftart in Ihre Android-App sind:

  1. Installieren der eigenen Schriftart auf Ihrem Windows-System.
    • Anleitungen dazu finden Sie unter Windows Hilfe und Support auf Ihrem System.
    • Klicken Sie beispielsweise mit der rechten Maustaste auf die Schriftartdatei, und klicken Sie auf Installieren.
  2. Hinzufügen der Schriftartdatei zum Stammverzeichnis Ihres Projekts.
  3. Zuweisen der Schriftart zur Eigenschaft Text Settings/Font für die Steuerelemente, die die Schriftart verwenden, im Objektinspektor.
  4. Hinzufügen der Schriftartdatei zu Ihrem Projekt im Bereitstellungs-Manager.

Vollständige Anleitungen und herunterladbare Dateien zum Erstellen eines mobile Projekts, in dem eine eigene installierte Schriftart (Font Awesome (EN)) verwendet wird, finden Sie hier:

Um festzustellen, ob eine Schriftart zur Laufzeit auf einem bestimmten Gerät zur Verfügung steht, müssen Sie überprüfen, ob die beim Entwurf verwendete Schriftart auf den Zielgeräten unterstützt wird:

Festlegen der erforderlichen Berechtigungen für Ihre Android-Apps

Einige grundlegenden Android-Berechtigungen sind für alle FireMonkey-Android-Apps voreingestellt. Sie sollten überprüfen, ob bestimmte Zugriffsberechtigungen für Ihr Android-Gerät auf der Seite Verwendet Berechtigungen der Projektoptionen aktiviert sind.

Zum Beispiel:

  • Um die Kamera des Android-Gerätes verwenden zu können, müssen die folgenden Berechtigungen aktiviert sein:
    • Kamera
    • Externen Speicher lesen/schreiben
  • Zur Verwendung der GPS-Ortung auf dem Android-Gerät müssen Sie mindestens eine der Berechtigungen für den Standortzugriff aktivieren:
    • Auf ungefähren Standort zugreifen
    • Auf genauen Standort zugreifen
    • Auf zusätzliche Standortbefehle zugreifen
  • Um Audio auf dem Android-Gerät aufzunehmen, müssen die folgenden Berechtigungen aktiviert sein:
    • Audio aufzeichnen

Verwenden der "Zurück"-Schaltfläche des Android-Geräts

Damit Ihre Anwendung reagieren kann, wenn der Benutzer die Schaltfläche Zurück auf dem Android-Gerät drückt, fügen Sie dem Formular eine Ereignisbehandlungsroutine für OnKeyUp hinzu und fügen den folgenden Code in diese Ereignisbehandlungsroutine ein:

Object Pascal:

if Key = vkHardwareBack then
begin
  // Do whatever you want to do here
  Key := 0; // Set Key = 0 if you want to prevent the default action
end;

C++:

if (Key == vkHardwareBack) {
    // Do whatever you want here
    Key = 0; // Set Key = 0 if you want to prevent the default action
}
Tipp: In der mobilen Vorlage Registerkarten mit Navigation wird diese Ereignisbehandlung implementiert.

Konfigurieren der Anwendung zur Ausführung im Vollbildmodus

Per Vorgabe wird in Android-Anwendungen die Android-Statusleiste/Titelleiste angezeigt.

Wenn Ihre Anwendung im Vollbildmodus ausgeführt und die Android-Statusleiste/Titelleiste ausgeblendet werden soll, wählen Sie Projekt > Optionen > Versionsinformationen und ändern den Wert des Schlüssels theme in Keine TitleBar.

Weitere Informationen finden Sie unter Versionsinformationen.

Einstellungen für die virtuelle Tastatur in den Steuerelementen TEdit und TMemo

Die virtuelle Tastatur wird bei der Anzeige eines TEdit- oder TMemo-Steuerelements automatisch eingeblendet.

Setzen Sie KillFocusByReturn = True, damit der Benutzer die virtuelle Tastatur durch Klicken auf die Taste Return ausblenden kann.

Verwenden von Symbolen und Bildern für verschiedene Auflösungen

  • Auf Android werden die folgenden Auflösungen unterstützt:
    1x, 1.5x, 2x, 3x (Klein, Normal, Groß, Sehr groß)
  • Auf iOS werden die folgenden Auflösungen unterstützt:
    1x und 2x (Nicht-Retina und Retina)

Mehrfachauflösungen können durch Erstellen eines MultiResBitmap mit dem MultiResBitmap-Editor unterstützt werden. Weitere Informationen finden Sie unter Verwenden von Bitmaps mit Mehrfachauflösung.

  • MultiResBitmap unterstützt unter Android die folgenden Auflösungen: 1x, 1.5x, 2.5x
    (iOS unterstützt 1x und 2x)

Laden und Bereitstellen von Dateien

Wenn Sie Ihre Anwendung für die Android-Zielplattform bereitstellen möchten und planen, mit der Anwendung Dateien weiterzugeben, die zur Laufzeit geladen werden sollen, müssen Sie zuerst entscheiden, ob diese Dateien auf dem internen Gerätespeicher oder auf einem externen Speicher (z. B. einer SD-Karte) gespeichert werden sollen. Platzieren Sie anschließend während der Bereitstellung mit dem Bereitstellungs-Manager diese Dateien im Ordner assets\internal (intern) oder assets (extern).

AddDBforAndroidAssets.png

Mit dem folgenden Code können Sie diese Dateien zur Laufzeit lokalisieren:

Object Pascal:

TPath.Combine(TPath.GetDocumentsPath, 'filename')  { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename')  { External }

C++:

System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"filename") // Internal
System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDocumentsPath(), L"filename") // External

filename ist hier der Name Ihrer Datei, wie z. B. "dbdemos.gdb" im obigen Screenshot. Der Record TPath wird in der Unit System.IOUtils deklariert, daher müssen Sie System.IOUtils in die uses-Klausel aufnehmen.

Erstellen von Anwendungen für Google Glass

Der Formular-Designer enthält eine Google Glass-Ansicht, mit der Sie Apps für Google Glass erstellen können:

GoogleGlassDesignTimeDevice.png

Verwenden Sie beim Erstellen von Apps für Google Glass den eigenen Stil für Google Glass, den Appmethod bereitstellt:

C:\Users\Public\Documents\Embarcadero\Studio\17.0\Styles\Android\GoogleGlass.fsf

Der Stil "Google Glass" ist für die Benutzeroberfläche und Auflösung von Google Glass optimiert.

Die Schritte zur Verwendung des Stils "Google Glass" in Ihren FireMonkey-Apps finden Sie unter Hinzufügen eines benutzerdefinierten Stils zu einer mobilen Anwendung.

Allgemeine Informationen zum Entwickeln von Anwendungen für Google Glass mit Appmethod finden Sie unter Erste Schritte mit Google Glass.

Implementieren von Android-spezifischen Features

In den folgenden Themen wird beschrieben, wie Sie bestimmte Android-spezifische Features in Ihre Anwendungen implementieren:

Im FireMonkey-Anwendungshandbuch finden Sie die Dokumentation zu anderen, plattformunabhängigen Features.

Siehe auch