Hvordan å støtte din App på Eldre Android Devices

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.jar 

Kopier 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 linjen 

Her 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.