Italian minSdkVersion, targetSdkVersion, android.jar

AlpVir

Well-Known Member
Licensed User
Longtime User
Qualcuno mi sa gentilmente spiegare il significato dei seguenti elementi :
1) minSdkVersion="x" (è nel file manifest)
2) targetSdkVersion="y" (è nel file manifest)
3) C:\Android\platforms\android-24\android.jar (è in "Configurazione percorsi")

Faccio riferimento alla corrispondenza biunivoca che c'è fra le due colonne della seguente tabella
Android 8.0.0 - Rev. 26
Android 7.1.1 - Rev. 25
Android 7.0 - Rev. 24
Android 6.0 - Rev. 23
e così via.

A me sembra di capire:
1) minSdkVersion ; la versione minima dell'SDK; se il numero x è ad esempio 10 significa che device con versione Android MINORE di 2.3.3 non potranno lanciare l'app. Conviene quindi indicare un numero basso, tenendo sempre comunque conto della versione minima consigliata per ciascuna libreria.
2) targetSdkVersion ; non so cosa sia;
3) se indico "android-24\android.jar" significa che saranno compatibili tutti i device con versione Android MINORE OD UGUALE a 7.0 (Android 7.1.1 e 8.0 sono esclusi e produrrebbero un errore). Quindi conviene sempre indicare il più alto numero possibile (e scaricare il relativo SDK)

E' più o meno esatto ? Come ci si deve comportare per gestire al meglio questi elementi ?
Grazie per l'attenzione
 

Emme Developer

Well-Known Member
Licensed User
Longtime User
Qualcuno mi sa gentilmente spiegare il significato dei seguenti elementi :
1) minSdkVersion="x" (è nel file manifest)
2) targetSdkVersion="y" (è nel file manifest)
3) C:\Android\platforms\android-24\android.jar (è in "Configurazione percorsi")

Faccio riferimento alla corrispondenza biunivoca che c'è fra le due colonne della seguente tabella
Android 8.0.0 - Rev. 26
Android 7.1.1 - Rev. 25
Android 7.0 - Rev. 24
Android 6.0 - Rev. 23
e così via.

A me sembra di capire:
1) minSdkVersion ; la versione minima dell'SDK; se il numero x è ad esempio 10 significa che device con versione Android MINORE di 2.3.3 non potranno lanciare l'app. Conviene quindi indicare un numero basso, tenendo sempre comunque conto della versione minima consigliata per ciascuna libreria.
2) targetSdkVersion ; non so cosa sia;
3) se indico "android-24\android.jar" significa che saranno compatibili tutti i device con versione Android MINORE OD UGUALE a 7.0 (Android 7.1.1 e 8.0 sono esclusi e produrrebbero un errore). Quindi conviene sempre indicare il più alto numero possibile (e scaricare il relativo SDK)

E' più o meno esatto ? Come ci si deve comportare per gestire al meglio questi elementi ?
Grazie per l'attenzione
E' più o meno come hai detto tu. Se imposti un minSdk alto, i dispositivi con os minore di quel sdk non vedranno l'app neanche nello store. Per il target, io imposto sempre 22, dal 23 in poi ci sono le richieste dei permessi in Runtime e non ho proprio voglia di smanettare per attivarli. L'ultimo indica le risorse che stai utilizzando per la compilazione. Utilizza sempre quello più alto, così sei sicuro di utilizzare gli ultimi metodi aggiornati da google
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Grazie. Il target, al di là dell'utile consiglio di impostare sempre il 22, non mi sai dire di più ?
 

enrico

Active Member
Licensed User
Longtime User
Io nell'aggiornare una vecchia app ho messo target sdk 22.
Però Google Play Console mi dà questo errore :

Passa al nuovo modello di autorizzazioni
Avviso:
Gli utenti che attualmente hanno l'APK con codice di versione 1511 e target SDK 22 o versioni precedenti saranno idonei per l'upgrade a questo APK. Tuttavia, in seguito all'upgrade a questo APK, non potranno eseguire l'upgrade ad APK con target SDK 22 o versioni precedenti.
Suggerimento:
Se si tratta di una modifica intenzionale, assicurati che tutti i futuri aggiornamenti per gli utenti che eseguono l'upgrade a questo APK abbiano come target SDK 23 o versioni successive.

Significa che dai prossimi aggiornamenti dell'app dovrò mettere target sdk 23 ?
 
D

Deleted member 103

