深入淺出Android Gradle構建系統(二:專案結構)
這篇主要介紹使用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會自動建立新的目錄,並將對應的檔案移動到新的目錄下)
- sourceSets {
- main {
- java {
- srcDir 'src/java'
- }
- resources {
- srcDir 'src/resources'
- }
- }
- }
更簡便的寫法是
- sourceSets {
- main.java.srcDirs = ['src/java']
- main.resources.srcDirs = ['src/resources']
- }
在看一個Android專案的例子:
- 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
相關文章
- 深入淺出Android Gradle構建系統(2):專案結構AndroidGradle
- 深入淺出Android Gradle構建系統(一:簡介)AndroidGradle
- 深入淺出Android Gradle構建系統(三:build task)AndroidGradleUI
- 深入淺出Android Gradle構建系統(五:build type)AndroidGradleUI
- 深入淺出Android Gradle構建系統(1):簡介AndroidGradle
- 深入淺出Android Gradle構建系統(3):build taskAndroidGradleUI
- 深入淺出Android Gradle構建系統(四:自定義構建過程之配置manifest)AndroidGradle
- Gradle之多專案構建Gradle
- 深入淺出 Runtime(二):資料結構資料結構
- 深入淺出Dotnet Core的專案結構變化
- 使用Gradle構建Java專案GradleJava
- Gradle構建多模組專案Gradle
- Android專案中如何用好構建神器Gradle?AndroidGradle
- Gradle構建SpringBoot專案GradleSpring Boot
- 在gradle中構建java專案GradleJava
- Gradle構建多模組專案(轉)Gradle
- 深入淺出的webpack4構建工具--webpack4+vue+route+vuex專案構建(十七)WebVue
- Gradle學習系列—-多專案構建Gradle
- 使用gradle構建springboot專案GradleSpring Boot
- Gradle快速構建Spring Boot專案GradleSpring Boot
- 使用Gradle構建Spring boot專案GradleSpring Boot
- Gradle學習系列----多專案構建Gradle
- Gradle for Android ( 構建變體 )GradleAndroid
- [Android、Java]加快gradle構建AndroidJavaGradle
- 二、Linux檔案系統結構Linux
- 【Java】【Gradle】Gradle構建SpringBoot專案,Gradle模組化管理JavaGradleSpring Boot
- SpringBoot淺析——專案構建Spring Boot
- 深入淺出的webpack構建工具--webpack4+vue+router專案架構(十四)WebVue架構
- Gradle入門及SpringBoot專案構建GradleSpring Boot
- 使用Gradle構建多模組SpringBoot專案GradleSpring Boot
- Gradle入門系列(5):建立多專案構建Gradle
- 如何構建「大型 Node.js 專案」的專案結構?Node.js
- 專案構建工具 GradleGradle
- 深入淺出的webpack構建工具---HappyPack優化構建(九)WebAPP優化
- 深入淺出的webpack構建工具---DllPlugin DllReferencePlugin提高構建速度(七)WebPlugin
- Redis雲端架構深入淺出Redis架構
- Gradle 與 AGP 構建 API: 配置您的構建檔案GradleAPI
- IDEA使用Gradle構建SpringBoot專案工程IdeaGradleSpring Boot