1.前言
每次使用Android Studio創(chuàng)建新的工程時,可能都需要手動去修改一些配置,有沒有覺得很煩呢?下面教你如何修改Android Studio默認的project和module模板。整完這些之后,相信能夠節(jié)省你三秒的時間喔~~
本文主要介紹以下幾種配置,可以按需去修改:
1.移除單元測試
2.配置私有maven庫
3.移除默認的V7庫以及相關資源
4.修改默認的.gitignore模板
如果你還想修改其他配置的話,那么可以看下這篇文章:
自定義Android Studio代碼模板
看完這個之后,那么你應該可以隨心所欲,為所欲為了。
以下操作建議對相應的文件先進行備份,出了問題概不負責哈。重要的事情說三遍。
修改前先備份~
修改前先備份~
修改前先備份~
2.移除單元測試
單元測試其實是個好東西喔。但是有時候新建的工程不需要單元測試,又嫌礙眼的話,那么可以把默認的單元測試給移除掉,瞬間清爽了,媽媽再也不用擔心你寫的代碼出bug了(才怪)。

我們的目標是把上面紅色的部分都去掉。
移除單元測試的話有兩種方法,一種是暴力法:直接把相關控制的代碼和配置刪掉或注釋掉;另外一種是變量控制法:通過讀取變量開關來決定是否引入單元測試。推薦使用變量控制法。
2.1 暴力法--刪掉或注釋
2.1.1 修改recipe.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\recipe.xml.ftl
- 可以把下面的代碼直接刪掉或注釋
<instantiate from="root/test/app_package/ExampleInstrumentedTest.${ktOrJavaExt}.ftl"
to="${escapeXmlAttribute(testOut)}/ExampleInstrumentedTest.${ktOrJavaExt}" />
<#if improvedTestDeps>
<dependency mavenUrl="com.android.support.test:runner:+" gradleConfiguration="androidTestCompile" />
<dependency mavenUrl="com.android.support.test.espresso:espresso-core:+" gradleConfiguration="androidTestCompile" />
</#if>
<#if improvedTestDeps>
<dependency mavenUrl="com.android.support.test:runner:+" gradleConfiguration="androidTestCompile" />
<dependency mavenUrl="com.android.support.test.espresso:espresso-core:+" gradleConfiguration="androidTestCompile" />
</#if>
解釋:
- instantiate語句里做的就是在我們的工程下面創(chuàng)建test文件夾和相應的文件。
- 后面則是兩個if語句,根據(jù)improvedTestDeps值來決定是否要添加依賴。
把上面這些都去掉的話那么就不會創(chuàng)建test文件夾,也不會添加單元測試的依賴了。
2.1.1 修改build.gradle.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
- 可以把下面的代碼直接刪掉或注釋
<#if !improvedTestDeps>
${getConfigurationName("androidTestCompile")}('com.android.support.test.espresso:espresso-core:+', {
exclude group: 'com.android.support', module: 'support-annotations'
})
</#if>
解釋:
- 同樣也是根據(jù)improvedTestDeps來決定是否要添加依賴。
注意,這里的是!improvedTestDeps,跟上面recipe.xml.ftl文件里的improvedTestDeps差了一個感嘆號。所以,improvedTestDeps無論是ture或false的話,都會生成依賴,只是生成的東西不一樣而已。同樣,這里也可以去掉。
- 修改下面的代碼:
hasTests=true
改為
hasTests=false
解釋:
hasTests為false的話可以把testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"這句去掉。
把這些都弄完之后就OK了,是不是很簡單。
2.2 變量控制法
2.2.1 修改globals.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\common\globals.xml.ftl
將以下代碼
<global id="unitTestsSupported" type="boolean" value="${(compareVersions(gradlePluginVersion, '1.1.0') >= 0)?string}" />
<global id="improvedTestDeps" type="boolean" value="${(compareVersionsIgnoringQualifiers(gradlePluginVersion, '3.0.0') >= 0)?string}" />
改為
<global id="unitTestsSupported" type="boolean" value="false" />
<global id="improvedTestDeps" type="boolean" value="false" />
解釋:
- 可以回顧上面暴力法中的代碼,improvedTestDeps值是用來決定是否要添加依賴的。因此我們把這個值直接設為false的話,那么就不會添加依賴了。當然,也可以根據(jù)實際需要,改成更靈活的設置。
2.2.2 修改build.gradle.ftl文件
該文件路徑為:"Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
將以下代碼
<#if !improvedTestDeps>
${getConfigurationName("androidTestCompile")}('com.android.support.test.espresso:espresso-core:+', {
exclude group: 'com.android.support', module: 'support-annotations'
})
</#if>
改為(主要是去掉感嘆號)
<#if improvedTestDeps>
${getConfigurationName("androidTestCompile")}('com.android.support.test.espresso:espresso-core:+', {
exclude group: 'com.android.support', module: 'support-annotations'
})
</#if>
解釋:
- 因為上面improvedTestDeps的值已經被我們改成了false,因此這里就把感嘆號去掉。
- 修改下面的代碼:
hasTests=true
改為
hasTests=false
解釋:
hasTests為false的話可以把testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"這句去掉。
2.2.3 修改recipe.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\recipe.xml.ftl
<instantiate from="root/test/app_package/ExampleInstrumentedTest.${ktOrJavaExt}.ftl"
to="${escapeXmlAttribute(testOut)}/ExampleInstrumentedTest.${ktOrJavaExt}" />
改為
<#if improvedTestDeps>
<instantiate from="root/test/app_package/ExampleInstrumentedTest.${ktOrJavaExt}.ftl"
to="${escapeXmlAttribute(testOut)}/ExampleInstrumentedTest.${ktOrJavaExt}" />
</#if>
解釋:
- 默認會創(chuàng)建test文件夾,這里也是通過improvedTestDeps來決定是否要添加。當然,也可以自己定義另外一個變量來進行控制。
變量控制法也好了~
2.配置私有maven庫
如果我們的工程想改成默認使用私有maven庫,如下圖:

