Android Studio目錄結構及工程專案結構解析

風靈使發表於2018-12-11

Android Studio目錄結構

新建工程專案後AS的Project目錄結構如下所示:

.idea://AS生成的工程配置檔案,類似Eclipse的project.properties。
app://AS建立工程中的一個Module。
gradle://構建工具系統的jar和wrapper等,jar告訴了AS如何與系統安裝的gradle構建聯絡。
External Libraries://不是一個資料夾,只是依賴lib檔案,如SDK等。

新建工程專案後ASModule目錄結構如下所示:
這裡寫圖片描述

build://構建目錄,相當於Eclipse中預設Java工程的bin目錄,滑鼠放在上面右鍵Show in Exploer即可開啟資料夾,
        編譯生成的apk也在這個目錄的outs子目錄,不過在AS的工程裡是預設不顯示out目錄的,就算有編譯結果也
        不顯示,右鍵開啟通過資料夾直接可以看。
    libs://依賴包,包含jar包和jni等包。
    src://原始碼,相當於eclipse的工程。
        main://主資料夾 
            java://Java程式碼,包含工程和新建是預設產生的Test工程原始碼。 
            res://資原始檔,類似Eclipse。
                layout://App佈局及介面元素配置,雷同Eclipse。
                menu://App選單配置,雷同Eclipse。 
                values://雷同Eclipse。
                    dimens.xml://定義css的配置檔案。 
                    strings.xml://定義字串的配置檔案。 
                    styles.xml://定義style的配置檔案。
                    ......//arrays等其他檔案。
                ......//assets等目錄
            AndroidManifest.xml://App基本資訊(Android管理檔案) 
            ic_launcher-web.png://App圖示 
    build.gradle://Module的Gradle構建指令碼

1.res資原始檔夾介紹:

res目錄下所有的資原始檔都會在R.java檔案下生成對應的資源id,我們可以直接通過資源id訪問到對應的資源;這個R檔案可以理解為字典,res下每個資源都都會在這裡生成一個唯一的id

//程式碼提示快捷鍵:Ctrl+Alt+空格鍵選中activity_main可以開啟到指定的R.java檔案中。
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
//1.圖片資源:
drawable:存放各種點陣圖檔案,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable型別的XML檔案
mipmap-hdpi:高解析度,一般我們把圖片丟這裡
mipmap-mdpi:中等解析度,很少,除非相容的的手機很舊
mipmap-xhdpi:超高解析度,手機螢幕材質越來越好,以後估計會慢慢往這裡過渡
mipmap-xxhdpi:超超高解析度,這個在高階機上有所體現
//2.佈局資源:
layout:該目錄下存放的就是我們的佈局檔案,另外在一些特定的機型上,我們做螢幕適配,比如480*320這樣的手機,我們會另外建立一套佈局,就行:layout-480x320這樣的資料夾!
//3.選單資源:
menu:在以前有物理選單按鈕,即menu鍵的手機上,用的較多,現在用的並不多,選單項相關的資源xml可在這裡編寫,不知道谷歌會不會出新的東西來替代選單了~
//4.values目錄
demens.xml:定義尺寸資源
string.xml:定義字串資源
styles.xml:定義樣式資源
colors.xml:定義顏色資源
arrays.xml:定義陣列資源
attrs.xml:自定義控制元件時用的較多,自定義控制元件的屬性!
theme主題檔案,和styles很相似,但是會對整個應用中的Actvitiy或指定Activity起作用,一般是改變視窗外觀的!可在Java程式碼中通過setTheme使用,或者在Androidmanifest.xml中為<application...>新增theme的屬性! PS:你可能看到過這樣的values目錄:values-w820dp,values-v11等,前者w代表平板裝置,820dp代表螢幕寬度;而v11這樣代表在API(11),即android 3.0後才會用到的!
//5.在接著說下raw目錄: 
用於存放各種原生資源(音訊,視訊,一些XML檔案等),我們可以通過openRawResource(int id)來獲得資源的二進位制流!其實和Assets差不多,不過這裡面的資源會在R檔案那裡生成一個資源id而已
//6.最後還有個動畫的:
動畫有兩種:屬性動畫和補間動畫:
animator:存放屬性動畫的XML檔案
anim:存放補間動畫的XML檔案

2.深入瞭解三個檔案:

好了,接下來我們就要剖析工程裡三個比較重要的檔案: MainActivity.java,佈局檔案:activity_mainAndroid配置檔案:AndroidManifest.xml

MainActivity.java:

這裡寫圖片描述

佈局檔案:activity_main.xml

這裡寫圖片描述

配置檔案AndroidManifest.xml:

AndroidManifest檔案中含有如下過濾器的Activity元件為預設啟動類當程式啟動時系統自動呼叫它

<intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

這裡寫圖片描述

相關文章