web-dev-qa-db-fra.com

Comment créer un modèle de projet personnalisé dans Android Studio

Puis-je créer un modèle de projet personnalisé dans Android Studio?

Je trouve le répertoire "Android Studio.app/sdk/tools/templates/projects/NewAndroidApplication" et le modifie un peu. Mais c'est maintenant du travail.

Avez-vous une idée ?

Je veux créer un projet à partir d'un modèle tel que Xcode.

11
sekitaka

Je suis venu avec ce blog Nice , il vous donne un tutoriel complet sur la création de modèle de fichier dans Android Studio et explique également la syntaxe du code du modèle.

Si vous voulez que votre modèle crée plusieurs fichiers et packages lorsqu’il est utilisé (comme ce que Fragment et Activity font comme modèles par défaut), je vous suggère de visiter cet article car il donne un aperçu complet du sujet.

6
AmiNadimi

Aucun des prev. les réponses ont fonctionné pour moi. Voici ce que j'ai trouvé: 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 la sortie correcte build.gradle 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, finalement, une fois que le build.gradle est généré, je commente en conséquence.

Cela m'a pris toute la journée pour me retrouver. Je suis plutôt mécontent du Grad'n Doc'n et de l'Android Studio Doc'n. Cela aurait dû être une tâche facile avec un doc'n rapide et facile. Dans l'état actuel des choses, je ne comprends toujours pas très bien Gradle Confign. : - {

La séquence de répertoires ci-dessus concerne mon Android Studio installé. Votre Android Studio peut être installé ailleurs, mais cette réponse est toujours pertinente.

5
JDOaktown

Probablement en retard pour répondre mais vérifiez bien ce dossier sous votre dossier Android SDK.

Android-sdk\tools\templates\projects

C'est là que sont stockés les nouveaux modèles de projet existants.

J'ai posté une réponse détaillée expliquant dans ce post

Édition de "Gradle-Projects/NewAndroidModule". Ça marche.

0
sekitaka