Aplikacje na Androida w Delphi (Embarcadero Delphi and Mobile Add-on Pack)

rk7771

Przykład konfiguracji środowiska Embarcadero Delphi z pakietem Mobile Add-on Pack do tworzenia aplikacji na system Android.

***


Aplikacje na Androida w Delphi (Embarcadero Delphi and Mobile Add-on Pack).

Przykład zastosowania pakietu mobilnego w środowisku Embarcadero Delphi.

W celu rozpoczęcia pracy z pakietem mobilnym w środowisku Delphi należy przygotować środowisko Androida w systemie Windows.
Czynność tą wykonujemy poprzez uruchomienie programu Android Tools dołączonego do wersji instalacyjnej zakupionego środowiska developerskiego.
W uruchomionym oknie zaznaczamy do instalacji następujące komponenty:

  • Tools : Android SDK Tools revision 25.2.5
  • Tools : Android SDK Platform-tools revision 29.0.1
  • Tools : opcjonalnie kolejne wydania SDK - przykładowo SDK Build-tools revision 25, 25.0.3
  • Android 7.1.1 (API 25) : SDK Platform
  • Android 7.1.1 (API 25) : Intel x86 Atom System Image (obraz systemu dla wersji 7.1.1)
  • Android 7.1.1 (API 25) : Sources for Android SDK

Program dodatkowo zaznaczy do instalacji Extras : Google USB Driver.

Uruchamiany Install packages i czekamy na pobranie wszystkich składników.

Miejsce repozytorium pobieranych plików:

  • Embarcadero Delphi 10.2 (Tokyo) składniki będą umieszczone w katalogu C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\
  • Embracadero Delphi 10.1 (Berlin) składniki będą umieszczone w katalogu C:\Users\Public\Documents\Embarcadero\Studio\18.0\CatalogRepository\AndroidSDK-2433_18.0.25048.9432

