Differenza tra android-support-v7-appcompat e android-support-v4


147

Volevo sapere la differenza tra android-support-v4.jar e android-support-v7-appcompat.jar . Se voglio aggiungere la barra delle azioni di appcompat nella mia applicazione, devo aggiungere sia android-support-v7-appcompat.jar che android-support-v4.jar o solo android-support-v7-appcompat.jar .

Inoltre, android-support-v13.jar ha appcompat?

Risposte:


170

AGGIORNARE

Sono state apportate molte modifiche alla libreria di supporto da quando è stata data una risposta a questa domanda. La cosa buona è che è anche ben documentata. Quindi è necessario leggere la documentazione della libreria di supporto per maggiori dettagli e ulteriori librerie di supporto disponibili.

A partire dalla versione 26.0.0 della libreria di supporto (luglio 2017), il livello minimo di API supportato nella maggior parte delle librerie di supporto è aumentato ad Android 4.0 (livello API 14) per la maggior parte dei pacchetti di librerie.


Di seguito è la differenza dai pacchetti della libreria di supporto :

Libreria di supporto v4

Questa libreria è progettata per essere utilizzata con Android 1.6 (livello API 4) Android 2.3 (livello API 9) Android 4.0 (livello API 14) e versioni successive. Include il più ampio set di API rispetto alle altre librerie, incluso il supporto per i componenti dell'applicazione, le funzionalità dell'interfaccia utente, l'accessibilità, la gestione dei dati, la connettività di rete e le utilità di programmazione.

Librerie v7

Esistono diverse librerie progettate per essere utilizzate con Android 2.1 (livello API 7) Android 2.3 (livello API 9) Android 4.0 (livello API 14) e versioni successive. Queste librerie forniscono set di funzionalità specifiche e possono essere incluse nell'applicazione indipendentemente l'una dall'altra.

libreria v7 appcompat

Questa libreria aggiunge il supporto per il modello di progettazione dell'interfaccia utente della barra delle azioni.

Nota: questa libreria dipende dalla Libreria di supporto v4. Se si utilizza Ant o Eclipse, assicurarsi di includere la libreria di supporto v4 come parte del percorso di classe di questa libreria.

Quindi sì, hai bisogno di entrambi i barattoli se vuoi usare la v7.


Aggiornamento per android-support-v13.jar

Libreria di supporto v13

Questa interfaccia è stata deprecata nel livello API 27.1.0. Usa il frammento al posto del frammento della struttura.

Libreria di supporto v13

Questa libreria è progettata per essere utilizzata per Android 3.2 (livello API 13) e versioni successive. Aggiunge il supporto per il modello di interfaccia utente del frammento con la classe (FragmentCompat) e le classi di supporto del frammento aggiuntive

Quando vedi i dettagli del pacchetto ha una classe FragmentCompat come indicato nella definizione. Quindi non ha tutte le classi della libreria appcompat.


2
Se stai sviluppando un'app da min api 19. Ti servono?

2
Librerie di supporto v4 : queste librerie sono progettate per essere utilizzate con Android 2.3 (livello API 9) e versioni successive.
Vadik,

1
E v7 Supporto Biblioteche - Ci sono diverse librerie progettate per essere utilizzate con Android 2.3 (livello di API 9) e più alto.
Vadik,

@ user5366495 Probabilmente sì. La maggior parte delle cose buone sono API21 and above e se vuoi usarlo su un basso dovresti usare la libreria di supporto per quello. Quindi potresti averne ancora bisogno API19.
Mahdi-Malv,

48

Che cos'è una libreria di supporto?

Le librerie di supporto sono librerie di codici (Raccolta di classi) che rende una nuova funzionalità aggiunta per funzionare con i dispositivi più vecchi.
Ad esempio, Material Design è stato introdotto in API 21 (Android 5.0 - Lolipop) ma
la libreria di supporto v7 lo rende disponibile per API 7 (Android 2.1.x -Eclair) e versioni successive.

Quali sono le diverse librerie di supporto?

