Perfis de dispositivo

Adobe AIR 2 e posterior

Os perfis são um mecanismo para definir as classes de dispositivos de computação onde funciona seu aplicativo. Um perfil define um conjunto de APIs e de recursos normalmente disponíveis em uma classe particular do dispositivo. Os perfis disponíveis incluem:

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

  • tv

  • extendedTV

Você pode definir os perfis para seu aplicativo no descritor do aplicativo. Usuários de computadores e dispositivos em perfis incluídos podem instalar o aplicativo; usuários de outros computadores e dispositivos não podem. Por exemplo, se você incluir somente o perfil desktop no descritor do aplicativo, os usuários podem instalar e executar o aplicativo apenas em computadores desktop.

Se você incluir um perfil que seu aplicativo não seja realmente compatível, a experiência do usuário em tais ambientes podem ser pobres. Se você não especificar nenhum perfil no descritor do aplicativo, o AIR não limitará o aplicativo. Você pode compactar o aplicativo em qualquer um dos formatos compatíveis, e os usuários com dispositivos de qualquer perfil podem instalá-lo - porém, pode não funcionar corretamente em tempo de execução.

Sempre que possível, são impostas restrições de perfil ao compactar o aplicativo. Por exemplo, se você incluir somente o perfil extendedDesktop, não poderá compactar o aplicativo como um arquivo AIR - apenas como um instalador nativo. Da mesma forma, se você não incluir o perfil MobileDevice, não poderá compactar o aplicativo como um APK do Android.

Um único dispositivo de computação pode ser compatível com mais de um perfil. Por exemplo, o AIR em computadores desktop são compatíveis com aplicativos de perfis desktop e extendedDesktop. No entanto, um aplicativo de perfil desktop estendido pode se comunicar com processos nativos e DEVE ser compactado como um instalador nativo (exe, dmg, deb ou rpm). Um aplicativo com perfil desktop, por outro lado, não pode se comunicar com um processo nativo. Um aplicativo com perfil desktop pode ser compactado como um arquivo AIR ou um instalador nativo.

A inclusão de um recurso em um perfil indica que o suporte para esse recurso é comum na classe de dispositivos para a qual esse perfil está definido. No entanto, isso não significa que cada dispositivo em um perfil seja compatível com todos os recursos. Por exemplo, a maioria (mas não todos) dos telefones móveis contém um acelerômetro. Classes e recursos que não têm suporte universal geralmente têm uma propriedade booleana que você pode verificar antes de usar o recurso. No caso do acelerômetro, por exemplo, você pode testar a propriedade estática Accelerometer.isSupported para determinar se o dispositivo atual tem um acelerômetro compatível.

Os perfis a seguir podem ser atribuídos ao aplicativo AIR usando o elemento supportedProfiles no descritor do aplicativo:

Desktop
O perfil desktop define um conjunto de capacidades para os aplicativos AIR, que são instaladas como arquivos AIR em um computador pessoal. Estes aplicativos são instalados e executados nas plataformas de computador pessoal suportadas (sistemas operacionais Mac, Windows e Linux). Os aplicativos AIR desenvolvidos em versões do AIR anteriores a AIR 2 podem ser considerados inseridos no perfil desktop. Algumas APIs não funcionam neste perfil. Por exemplo, os aplicativos de computação pessoal não podem se comunicar com processos nativos.

Desktop estendido
O perfil desktop estendido define um conjunto de capacidades para os aplicativos AIR que compõem o pacote e são instaladas com um programa de instalação nativo. Estes programas de instalação nativos são arquivos EXE no Windows, arquivos DMG no Mac OS, e arquivos DEB ou RPM no Linux. Os aplicativos com o perfil desktop estendido têm capacidades adicionais que não estão disponíveis nos aplicativos com o perfil desktop. Para obter mais informações, consulte Compactação de um instalador desktop nativo.

Dispositivo móvel
O perfil dispositivo móvel define um conjunto de capacidades para aplicativos que são instalados em dispositivos móveis. Você pode usar APIs do ActionScript 3.0 e do AIR para criar aplicativos para Android, iPhone, iPod touch e iPad. Na atualidade, são esses os únicos dispositivos que suportam aplicativos com o perfil dispositivo móvel.

Dispositivo móvel estendido
O perfil dispositivo móvel estendido define um conjunto de capacidades para aplicativos que são instalados em um subconjunto de dispositivos móveis. Este subconjunto de dispositivos móveis pode usar a classe HTMLLoader adicionalmente à funcionalidade definida para o perfil dispositivo móvel. Atualmente, não existem dispositivos que suportam este perfil.

TV
O perfil televisão define um conjunto de capacidades para televisores. O perfil inclui também dispositivos que usam televisores como monitor principal, como leitores de discos Blu-ray, gravadores de vídeo digital e caixas modelo "set-top". Os aplicativos com esse perfil não podem usar extensões ActionScript.

TV estendida
O perfil televisão expandida abrange os mesmos tipos de dispositivos do perfil televisão, mas inclui elementos adicionais, como extensões ActionScript.

Como restringir perfis de destino no arquivo de descrição do aplicativo

Como no AIR 2, o arquivo de descrição do aplicativo inclui um elemento supportedProfiles, que permite restringir perfis de destino. Por exemplo, a seguinte configuração especifica que o aplicativo somente está disponível no perfil desktop.
<supportedProfiles>desktop</supportedProfiles>

