web-dev-qa-db-fra.com

Android Studio crée un modèle de projet pour de nouveaux projets

Tout d'abord, je suis au courant de this question; cependant je ne peux pas suivre la réponse car il n'y a aucun répertoire mentionné ici.

Lors de la création d'un nouveau projet Android Studio, je souhaite que les éléments suivants soient créés automatiquement:

  1. Packages et répertoires spécifiques;
  2. Dépendances de Gradle
  3. Plusieurs classes (peuvent être importées d'ailleurs)

Est-il possible de créer un modèle Android Studio pour ces tâches?

33
Mikhail

Consultez ce dossier sous votre dossier Android SDK:

Android-sdk\tools\templates\projects

enter image description here

Il existe trois modèles prédéfinis, comme indiqué ci-dessous, que nous utilisons généralement.

Chaque dossier de modèles contient différents fichiers ftl qui sont des modèles pour chacun des projets existants:

enter image description here

Vous pouvez créer un nouveau dossier de modèles et concevoir les fichiers ftl comme vous le souhaitez. Et aussi définir des structures de projet.

Ouvrez-en simplement un et vous aurez une idée de la façon dont les modèles par défaut sont là. Développez-les ou créez le vôtre à partir de zéro comme vous le souhaitez.

Cela dit, vous pouvez répondre à vos questions comme suit:

Pour créer des packages créez une structure de dossiers dans le dossier root pour correspondre au nom de votre package.

Pour les dépendances gradle ajoutez-les à votre *.gradle.ftl fichiers, selon les besoins.

Pour copier/importer les classes/fichiers sortants regardez recipe.xml.ftl pour avoir une idée de la façon de copier.




MISE À JOUR: Après que les gens ont signalé qu'il ne fonctionnait pas s'il était modifié dans le dossier mentionné ci-dessus sous Android SDK

J'ai cherché à nouveau et trouvé un autre emplacement où ces modèles sont stockés, c'est-à-dire directement sous le dossier d'installation Android Studio et non le Android SDK.

Vérifié pour Android Studio Version 1.5 & Android Studio Version 2.0 Beta:

<installation folder>\plugins\Android\lib\templates

enter image description here

Les types de fichiers et leur organisation sont les mêmes que ceux mentionnés précédemment.

re: dépendances Gradle par défaut Aucune des préc. les réponses ont fonctionné pour moi. Le fichier clé est

C:\Program Files\Android\Android Studio\plugins\Android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl

La partie importante est que c'est dans NewAndroidModule , PAS NewAndroidProject

Voici à quoi ressemble mon fichier:

<#if !(perModuleRepositories??) || perModuleRepositories>
buildscript {
    repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:${gradlePluginVersion}'
    }
}
</#if>
<#if isLibraryProject?? && isLibraryProject>
apply plugin: 'com.Android.library'
<#else>
apply plugin: 'com.Android.application'
</#if>
<#if !(perModuleRepositories??) || perModuleRepositories>

repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
}
</#if>

Android {
    compileSdkVersion <#if buildApiString?matches("^\\d+$")>${buildApiString}<#else>'${buildApiString}'</#if>
    buildToolsVersion "${buildToolsVersion}"

    defaultConfig {
    <#if isLibraryProject?? && isLibraryProject>
    <#else>
    applicationId "${packageName}"
    </#if>
        minSdkVersion <#if minApi?matches("^\\d+$")>${minApi}<#else>'${minApi}'</#if>
        targetSdkVersion <#if targetApiString?matches("^\\d+$")>${targetApiString}<#else>'${targetApiString}'</#if>
        versionCode 1
        versionName "1.0"
    }
<#if javaVersion?? && (javaVersion != "1.6" && buildApi lt 21 || javaVersion != "1.7")>

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
        targetCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
    }
</#if>
<#if enableProGuard>
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
</#if>
}

dependencies {
    <#if dependencyList?? >
    <#list dependencyList as dependency>
    compile '${dependency}'
    </#list>
    </#if>
    compile fileTree(dir: 'libs', include: ['*.jar'])
<#if WearprojectName?has_content && NumberOfEnabledFormFactors?has_content && NumberOfEnabledFormFactors gt 1 && Wearincluded>
    wearApp project(':${WearprojectName}')
    compile 'com.google.Android.gms:play-services:+'
</#if>
<#if unitTestsSupported>
    testCompile 'junit:junit:${junitVersion}'
</#if>

//from C:\Program Files\Android\Android Studio\plugins\Android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
//logback
//    compile 'MyAwesomeDependency:1.1.+' 
//    compile 'MyOtherAwesomeDependency:1.1.+'
//    compile 'org.slf4j:slf4j-api:1.7.+'  
//end logback
//    compile 'com.google.code.gson:gson:2.+'

}

et voici le build.gradle de sortie correct pour l'application du module:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.ntier.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

//from C:\Program Files\Android\Android Studio\plugins\Android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
//logback
//    compile 'MyAwesomeDependency:1.1.+' 
//    compile 'MyOtherAwesomeDependency:1.1.+'
//    compile 'org.slf4j:slf4j-api:1.7.+' 
//end logback
//    compile 'com.google.code.gson:gson:2.+'

    compile 'com.Android.support:appcompat-v7:23.4.0'
}

Donc, enfin, une fois le build.gradle généré, je décommente en conséquence.

Cela m'a pris toute la journée pour me déranger. Je suis assez mécontent avec le doc'n Gradle et le Android Studio Doc'n. Cela aurait dû être une tâche facile avec un doc'n rapide et facile. Je ne comprends pas très bien le Gradle Confign.: - {

La séquence de répertoires ci-dessus est pour mon Android Studio installé. Votre Android Studio peut être installé ailleurs mais cette réponse est toujours d'actualité).

AVERTISSEMENT: j'ai juste essayé de mettre à jour mon Android Studio et il rechigne parce qu'il a remarqué le changement dans le fichier. Donc, assurez-vous de sauvegarder ce fichier avant de le modifier. Puis RESTAUREZ LE FICHIER avant pour mettre à jour Android Studio.

4
JDOaktown