Profile urządzeń

Adobe AIR 2 i wersje późniejsze

Profile stanowią mechanizm definiowania klas urządzeń komputerowych, na których działa aplikacja. Profil definiuje zestaw interfejsów API i funkcji obsługiwanych typowo przez określoną klasę urządzeń. Dostępne profile:

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

Profile dla aplikacji są definiowane w deskryptorze aplikacji. Użytkownicy komputerów i urządzeń należących do uwzględnionych profilów mogą zainstalować daną aplikację, natomiast użytkownicy innych komputerów i urządzeń nie mogą tego zrobić. Jeśli na przykład w deskryptorze aplikacji został uwzględniony tylko profil desktop, użytkownicy mogą instalować i uruchamiać daną aplikację tylko na komputerach stacjonarnych.

Uwzględnienie profilu, który nie jest w rzeczywistości obsługiwany przez aplikację, może spowodować nieodpowiednie działanie aplikacji w pewnych środowiskach. Jeśli w deskryptorze aplikacji nie zostaną określone żadne profile, środowisko AIR nie będzie stosować ograniczeń dla danej aplikacji. Pakiet aplikacji można utworzyć w dowolnym obsługiwanym formacie. Użytkownicy urządzeń z dowolnego profilu będą mogli ją zainstalować, lecz aplikacja może działać niewłaściwie.

O ile jest to możliwe, podczas tworzenia pakietu aplikacji są wymuszane ograniczenia związane z profilami. Jeśli na przykład został uwzględniony tylko profil extendedDesktop, nie można utworzyć pakietu aplikacji w postaci pliku AIR, a jedynie pakiet instalatora natywnego. Jeśli nie został uwzględniony profil mobileDevice, nie można utworzyć pakietu aplikacji w postaci pliku APK systemu Android.

Jedno urządzenie komputerowe może obsługiwać więcej niż jeden profil. Na przykład środowisko AIR na komputerach stacjonarnych obsługuje zarówno aplikacje o profilu desktop, jak i extendedDesktop. Jednak aplikacja o profilu extendedDesktop może komunikować się z procesami natywnymi i MUSI być umieszczona w pakiecie instalatora natywnego (exe, dmg, deb lub rpm). Natomiast aplikacja o profilu desktop nie może komunikować się z procesem macierzystym. Taka aplikacja może być umieszczona w pakiecie będącym plikiem AIR lub pakietem instalatora natywnego.

Uwzględnienie określonej funkcji w profilu wskazuje, że jest ona zazwyczaj obsługiwana przez klasę urządzeń, dla której ten profil jest zdefiniowany. Nie oznacza to jednak, że wszystkie urządzenia o danym profilu obsługują każdą funkcję. Na przykład większość telefonów komórkowych (ale nie wszystkie) zawiera przyspieszeniomierz. Dla klas i funkcji, które nie są obsługiwane przez wszystkie urządzenia, zazwyczaj jest dostępna właściwość logiczna, którą można sprawdzić przed użyciem danej funkcji. Na przykład w przypadku przyspieszeniomierza można sprawdzić właściwość statyczną Accelerometer.isSupported w celu ustalenia, czy dane urządzenie zawiera obsługiwany przyspieszeniomierz.

Poniższe profile można przypisać do aplikacji AIR za pomocą elementu supportedProfiles w deskryptorze aplikacji:

Komputer
Profil komputerowy definiuje zestaw funkcji dla aplikacji AIR, które są instalowane jako pliki AIR na komputerach stacjonarnych. Te aplikacje są instalowane i uruchamiane na obsługiwanych platformach stacjonarnych (Mac OS, Windows i Linux). Aplikacje AIR tworzone w środowisku AIR w wersjach wcześniejszych niż AIR 2 mogą być traktowane jako aplikacje o profilu Stacjonarny. Niektóre interfejsy API nie działają w tym profilu. Na przykład: aplikacje o profilu komputerowym nie mogą się komunikować z procesami rodzimymi.