Quando este elemento é definido, o aplicativo pode ser empacotado nos perfis que você listar. Use os seguintes valores:

  • desktop— O perfil desktop

  • extendedDesktop— O perfil desktop estendido

  • mobileDevice— O perfil dispositivo móvel

  • tv—O perfil televisão

  • extendedTV—O perfil televisão estendida

O elemento supportedProfiles é opcional. Quando você não incluir este elemento no arquivo e descrição do aplicativo, o aplicativo poderá ser compilado e implementado para qualquer perfil.

Para especificar vários perfis no elemento supportedProfiles, separe cada um com um caractere de espaço como no exemplo a seguir:

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

Capacidades de perfis diferentes

A tabela a seguir lista as classes e os recursos que não são compatíveis com todos os perfis.

Classe ou recurso

desktop

extendedDesktop

mobileDevice

tv

extendedTV

Acelerômetro (Accelerometer.isSupported)

Não

Não

Verificar

Não

Não

Acessibilidade (Capabilities.hasAccessibility)

Sim

Sim

Não

Não

Não

ActionScript 2

Sim

Sim

Não

Sim

Sim

Matriz CacheAsBitmap

Não

Não

Sim

Sim

Sim

Câmera (Camera.isSupported)

Sim

Sim

Sim

Não

Não

CameraRoll

Não

Não

Sim

Não

Não

CameraUI (CameraUI.isSupported)

Não

Não

Sim

Não

Não

ContextMenu (ContextMenu.isSupported)

Sim

Sim

Não

Não

Não

DatagramSocket (DatagramSocket.isSupported)

Sim

Sim

Não

Não

Não

DockIcon (NativeApplication.supportsDockIcon)

Verificar

Verificar

Não

Não

Não

Drag-and-drop (NativeDragManager.isSupported)

Sim

Sim

Verificar

Não

Não

EncyptedLocalStore (EncyptedLocalStore.isSupported)

Sim

Sim

Não

Não

Não

ExtensionContext

Não

Não

Não

Não

Sim

Acesso Flash (DRMManager.isSupported)

Sim

Sim

Não

Sim

Sim

Geolocalização (Geolocation.isSupported)

Não

Não

Verificar

Não

Não

HTMLLoader (HTMLLoader.isSupported)

Sim

Sim

Não

Não

Não

IME (IME.isSupported)

Sim

Sim

Verificar

Não

Não

LocalConnection (LocalConnection.isSupported)

Sim

Sim

Não

Sim

Sim

Microfone (Microphone.isSupported)

Sim

Sim

Verificar

Não

Não

NativeMenu (NativeMenu.isSupported)

Sim

Sim

Não

Não

Não

NativeProcess (NativeProcess.isSupported)

Não

Sim

Não

Não

Não

NativeWindow (NativeWindow.isSupported)

Sim

Sim

Não

Não

Não

NetworkInfo (NetworkInfo.isSupported)

Sim

Sim

Verificar

Sim

Sim

Abra os arquivos com o aplicativo padrão

Limitado

Sim

Não

Não

Não

PrintJob (PrintJob.isSupported

Sim

Sim

Não

Não

Não

SecureSocket (SecureSocket.isSupported)

Sim

Sim

Não

Verificar

Verificar

ServerSocket (ServerSocket.isSupported)

Sim

Sim

Não

Não

Não

Shader

Sim

Sim

Limitado

Não

Não

Orientação do Palco (Stage.supportsOrientationChange)

Não

Não

Sim

Não

Não

StageVideo

Não

Não

Não

Sim

Sim

StageWebView (StageWebView.isSupported)

Sim

Sim

Sim

Não

Não

Iniciar aplicativo no login (NativeApplication.supportsStartAtLogin)

Sim

Sim

Não

Não

Não

StorageVolumeInfo (StorageVolumeInfo.isSupported)

Sim

Sim

Não

Verificar

Verificar

Modo ocioso do sistema

Não

Não

Sim

Não

Não

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Verificar

Verificar

Não

Não

Não

Entrada da Text Layout Framework

Sim

Sim

Não

Não

Não

Updater (Updater.isSupported)

Sim

Não

Não

Não

Não

XMLSignatureValidator (XMLSignatureValidator.isSupported)

Sim

Sim

Não

Sim

Sim

As entradas na tabela têm o seguinte significado:

  • Verificar — O recurso é compatível com alguns, mas não com todos os dispositivos no perfil. Você deve verificar no tempo de execução se o recurso é compatível antes de usá-lo.

  • Limitado — O recurso é compatível, mas tem limitações significativas. Consulte a documentação pertinente para mais informações.

  • Não — O recurso não é compatível com o perfil.

  • Sim — O recurso é compatível com o perfil. Observe que faz falta do hardware necessário para um recurso nos dispositivos de computação individual. Por exemplo, nem todos os celulares têm câmeras.

Como especificar problemas ao depurar com ADL

O ADL verifica se você especificou perfis suportados no elemento supportedProfiles do arquivo de descrição de aplicativos. Se você fizer isso, ao efetuar a depuração, o ADL, por padrão, como perfil o primeiro perfil suportado da lista.

Você pode especificar um perfil para a sessão de depuração de ADL usando o argumento de linha de comando -profile. AIR Debug Launcher (ADL) Você poderá usar este argumento independentemente de especificar ou não um perfil no elemento supportedProfiles do arquivo de descrição do aplicativo. Contudo, se você especificar um elemento supportedProfiles, ele deverá incluir o perfil que você especificar na linha de comando. Do contrário, o ADL gera um erro.