Visualizzazione post con etichetta Android Studio. Mostra tutti i post
Visualizzazione post con etichetta Android Studio. Mostra tutti i post

Android Virtual Devices: cambiare il percorso di destinazione

Quando ho installato Windows 7 sul mio PC ho deciso di creare due partizioni, una per il sistema operativo ed una per i dati.
Purtroppo ho dedicato troppo poco spazio alla partizione di sistema, per cui spesso mi ritrovo a dover spostare file voluminosi tra le due partizioni.

I file che contengono gli AVD sono decisamente "pesanti" (nell'ordine di qualche giga), quindi ho provato a vedere se c'era un modo per trasferirli.

Ed è effettivamente possibile!

Nota: per effettuare lo spostamento, Android Studio dev'essere chiuso.

Procedura

Per prima cosa, bisogna individuare la directory in cui i file sono salvati. Il percorso di default è:

C:\Users\[nomeutente]\.android

Create una directory da qualche parte e spostateci dentro la directory .android.

Poi basta impostare una variabile d'ambiente.

Start Menu
Control Panel
System
Advanced System Settings (nel menu a sinistra)
Environment Variables

A questo punto inserite una nuova variabile utente:
nome variabile: ANDROID_SDK_HOME
valore: la directory di destinazione (escluso il .android)

A questo punto potete salvare ed aprire Android Studio. Ora il sistema caricherà i Virtual Device dalla nuova directory!

Come personalizzare il nome dell'APK prodotto da Android Studio

Di norma, quando viene generato un APK si ottiene un file dal nome standard, "app-release.apk" o "app-debug.apk", che poi di norma va modificato per evitare la sovrascrittura di altre app durante il caricamento nei dispositivi o anche solo per la conservazione.

La gestione della compilazione, nei progetti Android, è gestita dal gradle. Per modificare il nome del file generato, quindi, si deve aggiungere qualche riga al build.gradle dell'app (e non del progetto "generale").

Il file, di norma, appare così:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "it.test.example"
        minSdkVersion 23
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}

la sezione importante che andrà modificata, buildTypes > release, è:


1
2
3
4
5
6
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

All'interno della sezione release bisogna inserire un nuovo "elemento":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        project.ext { appName = 'nomeApplicazione' }
        def newName = output.outputFile.name
        newName = newName.replace("app-", "$project.ext.appName-")
        newName = newName.replace("-release", "")

        output.outputFile = new File(output.outputFile.parent, newName)
    }
}

Ovviamente dovete sostituire 'nomeApplicazione' con il nome dell'app!

In questo modo, quando l'APK verrà generato, verrà prodotto con il nome selezionato e non più come "app-release.apk".

Generare un colore randomico di tonalità "pastello"

Questo script restituisce il codice di un colore generato a caso nelle tonalità pastello. La generazione viene definita attraverso le 3 ca...