Rozszerzony komputerowy
Profil rozszerzony komputerowy definiuje zestaw funkcji dla aplikacji AIR, które są uwzględniane w pakiecie instalatora natywnego i instalowane przy jego użyciu. Te instalatory macierzyste to pliki EXE w systemie Windows, pliki DMG w systemie Mac OS oraz pliki DEB lub RPM w systemie Linux. Aplikacje o rozszerzonym profilu komputerowym oferują dodatkowe funkcje niedostępne w aplikacjach o profilu komputerowym. Więcej informacji zawiera sekcja Pakowanie instalatora natywnego dla komputerów .

Dla urządzeń przenośnych
W profilu dla urządzeń przenośnych zdefiniowano zestaw funkcji aplikacji zainstalowanych na urządzeniach przenośnych, między innymi telefonach komórkowych i tabletach. Te aplikacje można instalować i uruchamiać na obsługiwanych platformach przenośnych, łącznie z systemami Android, BlackBerry Tablet OS oraz iOS.

Rozszerzony dla urządzeń przenośnych
W profilu rozszerzonym dla urządzeń przenośnych zdefiniowano rozszerzony zestaw funkcji przeznaczonych dla aplikacji instalowanych na urządzeniach przenośnych. Aktualnie nie ma urządzeń obsługujących ten profil.

Ograniczanie profilów docelowych w pliku deskryptora aplikacji

W środowisku AIR 2 plik deskryptora aplikacji zawiera element supportedProfiles , który umożliwia ograniczanie profilów docelowych. Na przykład następujące ustawienie określa, że aplikacja może być kompilowana tylko w profilu komputerowym:
<supportedProfiles>desktop</supportedProfiles>

Jeśli ten element zostanie ustawiony, pakiety aplikacji będzie można tworzyć tylko dla profili z listy. Należy użyć następujących wartości:

  • desktop — profil komputerowy

  • extendedDesktop — profil rozszerzony komputerowy

  • mobileDevice — profil dla urządzeń przenośnych

Element supportedProfiles jest opcjonalny. Gdy ten element nie zostanie uwzględniony w pliku deskryptora aplikacji, pakiet aplikacji będzie można utworzyć dla dowolnego profilu i możliwe będzie wdrożenie aplikacji w dowolnym profilu.

W celu określenia wielu profili w elemencie supportedProfiles należy oddzielić każdy znakiem spacji, jak poniżej:

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

Możliwości różnych profili

Poniższa tabela zawiera listę klas i funkcji, które są obsługiwane tylko w niektórych profilach.

Klasa lub funkcja

desktop

extendedDesktop

mobileDevice

Accelerometer (Accelerometer.isSupported)

Nie

Nie

Sprawdź

Accessibility (Capabilities.hasAccessibility)

Tak

Tak

Nie

Eliminowanie echa akustycznego (Microphone.getEnhancedMicrophone())

Tak

Tak

Nie

ActionScript 2

Tak

Tak

Nie

Macierz CacheAsBitmap

Nie

Nie

Tak

Camera (Camera.isSupported)

Tak

Tak

Tak

CameraRoll

Nie

Nie

Tak

CameraUI (CameraUI.isSupported)

Nie

Nie

Tak

Dedykowane pakiety ze środowiskiem wykonawczym

Tak

Tak

Tak

ContextMenu (ContextMenu.isSupported)

Tak

Tak

Nie

DatagramSocket (DatagramSocket.isSupported)

Tak

Tak

Tak

DockIcon (NativeApplication.supportsDockIcon)

Sprawdź

Sprawdź

Nie

Przeciąganie i upuszczanie (NativeDragManager.isSupported)

Tak

Tak

Sprawdź

EncyptedLocalStore (EncyptedLocalStore.isSupported)

Tak

Tak

Tak

Moduł Flash Access (DRMManager.isSupported)

