工程模板路径
??Android Studio的工程模板在安装目录的“\plugins\android\lib\templates\gradle-projects”文件夹下,这里面包含了导入工程模板、新建工程模板、新建module模板等。
文章图片
提醒 ??修改前一定要备份,避免修改模板后导致新建project和module异常的情况(亲身经历,出现这样的情况你会很烦躁的);
模板文件说明
NewAndroidProject模板
文章图片
NewAndroidModule模板
文章图片
修改Android Studio工程模板 【自定义Android Studio工程模板】??对工程模板中的每个文件和文件夹有一定的了解后,就可以按照自己的意愿修改模板中的内容了,如何修改得根据自己的需求而定,举个栗子,修改module的build.gradle模板(Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl),通常我们不需要依赖单元测试,去掉对单元测试的依赖,屏蔽lint的严格检查、并配置好APK的输出路径:
<#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>sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
// 屏蔽lint的严格检查
lintOptions {
abortOnError false
}
}dependencies {
<#if dependencyList?? >
<#list dependencyList as dependency>
compile '${dependency}'
#list>
#if>
// 在这里删掉对单元测试的依赖,如果需要依赖公用控件,直接在这里添加
compile fileTree(dir: 'libs', include: ['*.jar'])
}repositories {
flatDir() {
dirs 'libs'
}
}// 删掉没有签名的APK文件,同时在这里也可以配置APK文件的输出路径
android.applicationVariants.all { variant ->
variant.assemble.doLast {
variant.outputs.each { output ->
println "aligned " + output.outputFile
println "unaligned " + output.packageApplication.outputFileFile unaligned = output.packageApplication.outputFile;
File aligned = output.outputFile
if (!unaligned.getName().equalsIgnoreCase(aligned.getName())) {
println "deleting " + unaligned.getName()
unaligned.delete()
}
}
}
}
推荐阅读
- Gradle|Gradle使用axion-release和maven-publish插件构建和发布lib
- 如何在mac上手动安装gradle
- Android|Android 开发IDE之(Eclipse 和 Android Studio )
- gradle maven私服构建aar
- Android|Gradle中自定义String类型属性注意点
- Gradle|Gradle 6.3 复制 / 导出依赖 jar 包到指定目录
- android|gradle和gradlew的区别