2016-02-17 16 views
8

Capisco perché è utile che una libreria definisca minSdkVersion, ma una libreria con la targetSdkVersion definita aggiunge qualche valore?Le librerie Android devono definire targetSdkVersion?

Non sono sicuro se ci sarebbero problemi con le librerie che hanno targetSdkVersion inferiori e superiori rispetto al progetto principale. Sarebbero semplicemente ignorati se il progetto principale lo avesse definito? Oppure, prendi quello inferiore/superiore? Le app Android possono funzionare in modo diverso su targetSdkVersion differente (ad esempio, autorizzazioni di runtime Marshmallow).

risposta

0

La pagina web di Android @uses-sdk dice che targetSdkVersion

specifica il livello di API su cui l'applicazione è stata progettata per funzionare.

Per quanto riguarda la domanda, la libreria specifica targetSdkVersion per richiedere l'API Android in cui è stato testato in. Se l'API effettiva sul dispositivo Android è più alta, Android offre la compatibilità diretta. Puoi cercare il testo "compatibilità diretta" su quella pagina web per i dettagli.

Speriamo che questo risponda a tutte le vostre domande. Buon divertimento ...

0

documentazione relativa targetSDKVersion:

Un numero intero che designa il livello di API che gli obiettivi di applicazione. Se non impostato, il valore predefinito è uguale a minSdkVersion. Questo attributo informa il sistema che è stato testato rispetto alla versione di destinazione e il sistema non deve attivare alcun comportamento di compatibilità per mantenere la compatibilità diretta della tua app con la versione di destinazione. L'applicazione è ancora in grado di funzionare su versioni precedenti (fino a minSdkVersion).

Una libreria Android targetSdkVersion dirà all'applicazione host come si suppone che la propria libreria si comporti in merito all'argomento. La fusione manifest presenta regole specifiche targetSdkVersion fusione:

enter image description here

attributi nell'elemento utilizzano sempre il valore dalla priorità più alta manifestano, ad eccezione delle seguenti situazioni:

  • Quando la manifest a priorità più bassa ha un valore minSdkVersion che è superiore, si verifica un errore a meno che non si applichi la regola overrideLibrary merge .
  • Quando il manifesto priorità inferiore ha un valore targetSdkVersion che è inferiore, lo strumento di fusione utilizza il valore dalla priorità più alta manifesta, ma aggiunge anche tutte le autorizzazioni sistema necessari a assicura che la libreria importata continua funziona correttamente (per i casi in cui la versione di Android superiore ha aumentato le restrizioni di autorizzazione ). Per ulteriori informazioni su questo comportamento, vedere la sezione sulle autorizzazioni implicite di sistema.
Problemi correlati