Tak

Tak

Nie

GameInput (GameInput.isSupported)

Nie

Nie

Nie

Geolocation (Geolocation.isSupported)

Nie

Nie

Sprawdź

HTMLLoader (HTMLLoader.isSupported)

Tak

Tak

Nie

IME (IME.isSupported)

Tak

Tak

Sprawdź

LocalConnection (LocalConnection.isSupported)

Tak

Tak

Nie

Mikrofon (Microphone.isSupported)

Tak

Tak

Sprawdź

Dźwięk wielokanałowy (Capabilities.hasMultiChannelAudio())

Nie

Nie

Nie

Rozszerzenia natywne

Nie

Tak

Tak

NativeMenu (NativeMenu.isSupported)

Tak

Tak

Nie

NativeProcess (NativeProcess.isSupported)

Nie

Tak

Nie

NativeWindow (NativeWindow.isSupported)

Tak

Tak

Nie

NetworkInfo (NetworkInfo.isSupported)

Tak

Tak

Sprawdź

Otwieranie plików za pomocą aplikacji domyślnej

Ograniczone

Tak

Nie

PrintJob (PrintJob.isSupported)

Tak

Tak

Nie

SecureSocket (SecureSocket.isSupported)

Tak

Tak

Sprawdź

ServerSocket (ServerSocket.isSupported)

Tak

Tak

Tak

Shader

Tak

Tak

Ograniczone

Stage3D (Stage.stage3Ds.length)

Tak

Tak

Tak

Orientacja stołu montażowego (Stage.supportsOrientationChange)

Nie

Nie

Tak

StageVideo

Nie

Nie

Sprawdź

StageWebView (StageWebView.isSupported)

Tak

Tak

Tak

Uruchamianie aplikacji podczas logowania (NativeApplication.supportsStartAtLogin)

Tak

Tak

Nie

StorageVolumeInfo (StorageVolumeInfo.isSupported)

Tak

Tak

Nie

Tryb bezczynności systemu

Nie

Nie

Tak

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Sprawdź

Sprawdź

Nie

Wprowadzanie przy użyciu architektury Text Layout Framework

Tak

Tak

Nie

Updater (Updater.isSupported)

Tak

Nie

Nie

XMLSignatureValidator (XMLSignatureValidator.isSupported)

Tak

Tak

Nie

Znaczenie pozycji w tabeli:

  • Sprawdź — funkcja jest obsługiwana przez niektóre, ale nie wszystkie urządzenia o określonym profilu. Przed użyciem danej funkcji w czasie wykonywania należy sprawdzić, czy jest ona obsługiwana.

  • Ograniczone — funkcja jest obsługiwana, lecz występują znaczące ograniczenia. Więcej informacji zawiera odpowiednia dokumentacja.

  • Nie — funkcja nie jest obsługiwana w określonym profilu.

  • Tak — funkcja jest obsługiwana w określonym profilu. Poszczególne urządzenia komputerowe mogą nie zawierać sprzętu wymaganego dla danej funkcji. Na przykład nie wszystkie telefony są wyposażone w kamerę.

Określanie profilów podczas debugowania za pomocą narzędzia ADL

ADL sprawdza, czy w elemencie supportedProfiles pliku deskryptora aplikacji określono obsługiwane profile. Jeśli tak, wówczas podczas debugowania ADL domyślnie korzysta z pierwszego obsługiwanego profilu z listy.

Profil dla sesji debugowania ADL można określić za pomocą argumentu -profile wiersza poleceń. Więcej informacji zawiera sekcja AIR Debug Launcher (ADL) . Ten argument może być używany bez względu na to, czy profil określono w elemencie supportedProfiles w pliku deskryptora aplikacji. Jeśli jednak element supportedProfiles zostanie określony, musi zawierać profil określony w wierszu poleceń. W przeciwnym wypadku ADL wygeneruje błąd.