2010-01-12 13 views
6

Voglio rilasciare un'app sul mercato. Ad esempio non usa nulla di nuovo dalla versione 2.0 come bluetooth e funziona bene in ogni emulatore usando la versione 1.6 alla 2.1.quale versione di sdk per Android sarà rilasciata sul mercato?

La mia domanda è sulla versione del sdk dovrei distribuire la mia applicazione per renderla compatibile con tutti i dispositivi che eseguono 1.6, 2.0 o 2.1?

ho solo un dispositivo fisico che esegue 1,6 per provarlo, ma come dico, utilizza niente di speciale e funziona bene su emulatori utilizzando livelli API 4, 5, 6 o 7.

Grazie

risposta

8

Le risposte qui sono buoni, ma qui ci sono alcuni ulteriori suggerimenti:

  • non impostare android:maxSdkVersion se non si è assolutamente certi di averne bisogno.
  • set android:minSdkVersion a 3 così i dispositivi Cupcake possono eseguirlo.
  • impostare android:targetSdkVersion a 4 per indicare che l'app è stata testata su Donut.

L'app dovrebbe quindi funzionare bene su tutti i dispositivi> = Cupcake. Se hai intenzione di fornire risorse ad alta densità per schermi ad alta densità (Droid, Nexus One), c'è un po 'più di lavoro che devi fare. Sarebbe meglio iniziare un altro thread per questo, ma per farla breve, mettere le risorse ad alta densità in una cartella chiamata drawable-hdpi-v4.

Assicurati di controllare il documento uses-sdk.

2

Se la tua app non sta facendo niente di stravagante, usa nulla che è stato deprecato/modificato/aggiunto tra queste versioni e funziona sui rispettivi emulatori, quindi dovresti stare bene.

Basta limitarlo a 2,1 come limite superiore utilizzando android:maxSdkVersion="7" — è possibile aggiornare sempre come e quando viene rilasciato il successivo SDK.

+5

Si prega di considerare l'uso di android: maxSdkVersion con attenzione, probabilmente non si dovrebbe usare. Se sei impostato, assicurati di aver letto l'avviso nel documento: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max – James

+2

Davvero, basta indossare non usarlo È stata una cattiva idea Il supporto per questo è stato rimosso, quindi verrà ignorato. – hackbod

+0

Ah, abbastanza giusto. Anche se i documenti dicono "in base alla progettazione, le nuove versioni della piattaforma sono completamente compatibili con le versioni precedenti" - probabilmente vale la pena aggiungere una nota sulle API deprecate. Ad esempio, dopo quante versioni sono state rimosse le classi deprecate dal framework? C'è una politica? –

1

Credo che qualsiasi cosa scritta nelle versioni precedenti dell'SDK sia pienamente compatibile con l'ultima versione.

Sono sicuro di aver letto questo nella documentazione SDK quando stavo impostando il mio IDE.

Se sono corretto, non è necessario aggiornare la tua applicazione per utilizzare le funzionalità aggiunte, anche se l'opzione sarà sempre presente se decidi di espanderci.

1

Secondo me la procedura migliore è compilare con il sdk di Android 1.6 e impostare minSdkVersion su 3 nel manifest.

Dico questo sulla base della raccomandazione di Dianne Hackborn (l'utente di nome hackbod che ha commentato la risposta accettata) in this thread, lei è un dipendente di Google che lavora sulla stessa fonte Android.

In linea di principio ci sono alcuni dispositivi Android 1.5 SDK, quindi la compilazione con l'SDK di Android 1.5 fornirebbe supporto per più dispositivi con 1.5 SDK, 1.6 SDK, 2.0 SDK o 2.1 SDK ma ci sono dispositivi che richiedono l'SDK 1.6 come l'HTC Tattoo per compilare l'app con 1.6 sdk ma impostare minSdkVersion su 3 consente alla maggior parte dei dispositivi di utilizzare la tua app.

Se si esegue la risposta accettata e si effettua la compilazione con l'SDK 2.1 più recente, si perde una grande quantità di utenti. Le applicazioni compilate con l'SDK 2.1 possono essere utilizzate solo da dispositivi che hanno l'SDK 2.1 o superiore, quindi in pratica si limitano gli utenti a coloro che possiedono un Google Nexus One al momento.

+0

Al momento della domanda sembrava corretto impostare maxSdkVersion ma dopo tutti gli avvertimenti, sì, sembrava meglio usare solo min e target mentre si compilava ancora su 1.6. – attwad

Problemi correlati