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

  • tv

  • extendedTV

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 macierzystego. 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 macierzystymi i MUSI być umieszczona w pakiecie instalatora macierzystego (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 macierzystego.

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:

Komputerowy
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 macierzystego 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 macierzystego na komputery stacjonarne.

Dla urządzeń przenośnych
Profil dla urządzeń przenośnych definiuje zestaw funkcji dla aplikacji instalowanych na urządzeniach przenośnych. Za pomocą języka ActionScript 3.0 i interfejsów API środowiska AIR można opracowywać aplikacje dla systemu Android oraz dla telefonu iPhone, odtwarzacza iPod touch i tabletu iPad. Aktualnie są to jedyne urządzenia, które obsługują aplikacje o profilu Dla urządzeń mobilnych.

Rozszerzony dla urządzenia mobilnego
Profil rozszerzony dla urządzeń przenośnych definiuje zestaw funkcji dla aplikacji instalowanych na podzbiorze urządzeń przenośnych. Ten podzbiór urządzeń mobilnych może korzystać z klasy HTMLLoader oraz funkcji zdefiniowanych w profilu Dla urządzenia mobilnego. Aktualnie nie ma urządzeń obsługujących ten profil.

Telewizyjny
Profil telewizyjny definiuje zestaw funkcji dla telewizorów. Obejmuje on również urządzenia używające telewizorów jako głównego urządzenia do wyświetlania, na przykład odtwarzacze Blu-ray, cyfrowe urządzenia rejestrujące wideo i dekodery. Aplikacje o takim profilu nie mogą korzystać z rozszerzeń języka ActionScript.

Rozszerzony telewizyjny
Profil rozszerzony telewizyjny obejmuje te same typy urządzeń co profil telewizyjny, ale uwzględnia dodatkowe funkcje, takie jak rozszerzenia języka ActionScript.

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

  • tv — profil telewizyjny

  • extendedTV — profil rozszerzony telewizyjny

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

tv

extendedTV

Accelerometer (Accelerometer.isSupported)

Nie

Nie

Sprawdź

Nie

Nie

Accessibility (Capabilities.hasAccessibility)

Tak

Tak

Nie

Nie

Nie

ActionScript 2

Tak

Tak

Nie

Tak

Tak

Macierz CacheAsBitmap

Nie

Nie

Tak

Tak

Tak

Camera (Camera.isSupported)

Tak

Tak

Tak

Nie

Nie

CameraRoll

Nie

Nie

Tak

Nie

Nie

CameraUI (CameraUI.isSupported)

Nie

Nie

Tak

Nie

Nie

ContextMenu (ContextMenu.isSupported)

Tak

Tak

Nie

Nie

Nie

DatagramSocket (DatagramSocket.isSupported)

Tak

Tak

Nie

Nie

Nie

DockIcon (NativeApplication.supportsDockIcon)

Sprawdź

Sprawdź

Nie

Nie

Nie

Przeciąganie i upuszczanie (NativeDragManager.isSupported)

Tak

Tak

Sprawdź

Nie

Nie

EncyptedLocalStore (EncyptedLocalStore.isSupported)

Tak

Tak

Nie

Nie

Nie

ExtensionContext

Nie

Nie

Nie

Nie

Tak

Moduł Flash Access (DRMManager.isSupported)

Tak

Tak

Nie

Tak

Tak

Geolocation (Geolocation.isSupported)

Nie

Nie

Sprawdź

Nie

Nie

HTMLLoader (HTMLLoader.isSupported)

Tak

Tak

Nie

Nie

Nie

IME (IME.isSupported)

Tak

Tak

Sprawdź

Nie

Nie

LocalConnection (LocalConnection.isSupported)

Tak

Tak

Nie

Tak

Tak

Mikrofon (Microphone.isSupported)

Tak

Tak

Sprawdź

Nie

Nie

NativeMenu (NativeMenu.isSupported)

Tak

Tak

Nie

Nie

Nie

NativeProcess (NativeProcess.isSupported)

Nie

Tak

Nie

Nie

Nie

NativeWindow (NativeWindow.isSupported)

Tak

Tak

Nie

Nie

Nie

NetworkInfo (NetworkInfo.isSupported)

Tak

Tak

Sprawdź

Tak

Tak

Otwieranie plików za pomocą aplikacji domyślnej

Ograniczone

Tak

Nie

Nie

Nie

PrintJob (PrintJob.isSupported)

Tak

Tak

Nie

Nie

Nie

SecureSocket (SecureSocket.isSupported)

Tak

Tak

Nie

Sprawdź

Sprawdź

ServerSocket (ServerSocket.isSupported)

Tak

Tak

Nie

Nie

Nie

Shader

Tak

Tak

Ograniczone

Nie

Nie

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

Nie

Nie

Tak

Nie

Nie

StageVideo

Nie

Nie

Nie

Tak

Tak

StageWebView (StageWebView.isSupported)

Tak

Tak

Tak

Nie

Nie

Uruchamianie aplikacji podczas logowania (NativeApplication.supportsStartAtLogin)

Tak

Tak

Nie

Nie

Nie

StorageVolumeInfo (StorageVolumeInfo.isSupported)

Tak

Tak

Nie

Sprawdź

Sprawdź

Tryb bezczynności systemu

Nie

Nie

Tak

Nie

Nie

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Sprawdź

Sprawdź

Nie

Nie

Nie

Wprowadzanie przy użyciu architektury Text Layout Framework

Tak

Tak

Nie

Nie

Nie

Updater (Updater.isSupported)

Tak

Nie

Nie

Nie

Nie

XMLSignatureValidator (XMLSignatureValidator.isSupported)

Tak

Tak

Nie

Tak

Tak

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.