2.1 修改build.gradle.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root\build.gradle.ftl
google()
jcenter()
改為
maven {
url "倉庫地址"
}
注意有兩處地方需要修改,別漏了。好了,完。
3.移除默認V7庫以及相關資源
如果我們新建的工程不想使用默認的V7庫等。同樣也可以去移除掉。
主要有以下4個地方需要修改:
1.移除V7庫依賴
2.移除colors
3.移除styles
4.修改application主題
3.1 移除V7庫依賴,修改recipe.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\recipe.xml.ftl
<dependency mavenUrl="com.android.support:appcompat-v7:${buildApi}.+" />
直接刪掉相應的依賴。
3.2 移除colors,修改colors.xml文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\res\values\colors.xml
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
上面代碼直接刪掉。
3.3 移除styles,修改styles.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\res\values\styles.xml.ftl
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat<#if
minApiLevel gte 11>.Light</#if><#if
minApiLevel gte 14>.DarkActionBar</#if>">
<!-- Customize your theme here. -->
<#if (buildApi gte 22) >
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</#if>
</style>
上面代碼直接刪掉。
3.4 修改application主題,修改shared_macros.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\shared_macros.ftl
android:theme="@style/AppTheme"
上面代碼直接刪掉。
4.修改默認的.gitignore模板
該文件路徑為Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root\project_ignore
其文件內容如下:
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
通常,.idea目錄下的都是可以全部忽略的,那么我們可以改成以下:
*.iml
.gradle
/local.properties
/.idea
.DS_Store
/build
/captures
.externalNativeBuild
那么.idea目錄將會被忽略掉,這樣就不用每次都去修改.gitignore文件了,畢竟很容易就會忘掉這玩意。如果還需忽略其他的一些文件,同樣可以在這個模板上面修改即可。
5.自定義模板
上面都是一些修改Android Studio默認自帶的模板。如果你也想自定義一套模板,那么,可以看下這個:自定義Android Studio代碼模板