1.第一行代碼Android 第2版 郭霖 著
學習分析第一個分析Android項目
在開始創建一個新的項目的時候,AS會默認使用Android模式的項目模式,但這並不是項目真實的目錄結構,而是被AS轉換過的。如下圖所示:
這是我們將項目結構模式切換成Project(Android->Project),如下圖所示:
分析如下:
.gradle和.idea
這兩個目錄下放置的都是AS自動生成的一些文件,我們無須關心,也不要去手動編輯。
2.app
項目中的代碼、資源等內容幾乎都是放置在這個目錄下的,我們後面的開發工作也基本都是在這個目錄下進行。它的目錄結構如下:
分析如下:
build
這個目錄和外層的build目錄類似,主要也是包含了一些在編譯時自動生成的文件,不過它裏面的內容會更加複雜,可不過多關心。
libs
如果你的項目中使用到了第三方jar包,就需要把這些jar包都放在libs目錄下,放在這個目錄下的jar包都會被自動添加到構建路徑裏去。
androidTest
此處是用來編寫Android Test測試用例的,可以對項目進行一些自動化測試。
java
該目錄是放置我們所有java代碼的地方,展開該目錄,你將看到我們剛纔創建的MainActivity文件就在裏面。
res
這個目錄下的內容就多了,存放着項目中使用的所有圖片、佈局、字符串等資源。這個目錄還有很多子目錄,圖片放在drawable目錄下,佈局放在layout目錄下,字符串放在values目錄下,所以不用擔心整個res過亂。
AndroidMainfest.xml
這個整個Android項目的配置文件,在程序中定義的所有四大組件都需要在這個文件裏註冊,另外還可以在這個文件中給應用程序添加權限聲明。
test
這是用來編寫Unit Test測試用例的,是對項目進行自動化測試的另一種方式。
.gitgnore
這個文件用於將app模塊內的指定的目錄或文件排除在版本控制以外,作用與外層.gitgnore文件類似。
app.iml
Intellij IDEA項目自動生成的文件。
build.gradle
這是app模塊的gradle構建腳本,這個文件中會指定很多項目構建相關的配置。
proguard-rules.pro
這個文件用於指定項目代碼的混淆規則,當代碼開發完成後打成安裝包文件,如果不希望代碼被別人破解,通常就會將代碼進行混淆,從而讓破解者難以閱讀。
3.build
這個目錄也不需過多關心,它主要包含了一些在編譯時自動生成的文件。
4.gradle
這個目錄下包含了gradle wrapple的配置文件,使用gradle wrapper的方式不需要提前將gradle下載好,而是會自動根據本地的緩存情況決定是否聯網下載gradle。
AS默認沒有啓動gradle wrapper的方式,如果需要打開,可以點擊AS導航欄->File->Settings->Build,Execution,Deployment->Gradle,進行配置更改。
5..gitignore
這個文件是用來將指定的目錄或文件排除在版本控制以外。
6.build.gradle
這是項目全局的gradle構建腳本,通常這個文件中的內容是不需要修改的。
7.gradle.properties
這個文件是全局的gradle配置文件,在這裏配置的屬性將會影響到項目中所有的gradle編譯腳本。
8.gradlew和gradlew.bat
這兩個文件是用來在命令行界面執行gradle命令的,其中gradlew是在Linux或Mac系統中使用的,gradlew.bat是在Windows系統中使用的。
9.Hello.iml
iml文件是所有Intellij IDEA項目都會自動生成的一個文件(AS 是基於Intellij IDEA開發的),用於標識這是一個Intellij IDEA項目,我們不需要修改這個文件中的任何內容。
10.Iocal.properties
這個文件用於指定本機中的Android SDK路徑,通常內容都是自動生成的,我們不需要修改。除非本機的SDK位置發生了變化,那麼就將這個文件中的路徑改成新的位置即可,
11.setting.gradle
這個文件用於指定項目中所有引入的模塊。由於Hello項目中就只有一個app模塊,因此該文件也就引入了app這一個模塊。通常情況下模塊的引入都是自動完成的,需要我們手動去修改這個文件的場景可能比較少。
Android程序的設計講究邏輯和視圖分離,因此是不推薦在活動直接編寫界面的,更加通用的一種做法是,在佈局文件中編寫界面,然後在活動中引入進來。