有兩種流行的結構:老的Ant & Eclipse ADT 工程結構,和新的Gradle & Android Studio 工程結構, 你應該選擇新的工程結構,如果你的工程還在使用老的結構,考慮放棄吧,將工程移植到新的結構。
老的結構:
~~~
old-structure
├─ assets
├─ libs
├─ res
├─ src
│ └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─ project.properties
└─ proguard-rules.pro
~~~
新的結構
~~~
new-structure
├─ library-foobar
├─ app
│ ├─ libs
│ ├─ src
│ │ ├─ androidTest
│ │ │ └─ java
│ │ │ └─ com/futurice/project
│ │ └─ main
│ │ ├─ java
│ │ │ └─ com/futurice/project
│ │ ├─ res
│ │ └─ AndroidManifest.xml
│ ├─ build.gradle
│ └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle
~~~
主要的區別在于,新的結構明確的分開了'source sets' (`main`,`androidTest`),Gradle的一個理念。 你可以做到,例如,添加源組‘paid’和‘free’在src中,這將成為您的應用程序的付費和免費的兩種模式的源代碼。
你的項目引用第三方項目庫時(例如,library-foobar),擁有一個頂級包名`app`從第三方庫項目區分你的應用程序是非常有用的。 然后`settings.gradle`不斷引用這些庫項目,其中`app/build.gradle`可以引用。