Sono confuso sul funzionamento interno delle API di Android.
Se la mia applicazione è compilato con Android 5.0, quindi è accettabile che le seguenti opere su un dispositivo con sistema operativo Android 5.0 e fino:Come può forse Build.VERSION_CODES funzionare?
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
Tuttavia, questo funziona ancora se l'eseguo su un dispositivo che esegue versioni precedenti di Android. La mia ipotesi è che la libreria su quel dispositivo non abbia una definizione per la variabile Build.VERSION_CODES.LOLLIPOP
. Quindi come può la variabile essere risolta su quei dispositivi più vecchi quando l'app esegue questo codice?
Modifica: 'Build.VERSION.SDK_INT' è un [' static final int'] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/ 5.L_preview/android/os/Build.java # 139). Ma il suo valore dipende da [proprietà di sistema] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.L_preview/android/os/Build.java # 503) quindi deve essere calcolato in fase di esecuzione, mentre 'Build.VERSION_CODES.LOLLIPOP' è solo un [' int'] (http://grepcode.com/file/repository.grepcode.com/java/ext/com .google.android/android/5.L_preview/android/os/Build.java # 503). – futtetennista