Android Studio專案目錄結構簡介

風靈使發表於2018-12-11

既然已經搭建好環境了,那就對Android Studio中專案目錄結構做個簡單的瞭解了,這裡以最簡單的Hello工程為例子,新建好工程後看如下三個工程檢視:

1、Android工程

在這裡插入圖片描述

manifests:

         AndroidManifest.xml:APP的配置資訊

java:主要為原始碼和測試程式碼

res:主要是資源目錄,儲存所有的專案資源

        drawable:儲存一些xml檔案,-*dpi表示儲存解析度的圖片,用於適配不同的螢幕。

                           -mdpi:320x480

                           -hdpi:480x800、480x854

                           -xhdpi:至少960x720

                           -xxhdpi:1280x720

        layout:儲存佈局檔案

        mipmap:儲存原聲圖片資源

        values:儲存app引用的一些值

                     - colors.xml:  儲存了一些color的樣式

                     - dimens.xml:儲存了一些公用的dp值                       

                     - strings.xml: 儲存了引用的string值

                     - styles.xml:   儲存了app需要用到的一些樣式

         Gradle Scripts:build.gradle為專案的gradle配置檔案

2、Project工程

在這裡插入圖片描述

build:系統生成的檔案目錄,最後生成的apk檔案就在這個目錄,這裡是app-debug.apk

libs:為專案需要新增的*.jar包或*.so包等外接庫

src:專案的原始碼,其中android test為測試包,main裡為主要的專案目錄和程式碼,test為單元測試程式碼

3、Packages工程

在這裡插入圖片描述

4、AndroidManifest.xml

在這裡插入圖片描述

AndroidManifest描述了package中暴露的元件像activityserveice等,他們各自的實現類,各種能被處理的資料和啟動位置。此外還能宣告程式中的contentproviersintentreceivers,還能指定permissionsinstrumentation等等。

    xmlns:android:定義android的名稱空間。

    package:指定本應用內java主程式的包名,這裡就是com.example.jared.hello了。

    application:宣告瞭每一個應用程式的元件及其屬性。

    android:allowBackup:將程式加入到系統的備份和恢復架構中。

    android:icon:顯而易見表示APP的圖示了。

    android:label:許可列表。

    android:supportsRtl:啟用各種RTLAPI來用RTL佈局顯示應用,這個是android4.2的新特性。     android:theme:android的主題。

    activity:android:name表示當前的activity的名字,因為工程為MainActivity,所以這個名字就為這個,之後有新的activity的話,也需要新增才可以使用。

    intent-filter:包含了action,data和category三種。

                          action:只有android:name屬性,常見的是android.intent.action.MAIN,表示此activity是作為應用程式的入口。  

                          data:指定了希望接受的intent請求的資料URI和資料型別。

                          category:android:name屬性,常見的是android.intent.category.LAUNCHER,決定應用程式是否顯示在程式列表裡。

關於本應用的manifest基本上沒啥問題了,以後遇到了別的google查閱就好。

5、layoutactivity_main.xml

在這裡插入圖片描述

RelativeLayout:相對佈局。

xmlns:android定義:android名稱空間。

xmlns:tools:tools名稱空間,用來預覽一些佈局屬性的新增喝刪除後的效果。

android:layout_width:指定了控制元件的寬度,可選擇match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意思相同,官方更加推薦使用match_parent。match_parent表示讓當前控制元件的大小和父佈局的大小一樣,也就是由父佈局來決定當前控制元件的大小。wrap_content表示讓當前控制元件的大小能夠剛好包含住裡面的內容,也就是由控制元件內容決定當前控制元件的大小。

android:layout_height:同上。

android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom:站在父view的角度描述問題,它規定它裡面的內容必須與這個父view邊界的距離。此外還有margin,它是站在自己的角度描述問題,規定自己喝其他的view之間的距離,如果同一級只有一個view,那麼它的效果基本上就和padding一樣了。

TextViewandroid的控制元件。

android:text:textview顯示的內容,這裡就是hello world了。

至此,androd的layout簡單介紹了下,至於之後遇到的種種,google等著你。

6、MainActivity.java

package com.example.jared.hello;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

通過上面的介紹,應該不難理解這段程式碼了。首先MainActivity繼承了AppCompatActivity,最後還是繼承Activity

public class AppCompatActivity extends FragmentActivity
public class FragmentActivity extends BaseFragmentActivityHoneycomb
abstract class BaseFragmentActivityHoneycomb extends BaseFragmentActivityDonut
abstract class BaseFragmentActivityDonut extends Activity {

然後再看下onCreate方法,這個是android的一個設計模式ioc,android的架構基本上就是用了這個模式。使用者看不到onCreate之前幹了什麼,只要完成這個函式,並且在裡面呼叫需要呼叫的東西即可。

super.onCreate方法是呼叫父類的onCreate方法,然後setContentView方法就是為當前的activity引入了一個activity_main的佈局,這個佈局上述已經有了介紹。

好了,關於Android Studio的專案工程簡單的介紹就在這裡了。

相關文章