一,Android Studio主要目錄及文件簡介
build:構建目錄,相當於Eclipse中默認Java工程的bin目錄。
libs:依賴包
src:
main
java Java代碼
res 資源文件
layout App佈局及界面元素配置
menu App菜單配置
values
dimens.xml 定義css的配置文件
strings.xml 定義字符串的配置文件
styles.xml 定義style的配置文件
AndroidManifest.xml App基本信息(名稱、版本、SDK、權限等等)
ic_launcher-web.png App圖標
build.gradle:Gradle構建腳本
二,詳細介紹
android的兩種構建方式
目前android主要有兩種構建方式,一種基於ant(傳統的),另一種是13年Google/IO上新推出基於Gralde的構建(Android Studio)。從sdk的samples的例程也可以看到api18後的例程的項目目錄結構也變了。
簡單的看一下兩種構建方式的目錄結構,我們以當前最新sdk19爲例
-
傳統的ant構建(Eclipse和Idea默認的Android結構)
$ANDROID_HOME/samples/android-19/legacy/ActionBarCompat
res/ src/ AndroidManifest.xml
這是最簡單的結構,可能還會有assets,libs等目錄,也就是我們在ide新建一個android項目的骨架結構啦Orz
-
基於Gradle的Android Studio構建目錄
$ANDROID_HOME/samples/android-19/ui/DoneBar
DoneBarSample/ src/ main/ java/ res/ AndroidManifest.xml tests/ src/ AndroidManifest.xml build.gradle # DoneBarSample子項目的gradle構建腳本 gradle/ # gradle臨時文件夾,不用管 build.gradle # 根項目(DoneBar)的gradle構建腳本 gradlew # gradle-wrapper在windows平臺運行腳本(有了這個在本地可以無需安裝Gralde) gradlew.bat # gradle-wrapper在linux,mac平臺下的運行腳本(效果同上) settings.gradle # gradle多項目的項目申明文件 README.txt
看起來,Gradle好像更搞得更復雜了,但是,gradle的優勢在於多項目的構建。實際上,1方案只是一個我們項目核心的源代碼而已,沒有任何的依賴。通常情況下,當我們寫android應用時,會依賴第三方庫,如果是個jar還好辦,但是不少情況下同時需要引入第三方的資源文件(比如說actionbar-compat,actionbar-sherlock等),這樣就相當於把第三方庫作爲一個項目給引入到我們這個獨立的項目中來了(並且這裏面的項目之間的依賴還得自己去調控,比如說咱們的項目依賴於support-v4, 那好,我們把v4引入然後在項目中申明依賴關係,接下來咱們的項目依賴support-v7-appcompat,導入這個庫,尼瑪,這個庫不僅有jar,還有資源文件,那好把這兩個引入並聲明好依賴關係,這時,你會發現項目依舊報錯,因爲v7那個jar依賴於v4那個jar...)
很討厭是不是?還好啦,不過配多了你就覺得蛋疼了。所以,就是爲什麼Gradle比較有優勢的地方了。對於以上的問題,我們只需要在項目中的build.gradle
聲明
dependencies { compile "com.android.support:support-v4:$supportLibVersion" compile "com.android.support:support-v13:$supportLibVersion" // compile project(':your project') // compile ('libs/*.jar') // all your jar in the libs dir }
這只是最簡單的應用,gradle還提供了很多構建的特性,比如直接把第三方庫作爲一個子項目依賴進來,具體參閱其文檔
2. Eclipse 的 Project 等同於Android Studio的
Module 。
Eclipse 的 workspace 等同於Android Studio的
Project 。