Diferença entre android-support-v7-appcompat e android-support-v4

147

Eu queria saber a diferença entre android-support-v4.jar e android-support-v7-appcompat.jar . Se eu quiser adicionar a barra de ação appcompat no meu aplicativo, preciso adicionar android-support-v7-appcompat.jar e android-support-v4.jar ou apenas android-support-v7-appcompat.jar .

Além disso, o android-support-v13.jar possui appcompat?

Tarun
fonte

Respostas:

170

ATUALIZAR

Há muitas alterações feitas na biblioteca de suporte desde que esta pergunta foi respondida. O bom é que também está muito bem documentado. Portanto, você deve ler a documentação da biblioteca de suporte para obter mais detalhes e uma biblioteca de suporte mais disponível.

A partir da biblioteca de suporte, versão 26.0.0 (julho de 2017), o nível mínimo de API suportada na maioria das bibliotecas de suporte aumentou para Android 4.0 (nível de API 14) para a maioria dos pacotes de bibliotecas.


Abaixo está a diferença dos pacotes da biblioteca de suporte :

Biblioteca de suporte v4

Esta biblioteca foi projetada para ser usada com o Android 1.6 (nível 4 da API), Android 2.3 (nível 9 da API), Android 4.0 (nível 14 da API) e superior. Ele inclui o maior conjunto de APIs em comparação com as outras bibliotecas, incluindo suporte para componentes de aplicativos, recursos de interface do usuário, acessibilidade, manipulação de dados, conectividade de rede e utilitários de programação.

Bibliotecas v7

Existem várias bibliotecas projetadas para serem usadas com o Android 2.1 (API nível 7), Android 2.3 (API nível 9), Android 4.0 (API nível 14) e superior. Essas bibliotecas fornecem conjuntos de recursos específicos e podem ser incluídas no aplicativo independentemente uma da outra.

biblioteca v7 appcompat

Esta biblioteca adiciona suporte ao padrão de design da interface do usuário da Barra de Ação.

Nota: Esta biblioteca depende da Biblioteca de suporte da v4. Se você estiver usando Ant ou Eclipse, certifique-se de incluir a v4 Support Library como parte do caminho de classe desta biblioteca.

Então, sim, você precisa dos dois frascos se quiser usar a v7.


Atualização para android-support-v13.jar

Biblioteca de suporte da v13

Essa interface foi preterida no nível da API 27.1.0. Use o fragmento em vez do fragmento da estrutura.

Biblioteca de suporte da v13

Esta biblioteca foi projetada para ser usada no Android 3.2 (nível 13 da API) e superior. Ele adiciona suporte ao padrão de interface do usuário Fragment com a classe (FragmentCompat) e outras classes de suporte a fragmentos

Quando você vê os detalhes do pacote, ele possui uma classe FragmentCompat, conforme definido na definição. Portanto, não possui todas as classes da biblioteca appcompat.

Pankaj Kumar
fonte
2
Se você estiver desenvolvendo um aplicativo a partir da min api 19. Você precisa deles?
2
Bibliotecas de suporte da v4 - Essas bibliotecas foram projetadas para serem usadas com o Android 2.3 (nível 9 da API) e superior.
Vadik
1
E v7 Support Libraries - Existem várias bibliotecas projetadas para serem usadas com o Android 2.3 (API nível 9) e superior.
Vadik
@ user5366495 Provavelmente sim. A maioria das coisas boas é a favor API21 and above e se você quiser usá-lo em baixo, use a biblioteca de suporte para isso. Então você ainda pode precisar disso API19.
Mahdi-Malv
48

O que é uma biblioteca de suporte?

As bibliotecas de suporte são bibliotecas de código (coleção de classes) que cria um recurso recém-adicionado para trabalhar com os dispositivos mais antigos.
Por exemplo, o Material Design foi introduzido na API 21 (Android 5.0 - Lolipop), mas
a biblioteca de suporte da v7 o disponibiliza para a API 7 (Android 2.1.x -Eclair) e superior.

Quais são as diferentes bibliotecas de suporte?