Guest
Significa che dai prossimi aggiornamenti dell'app dovrò mettere target sdk 23 ?
No, da novembre 2018 devi usare, per gli aggiornamneti o nuove App, minimo il target sdk 26+.
 

LucaMs

Expert
Licensed User
Longtime User
No, da novembre 2018 devi usare, per gli aggiornamneti o nuove App, minimo il target sdk 26+.
Questa frase di Erel lascia anche un altro dubbio:
As explained in this tutorial all store apps will soon be forced to target the latest SDK.
in quanto, se tradotto/interpretato alla lettera, significa che non sarà manco sufficiente impostare il target a 26 ma dovrà essere impostato all'ultima versione disponibile al momento della pubblicazione dell'app.

Cmq, devo ancora leggere tutto e magari ho interpretato male. Sicuramente ciò che ha scritto Filippo è esatto: attualmente è obbligatorio impostare il target almeno a 26.
 

LucaMs

Expert
Licensed User
Longtime User
Questa frase di Erel lascia anche un altro dubbio:

in quanto, se tradotto/interpretato alla lettera, significa che non sarà manco sufficiente impostare il target a 26 ma dovrà essere impostato all'ultima versione disponibile al momento della pubblicazione dell'app.

Cmq, devo ancora leggere tutto e magari ho interpretato male. Sicuramente ciò che ha scritto Filippo è esatto: attualmente è obbligatorio impostare il target almeno a 26.
Infatti è/sarà così (direttamente da Google):

2019 onwards: Each year the targetSdkVersion requirement will advance. Within one year following each Android dessert release, new apps and app updates will need to target the corresponding API level or higher.
 

enrico

Active Member
Licensed User
Longtime User
Adesso Google Play mi dice che non sarebbe compatibile nè con il mio smartphone android 7.0 nè con il mio tablet android 4.4.2
 

udg

Expert
Licensed User
Longtime User
L'errore è nel dire "mio" smartphone/tablet..in realtà noi siamo solo i finanziatori. Poi lorsignori decidono cosa possiamo farci, quando, perché e fin quando. E questo è ciò che si vede. Se pensiamo a tutto quello che accade dietro le quinte, allora l'unica azione sensata sarebbe buttar via tutto e passare ai "pizzini" come faceva un saggio capo-mafia. Non nego i benefici della tecnologia, ma avere consapevolezza di rischi, limiti e problemi mi sembra opportuno. Almeno per chi, come noi, vive di questo.

La prima domanda da porsi, nel caso specifico. è se davvero serve che quella particolare app sia presente e sia distribuita tramite lo store di Google. Se così non fosse, un hosting da pochi euro (e meglio ancora un VPS super-economico) permetterebbero di riconquistare un minimo di libertà (per ora).
 

LucaMs

Expert
Licensed User
Longtime User
La prima domanda da porsi, nel caso specifico. è se davvero serve che quella particolare app sia presente e sia distribuita tramite lo store di Google. Se così non fosse, un hosting da pochi euro (e meglio ancora un VPS super-economico) permetterebbero di riconquistare un minimo di libertà (per ora).
E' ciò che dovremmo fare e poi pubblicare app porno e/o con giochi d'azzardo (truccati, ovviamente); unico vero modo per guadagnare con le app.



Adesso Google Play mi dice che non sarebbe compatibile nè con il mio smartphone android 7.0 nè con il mio tablet android 4.4.2
E' un range piuttosto ampio (tra l'altro gli stessi S.O. dei miei dispositivi :)).

Stavo pensando che potesse dipendere dal minSdkVersion impostato alto, che escluderebbe il 4.4.2, ma per escludere anche il 7.0 dovresti averlo messo almeno a 25.

Che versioni min e target hai impostato?
 

enrico

Active Member
Licensed User
Longtime User
minSdkVersion="4" (non l'ho cambiato da come era prima)
targetSdkVersion="26" (dato che mi pare di aver capito di essere costretto)

Cioè, adesso chi non ha l'ultimissimo aggeggio non potrà più scaricare app aggiornate ?
 

LucaMs

Expert
Licensed User
Longtime User
Non è questo, anche perché la 7.0 non è poi così vecchia.

Min e target vanno bene; quale sia il problema... I don't know :(

Potresti provare a caricare un apk creato da un progetto praticamente vuoto e vedere se ti succede la stessa cosa (giusto per prova, poi lo elimini).
 
Top