Alcune delle principali librerie di supporto sono

  • Libreria di supporto V4

  • Libreria di supporto V7

  • Libreria di supporto V8

  • libreria di supporto v13

Cosa significa 7 nella libreria di supporto v7?

Significa che questa libreria ha funzionalità progettate per essere utilizzate con API di livello 7 o superiore. Lo stesso vale con V4 (contiene funzionalità pensate per API 4 e successive) e così via.

Differenza tra la libreria di supporto v7 e la libreria di app v7?

Poche persone tra cui me si confondono con questi due termini. In realtà, la libreria v7 appcompat fa parte della libreria di supporto v7. La libreria di supporto v7 è stata sviluppata principalmente per supportare la progettazione dei materiali e il modello di progettazione ActionBar per API 7 e successive.
V7 può essere classificato in più sottocategorie

  • libreria v7 appcompat

  • v7 cardView library

  • v7 recyclerView library

  • libreria pallete v7 ecc

La libreria v7 appcompat ha le seguenti classi chiave ActionBar, ActionBarActivity, ShareActionProvider.

Quindi aggiungendo,

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

dipendenza nel file gradle, importa le classi sopra menzionate.

indennità

Altre librerie di supporto

Libreria di supporto Multidex (per la creazione di app con oltre
65.000 metodi) Libreria di supporto Leanback v17 (Una libreria di supporto che fornisce importanti widget per Android TV)

Link pertinenti


6
Questa dovrebbe essere la risposta accettata, spiega chiaramente tutto con parole semplici.
gegobyte,

44

Libreria di supporto necessaria solo se la versione minima di sdk è inferiore al livello API 11. 11. In caso contrario, non è necessario aggiungere la libreria di supporto al progetto per Api livello 11 o superiore.

android-support-v4.jar: supporto android.appclassi per aiutare con lo sviluppo di applicazioni per Android API livello 4 o successivo. In modo che tu possa rendere compatibile la tua backword dell'applicazione,

android-support-v7.jar È stato recentemente aggiunto nell'ultimo aggiornamento della libreria di supporto. ActionBar per consentire l'implementazione del modello di progettazione dell'interfaccia utente della barra delle azioni su Android 2.1 (livello API 7) e versioni successive. L'uso di questa classe richiede l'implementazione della tua attività estendendo la nuova ActionBarActivityclasse.

Se voglio aggiungere la barra delle azioni di appcompat nella mia applicazione, devo aggiungere sia android-support-v7-appcompat.jar che android-support-v4.jar o solo android-support-v7-appcompat.jar.

Sì, è necessario aggiungere il riferimento di entrambe le librerie se si desidera utilizzarlo.

android-support-v13.jar ha appcompat?

No, include FragmentCompat in modo che se una parte della funzione Frammento aggiunge una versione successiva alla 13, è possibile renderla backword compatibile con il livello Api 11. in modo che l'API di destinazione dell'applicazione 11 o successiva possa utilizzare la funzione aggiunta nelle versioni più recenti.


9
DrawerLayout/ NavigationDrawerattualmente esiste solo nelle librerie di supporto.
Kiran,

3
Esistono altri componenti che è possibile utilizzare nella propria app Android che si basano su una delle librerie di supporto che non è inclusa per impostazione predefinita nelle API più di 11 come com.android.support:multidex:1.0.0 e com.android. sostenere: il design: 23.1.0. controlla questo per tutte le informazioni: developer.android.com/tools/support-library/features.html
aselims

come dice google in developer.android.com/topic/libraries/support-library/… non c'è differenza tra supporto v4 e supporto v7. entrambi sono per api 9 e versioni successive. è vero?!
Mahdi

Kenji, sì, è vero. Google sposta il supporto minimo da 4 a 9 e da 7 a 9 ed entrambe le librerie ora si duplicano.
Yaroslav Havrylovych,

Se stai sviluppando un'app da min api 19. Ti servono?

10

Innanzitutto, dobbiamo capire: che cos'è la libreria di supporto Android ?

