Android Studio項目目錄結構介紹
- Project 結構類型
app/build/ app模塊build編譯輸出的目錄
app/build.gradle app模塊的gradle編譯文件
app/app.iml app模塊的配置文件
app/proguard-rules.pro app模塊proguard文件
build.gradle 項目的gradle編譯文件
settings.gradle 定義項目包含哪些模塊
gradlew 編譯腳本,可以在命令行執行打包
local.properties 配置SDK/NDK
MyApplication.iml 項目的配置文件
External Libraries 項目依賴的Lib, 編譯時自動下載的
- Android結構類型
app/manifests AndroidManifest.xml配置文件目錄
app/java 源碼目錄
app/res 資源文件目錄
Gradle Scripts gradle編譯相關的腳本
為什么要用Gradle?
Gradle是比較先進的構建系統,也是一個很好的構建工具,允許通過插件自定義構建邏輯
- 使用領域專用語言(Domain Specific Language)來描述和處理構建邏輯。(以下簡稱DSL)
- 基于Groovy。DSL可以混合各種聲明元素,用代碼操控這些DSL元素達到邏輯自定義。
- 支持已有的Maven或者Ivy倉庫基礎建設
- 非常靈活,允許使用best practices,并不強制讓你遵照它的原則來。
- 其它插件時可以暴露自己的DSL和API來讓Gradle構建文件使用。
- 允許IDE集成,是很好的API工具
現在,搞APP開發居多,編譯/打包等問題立即就成痛點了。比如:
- 一個APP有多個版本,Release版、Debug版、Test版。甚至針對不同APP Store都有不同的版本。在以前ROM的環境下,雖然可以配置Android.mk,但是需要依賴整個Android源碼,而且還不能完全做到滿足條件,很多事情需要手動搞。一個app如果涉及到多個開發者,手動操作必然會帶來混亂。
- library工程我們需要編譯成jar包,然后發布給其他開發者使用。以前是用eclipse的export,做一堆選擇。要是能自動編譯成jar包就爽了。
上述問題對絕大部分APP開發者而言都不陌生,而Gradle作為一種很方便的的構建工具,可以非常輕松得解決構建過程中的各種問題。