Nel corso delle lezioni precedenti abbiamo imparato tante cose interessanti che è possibile fare su un dispositivo Android. Tuttavia prima di rendere disponibile le nostre applicazioni sui dispositivi di altri utenti è necessario una procedura di rilascio e distribuzione delle stesse.
Fortunatamente Google ha reso relativamente semplice la pubblicazione delle applicazioni in modo che esse possano essere rapidamente distribuite agli utenti finali. I passi per la distribuzione di un’applicazione Android sono generalmente quattro:
- Esportare l’applicazione in un file APK (Android Package)
- Generare un proprio certificato e firmare l’applicazione con esso
- Rilasciare l’applicazione firmata
- Utilizzare Google Play o altri metodi per installare l’applicazione sui dispositivi degli utenti
Per avere un’idea di come effettuare queste operazioni prendiamo una delle applicazioni sviluppate nel corso delle nostre lezioni o creiamone una nuova, non è importante quale sia il suo funzionamento. A tale scopo io creo un’applicazione denominata TestDeploy che è una semplice applicazione del tipo Hello World.
La prima cosa da fare prima di rendere disponibile un’applicazione è controllare se nel file AndroidManifest.xml sono presenti alcuni attributi piuttosto importanti. Vediamo di seguito un esempio di file completo:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testdistribuzione"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.testdistribuzione.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
versionCode e versionName
L’attributo versionCode rappresenta numericamente la versione dell’applicazione e per ogni revisione dovrebbe essere incrementato di una unità in modo da differenziare le nuove versioni dalle precedenti. Tramite questo attributo il Google Play determina se è disponibile una nuova versione dell’applicazione e lo notifica a coloro che già ce l’hanno sul proprio dispositivo. L’attributo versionName invece contiene informazioni sulla versione visibili agli utenti e dovrebbe essere nella forma X.X.X (ad esempio versione 1.0.1).
icon e label
Se vogliamo distribuire l’applicazione sul Google Play dobbiamo assicurarci inoltre che il file AndroidManifest.xml contenga anche gli attributi icon e label.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="Prima applicazione"
...
</application>
L’attributo label specifica il nome dell’applicazione che verrà poi visualizzato nella schermata delle impostazioni dei dispositivi Android su cui sarà installata. Per la nostra applicazione di esempio scriviamo qualcosa
L’attributo icon serve a specificare l’icona associata all’applicazione e per esso lasciamo il valore predefinito.
minSdkVersion e targetSdkVersion
Sempre in questo file molto importante è la sezione:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
Tale sezione serve ad indicare quale versione di Android è consigliata per l’esecuzione dell’applicazione (attributo targetSdkVersion) e quale è la versione minima di Android necessaria per l’esecuzione della stessa (attributo minSdkVersion).