Biblioteca de suporte

A Android Support Library oferece uma série de recursos que não estão embutidos na estrutura. Essas bibliotecas oferecem versões de compatibilidade retroativa de novos recursos, fornecem elementos de IU úteis que não estão incluídos na estrutura e uma variedade de utilitários que os aplicativos podem usar.

Visão geral

Em muitos casos, um recurso pode ser valioso para muitos desenvolvedores de aplicativos, mas não apropriado para incluir na estrutura propriamente dita do Android. Por exemplo, um aplicativo pode precisar apenas de um recurso para casos de uso especializados, como suavizar a transição entre diferentes versões do sistema Android.

Para tratar essas situações, o Android SDK contém várias bibliotecas coletivamente chamadas de Android Support Library. Os desenvolvedores Android podem incluir qualquer uma dessas bibliotecas se quiserem incorporar a funcionalidade da biblioteca em seus aplicativos.

As bibliotecas de suporte fornecem uma variedade de recursos:

Compatibilidade com versões anteriores

Figura 1. Como esse aplicativo usa elementos de IU da biblioteca de suporte, a interface incorpora princípios do material design, apesar de estar em execução no Android 4.4, que não contém compatibilidade nativa para o material design.

As bibliotecas de suporte permitem que aplicativos em execução em versões mais antigas da plataforma Android sejam compatíveis com recursos disponibilizados em versões mais recentes da plataforma. Por exemplo, um aplicativo executando uma versão do Android anterior a 5.0 (API de nível 21) que depende de classes da estrutura não pode exibir elementos do material design, pois aquela versão da estrutura do Android não aceita o material design. No entanto, se o aplicativo incorpora a biblioteca appcompat da Support Library, ele tem acesso a muitos dos recursos disponíveis na API de nível 21, inclusive a compatibilidade com material design. Como resultado, o seu aplicativo pode oferecer uma experiência mais consistente em uma variedade maior de versões de plataforma.

Em alguns casos, a versão da biblioteca de suporte de uma classe depende o máximo possível da funcionalidade que a estrutura fornece. Nesses casos, se um aplicativo chama um dos métodos da classe de compatibilidade, o comportamento da biblioteca de suporte depende da versão do Android em que o aplicativo é executado. Se a estrutura fornece a funcionalidade necessária, a biblioteca de suporte chama a estrutura para realizar a tarefa. Se o aplicativo está em execução em uma versão mais antiga do Android e a estrutura não expõe a funcionalidade necessária, a biblioteca de suporte pode tentar fornecer a funcionalidade ela mesma ou pode agir como opcional. Em qualquer caso, o aplicativo geralmente não precisa verificar em que versão do Android ele está sendo executado. Em vez disso, o aplicativo pode depender da biblioteca de suporte para fazer essas verificações e escolher o comportamento adequado. Geralmente, classes cujos nomes terminam em …Compat (como ActivityCompat) se comportam dessa forma.

Em outros casos, a classe da biblioteca de suporte fornece uma versão independente completa de uma classe da estrutura que não depende da disponibilidade de qualquer API da estrutura. Esses métodos fornecem comportamento consistente em todas as plataformas aceitas.

Em todos os casos, o aplicativo não precisa verificar a versão do sistema em tempo de execução. O aplicativo pode se basear na classe da biblioteca de suporte para fazer as verificações adequadas do sistema e modificar o comportamento como necessário.

Compatibilidade com padrões gerais de layout

As bibliotecas de suporte fornecem elementos da interface do usuário não oferecidos pela estrutura do Android. Por exemplo, a Android Support Library oferece classes adicionais de layout, como DrawerLayout. Essas classes seguem práticas de projeto recomendadas do Android. Por exemplo, a Design Library segue os princípios do material design de uma forma que funciona na maioria das versões do Android.

Ao usar essas classes da biblioteca de suporte, você pode evitar ter que reinventar a roda. Se o seu aplicativo tem um requisito particular de interface do usuário, você pode usar o código existente, que fornece uma interface do usuário com a qual os usuários já estão familiarizados. Esses elementos também ajudam a criar um aplicativo que pareça ser parte do ecossistema do Android. Por exemplo: muitos aplicativo precisam exibir arbitrariamente longas listas de elementos e precisam ser capazes de reutilizar, de forma rápida e eficiente, aqueles elementos à medida que a lista muda. Ela pode ser uma lista de e-mails, contatos, álbuns de música e assim por diante. Esses aplicativos podem usar o widget RecyclerView da biblioteca de suporte para exibir a lista. Isso evita que o desenvolvedor do aplicativo tenha que desenvolver a lista do zero e garante que o usuário veja uma lista que se pareça e comporte-se como listas em outros aplicativos.

Compatibilidade com diferentes fatores de forma

O Android SDK fornece bibliotecas para uma série de diferentes fatores de forma, como TV e wearables. Os aplicativos podem depender da biblioteca de suporte apropriada para fornecer funcionalidade em uma ampla variedade de versões de plataforma e fornecer conteúdo em telas, alto-falantes e outros dispositivos de destino externos.

Utilitários gerais

A Android Support Library fornece funções de utilitários com compatibilidade com versões anteriores. Os aplicativos podem usar essas funções de utilitários para fornecer uma experiência do usuário apropriada em uma ampla variedade de versões do sistema Android. Por exemplo: os métodos de permissão da biblioteca de suporte se comportam da forma adequada dependendo da versão da plataforma em que o aplicativo é executado. Se a plataforma aceita o modelo de permissões em tempo de execução, esses métodos solicitam a permissão apropriada do usuário. Em versões da plataforma que não aceitam esse modelo, os métodos verificam se a permissão apropriada foi concedida no momento da instalação.