2014-06-16 27 views
9

Sto cercando di scoprire la lunghezza massima di entrambi Android: versionName e android: attributi versionCode del file manifest di Android?Lunghezza massima della versione di Android Nome/versione Codice (Manifest)

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.xxxx.xxxx" 
      android:versionCode="185"   <--- THIS ATTRIBUTE 
      android:versionName="1.0.185">  <--- AND THIS ATTRIBUTE 

Esiste un valore massimo o intende permettere praticamente nulla se non c'è massimo sono lì alcune norme in vigore?

+0

Curioso di sapere, qualche motivo specifico per questo esperimento? – kosa

+0

Conosco una strana richiesta ;-) - Fondamentalmente voglio registrare gli errori delle app su un database esterno e quindi sarebbe utile conoscere la lunghezza massima per impostare i campi del database. – Apqu

+0

Vedo, ha senso. – kosa

risposta

11

Sulla base android documentation:

Android: versionCode - Un valore integer che rappresenta la versione del codice di applicazione, rispetto ad altre versioni.

Edit - documentazione Android afferma esplicitamente -

Attenzione: il massimo valore possibile per Android: versionCode è MAXINT (2147483647). Tuttavia, se carichi un'app con questo valore, l'app non potrà mai essere aggiornata.

Sulla base oracle documentation:

Per default, il tipo di dati int è un 32 bit firmato due del numero intero complemento, che ha un valore minimo di -2^31 ed un valore massimo di (2^31) -1. In Java SE 8 e versioni successive, è possibile utilizzare il tipo di dati int per rappresentare un numero intero a 32 bit senza segno, che ha un valore minimo di 0 e un valore massimo di (2^32) -1.

android: versionName - A string valore che rappresenta la versione di rilascio del codice dell'applicazione, come dovrebbe essere mostrato agli utenti.

Per quanto riguarda la lunghezza massima String, this SO question potrebbe aiutarvi.

+0

puoi inserire x.x.x.x.x.x/x_x_x_x_x_x? o questo è standard "x.x.x"? – delive

4

Diamo un'occhiata a the website.

versionCode è un intero

versionName è una stringa

android: versionCode - Un valore intero che rappresenta la versione del codice applicativo parte altre versioni. Il valore è un numero intero in modo che altre applicazioni possano valutarlo a livello di programmazione, ad esempio per verificare una relazione di aggiornamento o downgrade. È possibile impostare il valore su qualsiasi numero intero desiderato, tuttavia è necessario assicurarsi che ogni versione successiva dell'applicazione utilizzi un valore maggiore. Il sistema non applica questo comportamento, ma l'aumento del valore con le versioni successive è normativo. In genere, si rilascia la prima versione dell'applicazione con versionCode impostato su 1, quindi aumenta monotonicamente il valore con ogni versione, indipendentemente dal fatto che la versione costituisca una versione principale o secondaria. Ciò significa che Android: il valore versionCode non ha necessariamente una forte somiglianza con la versione della versione dell'applicazione che è visibile all'utente (vedi android: versionName, sotto). Le applicazioni e i servizi di pubblicazione non devono mostrare questo valore di versione agli utenti.

Quindi il codice di versione è un numero intero.Non specifica la segnaletica o il numero di bit, ma possiamo presumere che non può essere negativo e indovinare 32 bit. Quindi possiamo indovinare che può essere compreso tra 0 e 2^32. Java di default ha firmato interi a 32 bit, in modo da fornire valori da -2^31 a 2^31. Naturalmente, se fosse un numero intero a 64 bit, sarebbe compreso tra 0 e 2^64.

android: versionName - Un valore stringa che rappresenta la versione di rilascio del codice dell'applicazione, come dovrebbe essere mostrato agli utenti. Il valore è una stringa in modo che sia possibile descrivere la versione dell'applicazione come stringa .. o come qualsiasi altro tipo di identificatore di versione assoluto o relativo. Come con android: versionCode, il sistema non utilizza questo valore per scopi interni, se non per consentire alle applicazioni di visualizzarlo agli utenti. I servizi di pubblicazione possono anche estrarre il valore android: versionName per la visualizzazione agli utenti.

Questo è una stringa, quindi non ha valore massimo.

8

Aggiornamento 2016/08/11 (UTC):

Il docs è stato aggiornato. Non il vecchio valore MAX_INT o 2000000000.

Avvertenza: il valore più grande di Google Play consente di versionCode è .


cross-post per la visibilità qui.

Sembra che ci sia stato un recente cambiamento in Google, rendendo solo il massimo versionCode fino a 2000000000.

Riferimento postale: Google Play Developer Console error: The version code of your APK is high and you risk not being able to update your APK


PS: Per coloro che stanno progettando di fornire un riferimento al official documentation dove il valore massimo menzionato è 2147483647, si prega di leggere la risposta prima nel post ho fatto riferimento. Si ricorda che alla data attuale (08/10/2016), non è ancora aggiornato.

+0

Interessante aggiornamento +1 :-) – Apqu