Som med alle API som er under aktiv utvikling, noen ganger som en Android-utvikler du kommer over en veldig fin funksjon som, viser det seg, finnes ikke i tidligere versjoner av API og er ikke bakoverkompatibel. Det er et par måter å håndtere dette. Det ene er rett og slett å insistere på at brukerne må ha en gitt versjon, og for å begrense din app til den versjonen. Imidlertid kan det også begrense rekkevidden av din app - det er fortsatt nok av folk der ute som bruker eldre versjoner av Android. Et annet alternativ for visse funksjoner, er å gjøre bruk av Android Support Library.
Bruke Support Library i et prosjekt
Først må du laste ned Support Library via SDK Manager (nås enten via Eclipse eller via kommandolinjen). Nå åpner Android prosjektet og lage en libsdirectory på øverste nivå i prosjektkatalogen. Finn din SDK-katalogen, og finn JAR-filen for støtten biblioteket du vil, for eksempel
[SDK-dir] /extras/android/support/v4/android-support-v4.jarKopier denne inn i libs katalog av prosjektet. Til slutt, redigere prosjektets AndroidManifest.xml å angi minimum og maksimum SDK versjoner riktig:
< bruker-SDK android: minSdkVersion = "4" android: targetSdkVersion = "17" />Målet bør være den siste versjonen (for tiden 17, på i skrivende stund), og minimum bør være 4; eller hvis du bruker andre funksjoner som ikke finnes i Support Library eller i API nivå 4, sette minimum til det som passer for ditt prosjekt.
Når faktisk bruker koden, må du gjøre visse at du implementerer riktig klasse; en fra bæreren biblioteket, ikke en fra hoved API. Sjekk import utsagn nøye og sørg for at du ikke utilsiktet dobbelt opp når du ikke ønsker å:
import android.support.v4.app.SearchViewCompat; //Bruke denne linjen ... import android.widget.SearchView; //Ikke denne linjenHer er et eksempel bruker koden fra forrige tutorial, erstatte GestureDetector med GestureDetectorCompat:
import android.view.GestureDetector; //Fortsatt trenger dette for MyExampleGestureListener import android.support.v4.view.GestureDetectorCompat; public class GestureExampleView strekker SurfaceView implementerer SurfaceHolder.Callback {//private klassevariabler privat GestureDetectorCompat detektor; offentlig GestureExampleView (Context kontekst) {//se forrige tutorial for resten av metode detektor = new GestureDetectorCompat (kontekst, ny MyExampleGestureListener ()); } //Resten av metoder som før klassen MyExampleGestureListener strekker GestureDetector.SimpleOnGestureListener {//Dette er som før; fortsatt bruker GestureDetector.SimpleOnGestureListener}}Compile og kjøre og det skal fungere greit akkurat som før; men nå hvis du finner en eldre enhet det skal fungere på det også!
Kjente klasser i Support Library
I dag er en av de mest populære anvendelser av Support Library å bruke Fragments med eldre versjoner av Android. Fragmenter tillate deg å lage UI komponentmoduler som styrer sin egen layout og livssyklus, som du deretter kan bytte inn og ut av programmet ditt, slik at du kan opprette en multi-rute, dynamisk UI. Fragmenter også gjøre det enkelt å gjenbruke komponenter og å sette dem opp forskjellig i ulike sammenhenger (for eksempel telefon håndsett vs tablett).
SearchViewCompat er også hendig, slik at du kan bruke den svært nyttige søk: introdusert i API nivå 11.
ActionBar støttes ikke av den Support Library, men ved hjelp av MenuCompat lar deg spesifisere elementer som skal brukes i ActionBar når den er tilgjengelig.
Følg med her for senere tutorials på Fragments og ActionBar.