Algumas das principais bibliotecas de suporte são

  • Biblioteca de suporte V4

  • Biblioteca de suporte V7

  • Biblioteca de suporte V8

  • Biblioteca de suporte da v13

O que 7 representa na v7 Support Library?

Isso significa que esta biblioteca possui recursos projetados para serem usados ​​com a API nível 7 e superior. O mesmo acontece com a V4 (contém recursos destinados à API 4 e superior) e assim por diante.

Diferença entre a biblioteca de suporte v7 e a biblioteca appcompat v7?

Poucas pessoas, inclusive eu, ficam confusas com esses dois termos. Na verdade, a biblioteca v7 appcompat faz parte da biblioteca de suporte v7. A biblioteca de suporte v7 foi desenvolvida principalmente para suportar o design de materiais e o padrão de design do ActionBar para API 7 e superior.
V7 pode ser categorizado em mais subcategorias

  • biblioteca v7 appcompat

  • biblioteca v7 cardView

  • Biblioteca v7 recyclerView

  • biblioteca de paletes v7 etc

A biblioteca v7 appcompat possui as seguintes classes-chave ActionBar, ActionBarActivity, ShareActionProvider.

Então adicionando,

com.android.support:appcompat-v7:21.0.+

dependência no seu arquivo gradle, importa as classes mencionadas acima.

Bônus

Outras bibliotecas de suporte

Biblioteca de suporte Multidex (Para criar aplicativos com mais de 65k métodos)
v17 Biblioteca de suporte Leanback (uma biblioteca de suporte que fornece widgets importantes para a Android TV)

Links relevantes

Rohit Singh
fonte
6
Esta deve ser a resposta aceita, explica claramente tudo em palavras simples.
gegobyte 30/09
44

Biblioteca de suporte necessária apenas se sua versão mínima do sdk for menor que o Nível 11. da API. Caso contrário, você não precisará adicionar uma biblioteca de suporte ao seu projeto para a Api Nível 11 ou superior.

android-support-v4.jar:android.app classes de suporte para ajudar no desenvolvimento de aplicativos para a API do Android nível 4 ou posterior. Para que você possa compatibilizar a senha de seu aplicativo,

android-support-v7.jar Foi adicionado recentemente na atualização mais recente da biblioteca de suporte. ActionBar para permitir a implementação do padrão de design da interface do usuário da barra de ação de volta ao Android 2.1 (nível 7 da API) e superior. O uso desta classe requer que você implemente sua atividade estendendo a nova ActionBarActivityclasse.

Se eu quiser adicionar uma barra de ação appcompat no meu aplicativo, preciso adicionar android-support-v7-appcompat.jar e android-support-v4.jar ou apenas android-support-v7-appcompat.jar.

Sim, você precisa adicionar referência de ambas as bibliotecas, se quiser usá-lo.

o android-support-v13.jar tem appcompat?

Não, inclui FragmentCompat para que, se alguns dos recursos do Fragment forem adicionados após a versão 13, você possa torná-lo compatível com o nível 11. da API 11, para que a API de destino 11 do aplicativo ou superior possa usar o recurso adicionado nas versões mais recentes.

Bhavesh Patadiya
fonte
9
DrawerLayout/ NavigationDraweratualmente existe apenas em bibliotecas de suporte.
Kiran
3
Existem outros componentes que você pode usar no seu aplicativo Android, que é baseado em uma das bibliotecas de suporte que não está incluída por padrão nas APIs com mais de 11, como com.android.support:multidex:1.0.0 e com.android. suporte: design: 23.1.0. verifique isso para obter informações completas: developer.android.com/tools/support-library/features.html
aselims 7/16/16
como o google diz em developer.android.com/topic/libraries/support-library/…, não há diferença entre o suporte v4 e o suporte v7. ambos são para api 9 e acima. isso é verdade?!
Mahdi
Kenji, sim, é verdade. O suporte mínimo do turno do Google de 4 para 9 e de 7 para 9 e agora as duas bibliotecas se duplicam.
Yaroslav Havrylovych
Se você estiver desenvolvendo um aplicativo a partir da min api 19. Você precisa deles?
10

