back to top

Distribuire applicazioni Android

Nel corso delle lezioni precedenti abbiamo imparato tante cose interessanti che รจ possibile fare su un dispositivo Android. Tuttavia prima di rendere disponibili 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:

Pubblicitร 
  1. Esportare lโ€™applicazione in un file APK (Android Package)
  2. Generare un proprio certificato e firmare lโ€™applicazione con esso
  3. Rilasciare lโ€™applicazione firmata
  4. Utilizzare Play Store 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 durante il corso 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 รจ controllare se nel file AndroidManifest.xml siano presenti gli attributi versionCode e versionName e in caso negativo inserirli

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test.testdeploy"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

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 Play Store determina se รจ disponibile una nuova versione dellโ€™applicazione e lo notifica a coloro che giร  lโ€™hanno installata 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).

Se vogliamo distribuire lโ€™applicazione sul Play Store dobbiamo assicurarci inoltre che il file AndroidManifest.xml contenga anche gli attributi label e icon. 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

android:label="Prima Applicazione"

Lโ€™attributo icon serve a specificare lโ€™icona associata allโ€™applicazione e per esso lasciamo il valore predefinito.

Sempre in questo file molto importante รจ la sezione

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="21" />

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.

Altro passaggio preliminare alla generazione del file APK รจ lโ€™impostazione della modalitร  di compilazione dellโ€™app da debug a release. Per fare questo basta aprire la finestra Build Variants ed impostare il valore release al posto del valore debug

Come abbiamo accennato, tutte le applicazioni Android devono essere firmate digitalmente prima di essere distribuite sui dispositivi. Fortunatamente non รจ necessario acquistare certificati digitali da unโ€™autoritร  di certificazione ma รจ possibile generare i propri certificati ed utilizzare gli stessi per firmare le applicazioni.

Adesso bisogna configurare le informazioni sulla chiave di firma da utilizzare quando genereremo il package finale dellโ€™applicazione. Il primo passaggio รจ quello di creare un file denominato keystore e per farlo dal menรน Build clicchiamo su Generate Signed APK

In questo modo viene visualizzata la finestra di dialogo Generate Signed APK

Se disponiamo giร  di un file keystore generato in precedenza dobbiamo cliccare su Choose existing e andarlo a selezionare, in caso contrario clicchiamo su Create new e si apre la finestra New Key Store

In questa finestra dobbiamo inserire il percorso ed il nome del file keystore che vogliamo generare e la relativa password. Bisogna inoltre inserire nella sezione Key i dati necessari a generare una chiave privata per firmare lโ€™APK. Infine bisogna valorizzare almeno uno dei campi della sezione Certificate.

Dopo aver cliccato su OK ritorniamo alla finestra Generate Signed APK

Dopo aver cliccato su Next si accediamo alla finestra di generazione dellโ€™APK

Scegliamo il percorso di destinazione dellโ€™APK, la versione della firma (date unโ€™occhiata al link Signature Help) e clicchiamo su Finish.

Dopo il tempo necessario a compilare lโ€™app comparirร  il seguente messaggio

Dopo aver ottenuto il file apk firmato ci serve un modo per portare lโ€™applicazione sui dispositivi degli utenti.

Fondamentalmente esistono tre possibilitร  per effettuare questa operazione:

  • Distribuire manualmente lโ€™applicazione utilizzando lo strumento adb.exe
  • Esporre lโ€™applicazione su un server web
  • Pubblicare lโ€™applicazione tramite il Google Play Store

In ogni caso oltre a questi metodi รจ sempre possibile installare lโ€™applicazione sui dispositivi semplicemente facendo in modo di trasferire su di essi lโ€™apk (tramite email o file explorer ad esempio) ed avviarlo.

Pubblicitร