La libreria di supporto Android è stata originariamente rilasciata nel 2011, puoi dirlo come libreria di compatibilità Android. La libreria di supporto Android fornisce API più recenti per versioni precedenti. Ma la storia non è sufficiente.

ciò può confondere il fatto che le librerie di supporto con numeri di versione più alti includano le funzionalità delle librerie precedenti (si potrebbe pensare che v7-appcompat migliori e includa tutte le funzionalità di v4). Nella maggior parte dei casi, questo è errato, ma le stesse librerie hanno un numero di revisione. Ad esempio, "AppCompat v21" si riferisce effettivamente alla libreria di supporto v7-appcompat, revisione 21.

La libreria di supporto Android non è una singola libreria ma può essere approssimativamente divisa in due gruppi: compatibilità e librerie dei componenti.

Le librerie 1-Compatibilità si concentrano sulle funzionalità di backport delle versioni più recenti del framework in modo che i dispositivi che eseguono versioni precedenti possano sfruttare le API più recenti. Le principali librerie di compatibilità sono v4 e v7-appcompat.

libreria v4 : include molte funzionalità e, come suggerisce il nome, supporta l'API 4. Inoltre, per supportare le implementazioni per le classi principali come Fragment e Loader (che sono state entrambe introdotte nel framework in API 11), avrai anche trovare diverse classi ampiamente utilizzate che non sono affatto presenti nel framework, come ViewPager e DrawerLayout.

v7-appcompat : la libreria v7-appcompat fornisce implementazioni di supporto per ActionBar (introdotto in API 11) e Toolbar (introdotto in API 21) per le versioni di nuovo a API 7. Richiede la libreria v4 ma non la include. Pertanto, qualsiasi funzione dipendente da v7-appcompat dipende anche da v4.

Librerie a 2 componenti la Libreria di supporto Android offre anche librerie di componenti più piccoli e modulari che consentono agli sviluppatori di aggiungere funzionalità che altrimenti non fanno parte del framework standard. Queste librerie autonome possono essere facilmente aggiunte o rimosse da un progetto senza preoccuparsi delle dipendenze. Esistono diverse preziose librerie di componenti da considerare:

v7-recyclerview : fornisce il componente RecyclerView, che visualizza e anima in modo efficiente grandi quantità di dati ed è progettato per sostituire ListView

v7-cardview : fornisce il componente CardView, abilitando il modello di progettazione dell'interfaccia utente delle carte

v7-gridlayout : fornisce la classe GridLayout, che consente di organizzare gli elementi dell'interfaccia utente in una griglia rettangolare. Eccetera..

Altre librerie La libreria di supporto Android contiene anche alcune altre librerie che vengono utilizzate meno spesso, ma che meritano comunque di essere menzionate:

v8: fornisce supporto per RenderScript (introdotto in API 11) di nuovo a API 8

v13 : fornisce ulteriore supporto di compatibilità per il modello di interfaccia utente Fragment e raggruppa la libreria v4

v17 : fornisce supporto per la creazione di UI TV

Quando dovrei usare la libreria di supporto Android?

È necessario utilizzare una delle librerie di supporto quando sono necessarie funzionalità specifiche del framework più recenti rispetto alla versione minSdk dell'app o che non sono disponibili nel framework standard.

e mi riferisco a questo tutorial


5

Questa risposta è rilevante per i client delle librerie di supporto la cui versione è> = 26.0.0:

Attenzione : a partire dalla versione 26.0.0 della libreria di supporto (luglio 2017), il livello minimo di API supportato nella maggior parte delle librerie di supporto è aumentato ad Android 4.0 (livello API 14) per la maggior parte dei pacchetti di librerie.

Ad esempio, il pacchetto support-v4 e support-v7 supportano entrambi un livello API minimo di 14, per le versioni della libreria di supporto dalla 26.0.0 e successive .

Per ulteriori informazioni, consultare Libreria di supporto - Supporto versione e nomi dei pacchetti .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.