Primeiro, precisamos entender: O que é a Biblioteca de Suporte do Android ?

A Biblioteca de suporte do Android foi lançada originalmente em 2011. Você pode dizer que, como a Biblioteca de compatibilidade do Android. A Biblioteca de suporte do Android fornece APIs mais recentes para versões mais antigas. Mas a história não é suficiente.

isso pode ser um pouco confuso, pois as bibliotecas de suporte com números de versão mais altos incluem os recursos das bibliotecas anteriores (você pode pensar que o v7-appcompat aprimora e inclui todos os recursos da v4). Na maioria dos casos, isso está incorreto. Mas as próprias bibliotecas têm um número de revisão. Por exemplo, "AppCompat v21" na verdade se refere à biblioteca de suporte v7-appcompat, revisão 21.

A Biblioteca de suporte do Android não é uma biblioteca única, mas pode ser dividida em dois grupos: compatibilidade e bibliotecas de componentes.

As bibliotecas de 1 compatibilidade concentram-se nos recursos de backport das versões mais recentes da estrutura, para que os dispositivos que executam versões anteriores possam tirar proveito das APIs mais recentes. As principais bibliotecas de compatibilidade são v4 e v7-appcompat.

Biblioteca v4 : inclui muitos recursos e, como o nome sugere, suporta a API 4. Além disso, para oferecer suporte a implementações para classes principais como Fragment e Loader (que foram introduzidas na estrutura da API 11), você também encontre várias classes amplamente usadas que não estão presentes na estrutura, como ViewPager e DrawerLayout.

v7-appcompat : a biblioteca v7-appcompat fornece implementações de suporte para ActionBar (introduzido na API 11) e Toolbar (introduzido na API 21) para lançamentos de volta à API 7. Requer a biblioteca v4, mas não a inclui. Portanto, qualquer recurso dependente da v7-appcompat também depende da v4.

Bibliotecas de 2 componentes A Biblioteca de suporte do Android também fornece bibliotecas de componentes menores e mais modulares que permitem aos desenvolvedores adicionar recursos que, de outra forma, não fazem parte da estrutura padrão. Essas bibliotecas independentes podem ser facilmente adicionadas ou removidas de um projeto sem se preocupar com dependências. Existem várias bibliotecas de componentes valiosas a serem consideradas:

v7-recyclerview : fornece o componente RecyclerView, que exibe e anima com eficiência grandes quantidades de dados e foi projetado para substituir o ListView

v7-cardview : fornece o componente CardView, ativando o padrão de design da interface do usuário dos cartões

v7-gridlayout : fornece a classe GridLayout, que permite organizar os elementos da interface do usuário em uma grade retangular. Etc ..

Outras bibliotecas A Biblioteca de suporte do Android também contém algumas outras bibliotecas usadas com menos frequência, mas ainda vale a pena mencionar:

v8: fornece suporte para o RenderScript (introduzido na API 11) de volta à API 8

v13 : fornece suporte de compatibilidade adicional para o padrão Fragment UI e agrupa a biblioteca v4

v17 : fornece suporte para a criação de UIs de TV

Quando devo usar a Biblioteca de Suporte Android?

Você deve usar uma das bibliotecas de suporte quando precisar de recursos específicos da estrutura mais recentes que a minSdkVersion do seu aplicativo ou que não estejam disponíveis na estrutura padrão.

e refiro este tutorial

Farhana
fonte
5

Esta resposta é relevante para clientes de bibliotecas de suporte cuja versão é> = 26.0.0:

Cuidado : A partir da biblioteca de suporte, versão 26.0.0 (julho de 2017), o nível mínimo de API suportada na maioria das bibliotecas de suporte aumentou para Android 4.0 (nível de API 14) para a maioria dos pacotes de bibliotecas.

Por exemplo, o pacote support-v4 e support-v7 suportam um nível mínimo de API 14, para liberações da Biblioteca de suporte a partir da 26.0.0 e superior .

Para obter mais informações, consulte Biblioteca de suporte - suporte de versão e nomes de pacotes .

Eido95
fonte