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

首先,我知道这个问题; 但是我无法回答,因为那里没有提到的目录。

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

  1. 具体的包和目录;
  2. Gradle依赖项
  3. 几个类(可能从其他地方导入)

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

查看android SDK文件夹下的这个文件夹:

android-sdk\tools\templates\projects 

在此处输入图像描述

我们通常使用三种预定义模板,如下所示。

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

在此处输入图像描述

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

只需打开其中一个,您就会知道默认模板是如何存在的。 根据需要扩展它们或从头开始创建自己的。

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

要创建包 ,请在root文件夹中创建一个文件夹结构以匹配您的包名称。

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

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




更新:人们报告说,如果在Android SDK下面的上述文件夹中进行了更改,则无法正常工作

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

已validationAndroid Studio Version 1.5Android Studio Version 2.0 Beta

 \plugins\android\lib\templates 

在此处输入图像描述

它们的文件types和组织与前面提到的相同。

re:默认Gradle Dependencies没有prev。 答案对我有用。 密钥文件是

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

重要的部分是它在NewAndroidModule中 ,而不是NewAndroidProject

这是我的文件的样子:

 < #if !(perModuleRepositories??) || perModuleRepositories> buildscript { repositories { jcenter() < #if mavenUrl != "mavenCentral"> maven { url '${mavenUrl}' }  } dependencies { classpath 'com.android.tools.build:gradle:${gradlePluginVersion}' } }  < #if isLibraryProject?? && isLibraryProject> apply plugin: 'com.android.library' < #else> apply plugin: 'com.android.application'  < #if !(perModuleRepositories??) || perModuleRepositories> repositories { jcenter() < #if mavenUrl != "mavenCentral"> maven { url '${mavenUrl}' }  }  android { compileSdkVersion < #if buildApiString?matches("^\\d+$")>${buildApiString}< #else>'${buildApiString}' buildToolsVersion "${buildToolsVersion}" defaultConfig { < #if isLibraryProject?? && isLibraryProject> < #else> applicationId "${packageName}"  minSdkVersion < #if minApi?matches("^\\d+$")>${minApi}< #else>'${minApi}' targetSdkVersion < #if targetApiString?matches("^\\d+$")>${targetApiString}< #else>'${targetApiString}' 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 enableProGuard> buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }  } dependencies { < #if dependencyList?? > < #list dependencyList as dependency> compile '${dependency}'   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 unitTestsSupported> testCompile 'junit:junit:${junitVersion}'  //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:

 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' } 

所以,最后,在build.gradle生成之后,我相应地取消注释。

这花了我一整天才搞清楚。 我对Gradle doc’n和Android Studio Doc’n非常不满。 这应该是一个简单的任务w /快速简单的doc’n。 事实上,我仍然不太了解gradle confign。 : – {

上面的目录序列适用于我安装的Android Studio。 您的Android Studio可能已安装在其他位置,但此答案仍然相关。

警告:我刚刚尝试更新我的Android Studio,因为它注意到文件中的更改。 因此,在修改之前,请确认您备份此文件。 然后在更新Android Studio之前恢复文件。