Kolejny program jaki uruchamiamy to Android AVD Manager. W programie tym możemy dodać virtualne urządzenie z adroidem. Poniżej przykład konfiguracji dla Galaxy Nexus 4.65:

  • AVD Name: Nazwa wirtulanego urządzenia na przykład: Galaxy-nexus-4.65
  • Device: wybieramy Galaxy Nexus (4.65", 620 x 1290; xhdpi)
  • Target: Android 7.1.1 - API Level 25
  • CPU/ABI: Google APIs Intel Atom (x86)
  • Keybord: zaznaczamy Hardware keyboard present
  • Skin: Skin with dynamic hardware controls
  • Front Camera: opcjonalnie None/Emulated/Webcam0
  • Back Camera: opcjonalnie None/Emulated/Webcam0
  • Memory Options RAM: system podpowie 1024 (seugerowana wielkosć od strony systemu operacyjnego Windows to 768)
  • Memory Options VM Heaps: 64
  • Internal Storage: 200 MiB
  • SD Card: opcjonalne pola do wskazania wielkości karty lub wskazania pliku
  • Emulation Options: opcjonalnie pola Snapshot lub Use Host GPU

Po zaakceptowaniu ustawień należy wykonać test działania wirtualnego systemu android. Wykonujemy to wybierając (zaznaczając) na liście przygotowanych wirtualnych systemów nasz system Galaxy-Nexus-4.65 i wybieramy przycisk Start ... . W nowym oknie winien pojawić się ekran symulacji wirtualnego androida o wielkości okna zgodnie z zaznaczonymi parametrami Skin.
Windows powinien prawidłowo wystartować wirtualny system w ciągu kilkunatu sekund, brak wystarowania systemu będzie skutkowało czarnym ekranem (należy wówczas poprawić / wybrać inne opcje dostępne w parametrze Skin).

Konfiguracja środowiska Embarcadero Delphi (na przykładzie 10.2.3 Tokyo) - po uruchomieniu środowiska wybieramy:

  • File -> New -> Multi Device Appkication - Delphi
  • Select a Multi-Device Application type: wybieramy Blank Application
  • opcjonalnie: zapisujemy nasz projekt
  • w zakładce Projekt Manager wybieramy Target Platform -> naciskamy prawym przyciskiem myszy, z menu wybieramy Add-Platform
  • w nowym oknie wybieramy system Android - system wyświetli kolejne opcje konfiguracyjne

Opcje konfiguracyjne Android SDK - najważniejsze parametry:

  • SDK base path: C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows
  • ZipAlign Location: C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\build-tools\25.0.0\zipalign.exe
  • Aapt locations: C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\build-tools\25.0.0\aapt.exe
  • SDK API-Level location: C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\platforms\android-29
  • NDK base path: C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c
  • Java - KeyTool location: przykładowo C:\Program Files\Java\jdk1.8.0_60\bin\KeyTool.exe
  • Java - Jarsigner location: przykładowo C:\Program Files\Java\jdk1.8.0_60\bin\JarSigner.exe

Pozostałe opcje winny zostać uzupełnione automatycznie i nie powinny wymagać zmiany dla wybranego wcześniej targetu: Android 7.1.1 - API Level 25.

Napisane aplikacje można również weryfikować bezpośrednio na telefonie czy tablecie z systemem Android. W tym celu należy odblokować opcje programistyczne oraz zaznaczyć tryb debugowania dla podłączonego kabla USB.

Odblokowanie opcji programistycznych realizujemy po wejściu w Ustawienia -> Telefon - informacje -> Informacje o oprogramowaniu -> naciskamy w krótkich okresach czasu na pole numer wersji aż do pokazania ekranu z prośbą podania numeru PIN. Po podaniu numeru PIN dokonujemy akceptacji, opcje programistyczne powinny być odblokowane.

Odblokowanie opcji programistycznych pozwala na uruchomienie debugowania, włączenie opcji dokonujemy wybierając Ustawienia -> Opcje programisty -> i zaznaczamy Debugowanie USB.

Tak przygotowany telefon / tablet podłączamy portem USB z naszym komputerem. Na pytanie czy zezwalamy na Zezwolić na debugowanie USB odpowiadamy OK (zezwalamy).

Wykonując powyższe czynności w opcjach Project Manager projektu Delphi w sekcji Target Platform będziemy mieli widoczne systemy na które będziemy kompilować tworzony program.
W ramach tych opcji widoczny winien być system Android (Android - Android SDK 25.2.5. 32bit). Jego rozwinięcie pokaże w kolejnej sekcji Target dostępne urządzenia (tutaj wirtualny Galaxy-Nexus-4.65 oraz fizyczny telefon/tablet podłączony kablem USB).

Ostatnim elementem jaki należy zaznaczyć w sekcji Android - Android SDK 25.2.5. 32bit -> Configuration - jest wybór konfiguracji kompilacji. Dostepna jest opcja wysłania aplikacji do sklepu lub wybów wersji Development. W naszym przypadku wybieramy opcję Development poprzez zaznaczenie jej lewym przyciskiem myszy i następnie wybór menu Activate po naciśnieciu prawego przycisku myszy.

Wykonując wszystkie powyższe czynności mamy przygotowane środowisko do napisania i testowania aplikacji Android (w tym przykładzie wybrana zostałą wersja Android 7.1.1 - API Level 25).

Poniżej zamieszczam przykładowy kod źródłowy aplikacji włączającej latarkę w telefonie:

unit latarka_unit;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Controls.Presentation, FMX.Media, FMX.Layouts, FMX.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel_bottom: TPanel;
    Switch_On_Off: TSwitch;
    Camera: TCameraComponent;
    StyleBook1: TStyleBook;
    lbl_info: TLabel;
    ImageViewer_latarka_on: TImageViewer;
    Panel_left: TPanel;
    Panel_right: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure Switch_On_OffSwitch(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin
  lbl_info.Text := 'Latarka wyłączona';
  Camera.Active := true;
end;

procedure TForm1.Switch_On_OffSwitch(Sender: TObject);
begin
  lbl_info.StyledSettings := lbl_info.StyledSettings - [TStyledSetting.FontColor];
  if Switch_On_Off.IsChecked then
  begin
    lbl_info.TextSettings.FontColor := TAlphaColors.Red;
    lbl_info.Repaint;
    if Camera.HasFlash then
    begin
      Camera.TorchMode := TTorchMode.tmModeOn;
      lbl_info.Text := 'Latarka uruchomiona';
    end;
  end;
  if not Switch_On_Off.IsChecked then
  begin
    lbl_info.TextSettings.FontColor := TAlphaColors.Yellow;
    lbl_info.Repaint;
    if Camera.HasFlash then
    begin
      Camera.TorchMode := TTorchMode.tmModeOff;
      lbl_info.Text := 'Latarka wyłączona';
    end;
  end;
end;

end.

0 komentarzy