這篇主要介紹使用Gradle的Android專案的目錄結構,以及在Gradle中的配置
Gradle採用約定優於配置的原則,最簡單方式是使用一個預設的目錄結構。當然目錄結構是可以自己修改的。
預設情況下,android gradle專案的程式碼都在src目錄下,src下會有兩個目錄main和androidTest,其中main目錄下是專案程式碼,androidTest目錄下是測試程式碼。
src/main/
src/androidTest/
在main和androidTest目錄下面,針對不同型別的code,又不會不同的目錄。
對於Java和Android的Gradle外掛,Java程式碼和Java資源分別對應了java目錄和resources目錄。Android外掛還需要一些其他的目錄和檔案,比如
AndroidManifest.xml
res/
assets/
aidl/
rs/
jni/
下面我們來看一下如何更改這些預設的配置。
Android工程,預設情況下,java檔案和resource檔案分別在src/main/java和src/main/res目錄下,在build.gradle檔案,andorid{}裡面新增下面的程式碼,便可以將java檔案和resource檔案放到src/java和src/resources目錄下。(注意,如果你在gradle檔案中修改了,只需要重新sync一下,gradle會自動建立新的目錄,並將對應的檔案移動到新的目錄下)
1 2 3 4 5 6 7 8 9 10 |
sourceSets { main { java { srcDir 'src/java' } resources { srcDir 'src/resources' } } } |
更簡便的寫法是
1 2 3 4 |
sourceSets { main.java.srcDirs = ['src/java'] main.resources.srcDirs = ['src/resources'] } |
陣列裡其實是可以指定多個目錄,這樣就可以將程式碼和資源放置到多個目錄下。
在看一個Android專案的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
android { sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } androidTest.setRoot('tests') } } |
這裡的main code其實使用的就是Android Gradle的預設值,而androidTest不再使用預設的androidTest目錄,而是使用tests目錄。
這篇先講到這裡,下一篇我會簡單的介紹一個gradle的task