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

我們的目標(biāo)是把上面紅色的部分都去掉。
移除單元測(cè)試的話(huà)有兩種方法,一種是暴力法:直接把相關(guān)控制的代碼和配置刪掉或注釋掉;另外一種是變量控制法:通過(guò)讀取變量開(kāi)關(guān)來(lái)決定是否引入單元測(cè)試。推薦使用變量控制法。
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>
解釋?zhuān)?/p>
- instantiate語(yǔ)句里做的就是在我們的工程下面創(chuàng)建test文件夾和相應(yīng)的文件。
- 后面則是兩個(gè)if語(yǔ)句,根據(jù)improvedTestDeps值來(lái)決定是否要添加依賴(lài)。
把上面這些都去掉的話(huà)那么就不會(huì)創(chuàng)建test文件夾,也不會(huì)添加單元測(cè)試的依賴(lài)了。
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>
解釋?zhuān)?/p>
- 同樣也是根據(jù)improvedTestDeps來(lái)決定是否要添加依賴(lài)。
注意,這里的是!improvedTestDeps,跟上面recipe.xml.ftl文件里的improvedTestDeps差了一個(gè)感嘆號(hào)。所以,improvedTestDeps無(wú)論是ture或false的話(huà),都會(huì)生成依賴(lài),只是生成的東西不一樣而已。同樣,這里也可以去掉。
- 修改下面的代碼:
hasTests=true
改為
hasTests=false
解釋?zhuān)?/p>
hasTests為false的話(huà)可以把testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"這句去掉。
把這些都弄完之后就OK了,是不是很簡(jiǎn)單。
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" />
解釋?zhuān)?/p>
- 可以回顧上面暴力法中的代碼,improvedTestDeps值是用來(lái)決定是否要添加依賴(lài)的。因此我們把這個(gè)值直接設(shè)為false的話(huà),那么就不會(huì)添加依賴(lài)了。當(dāng)然,也可以根據(jù)實(shí)際需要,改成更靈活的設(shè)置。
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>
改為(主要是去掉感嘆號(hào))
<#if improvedTestDeps>
${getConfigurationName("androidTestCompile")}('com.android.support.test.espresso:espresso-core:+', {
exclude group: 'com.android.support', module: 'support-annotations'
})
</#if>
解釋?zhuān)?/p>
- 因?yàn)樯厦鎖mprovedTestDeps的值已經(jīng)被我們改成了false,因此這里就把感嘆號(hào)去掉。
- 修改下面的代碼:
hasTests=true
改為
hasTests=false
解釋?zhuān)?/p>
hasTests為false的話(huà)可以把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>
解釋?zhuān)?/p>
- 默認(rèn)會(huì)創(chuàng)建test文件夾,這里也是通過(guò)improvedTestDeps來(lái)決定是否要添加。當(dāng)然,也可以自己定義另外一個(gè)變量來(lái)進(jìn)行控制。
變量控制法也好了~
2.配置私有maven庫(kù)
如果我們的工程想改成默認(rèn)使用私有maven庫(kù),如下圖:

2.1 修改build.gradle.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root\build.gradle.ftl
google()
jcenter()
改為
maven {
url "倉(cāng)庫(kù)地址"
}
注意有兩處地方需要修改,別漏了。好了,完。
3.移除默認(rèn)V7庫(kù)以及相關(guān)資源
如果我們新建的工程不想使用默認(rèn)的V7庫(kù)等。同樣也可以去移除掉。
主要有以下4個(gè)地方需要修改:
1.移除V7庫(kù)依賴(lài)
2.移除colors
3.移除styles
4.修改application主題
3.1 移除V7庫(kù)依賴(lài),修改recipe.xml.ftl文件
該文件路徑為:Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidModule\recipe.xml.ftl
<dependency mavenUrl="com.android.support:appcompat-v7:${buildApi}.+" />
直接刪掉相應(yīng)的依賴(lài)。
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.修改默認(rèn)的.gitignore模板
該文件路徑為Android Studio安裝路徑\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root\project_ignore
其文件內(nèi)容如下:
*.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目錄將會(huì)被忽略掉,這樣就不用每次都去修改.gitignore文件了,畢竟很容易就會(huì)忘掉這玩意。如果還需忽略其他的一些文件,同樣可以在這個(gè)模板上面修改即可。
5.自定義模板
上面都是一些修改Android Studio默認(rèn)自帶的模板。如果你也想自定義一套模板,那么,可以看下這個(gè):自定義Android Studio代碼模板