Android Studio为新项目创建项目模板

Android Studio为新项目创建项目模板,android,android-studio,intellij-idea,android-project-template,Android,Android Studio,Intellij Idea,Android Project Template,首先,我知道这个问题;然而,我不能按照答案,因为那里没有提到目录 创建新的Android Studio项目时,我希望自动创建以下内容: 具体的软件包和目录 梯度依赖 几个类(可能从其他地方导入) 是否可以为这些任务创建Android Studio模板?在您的Android SDK文件夹下签出此文件夹: android-sdk\tools\templates\projects 有三个预定义的模板,如下所示,我们通常使用它们 每个模板文件夹都有不同的ftl文件,这些文件是每个现有项目的模板:

首先,我知道这个问题;然而,我不能按照答案,因为那里没有提到目录

创建新的Android Studio项目时,我希望自动创建以下内容:

  • 具体的软件包和目录
  • 梯度依赖
  • 几个类(可能从其他地方导入)

  • 是否可以为这些任务创建Android Studio模板?

    在您的Android SDK文件夹下签出此文件夹:

    android-sdk\tools\templates\projects
    

    有三个预定义的模板,如下所示,我们通常使用它们

    每个模板文件夹都有不同的
    ftl
    文件,这些文件是每个现有项目的模板:

    您可以创建一个新的模板文件夹,并根据需要设计
    ftl
    文件。并定义项目结构

    只要打开其中一个,您就会了解默认模板是如何存在的。扩展这些功能,或者根据需要从头开始创建自己的功能

    综上所述,您的问题可以回答如下:

    用于创建包
    根文件夹中创建文件夹结构,以匹配包名

    对于渐变依赖项根据需要将它们添加到
    *.gradle.ftl
    文件中

    要复制/导入现有类/文件,请查看
    recipe.xml.ftl
    ,了解如何复制




    更新:在人们报告如果在上述Android SDK下的文件夹中进行更改,它将无法工作后

    我再次搜索并找到了另一个存储这些模板的位置,即直接存储在Android Studio安装文件夹下,而不是Android SDK文件夹下

    已验证Android Studio 1.5版和Android Studio 2.0版Beta版:

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


    它们的文件类型和组织与前面提到的相同

    re:默认渐变依赖项 没有上一个。答案对我有用。 密钥文件是

    C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
    
    重要的是它在新AndroidModule中,而不是在新AndroidProject中

    以下是我的文件的外观:

    <#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.+'
    
    }
    
    因此,最后,在build.gradle生成之后,我将相应地取消注释

    这花了我一整天的时间。我对Gradle doc'n和Android Studio doc'n很不满意。这本应该是一项简单的任务。事实上,我还是不太了解gradle的配置。 :-{

    上面的目录顺序是针对我安装的Android Studio。你的Android Studio可能安装在其他地方,但这个答案仍然相关

    警告:我刚刚尝试更新我的Android Studio,但它却迟迟不肯更新,因为它注意到文件中的更改。 因此,请确保在修改此文件之前对其进行备份。然后
    在更新Android Studio之前还原文件。

    非常感谢您的回答!您知道
    xml.ftl
    上是否有合适的资源吗?看看这是否有帮助:还看到了一些关于直接谷歌搜索的不错的教程。试试这些。出于某种原因,更改
    NewAndroidApplication/root/build.gradle.ftl
    没有帮助-wh在更改之后,我创建了一个新项目,
    build.gradle
    文件不包含我在
    .ftl
    文件中指定的任何新依赖项。我已检查了Android Studio中的sdk位置-它指向正确的文件夹(我在其中更改了模板),您可以重新启动Android Studio并重试吗?在Mac OSX上右键单击“Android Studio.app”,然后单击“显示软件包内容”。您将在其中找到插件文件夹。
    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'
    }