Android 檔案結構

Manifest

Android 的設定檔案,宣告 Activity, Service, Receiver 及需要的權限等等

要先找到最重要的

<action android:name="android.intent.action.MAIN" />

這代表者 App 第一個 Activity 的進入點

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

從這邊我可以看到 MainActivity 是我們 app 的進入點,當我們拿到專案時要先找到程式的進入點,才能知道要從何開始。

我們再來看看 Application 的屬性

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    ...

</application>
  • "android:icon="@mipmap/ic_launcher" 代表著App使用的 icon 為 mipmap 資料夾下的 ic_launcher 這個圖片檔案,若要更換 App 的 icon 只需要取代檔案或是將指定的檔案名稱置換即可。

  • "android:label="@string/app_name" 代表著 App 的顯視名稱並定義在 string.xml 內,在 string.xml 中我們可以找到 app_name 對應的文字同樣的我們也可以修改他。

程式碼(java)

app > java 底下有三個資料夾,分別是:

  • package name
  • package name (androidTest)
  • package name (test)

我們的主程式就在 package name 沒有括號的資料夾底下
另外兩個資料夾分別代表著 (test) 單元測試專案、 (androidTest) 整合/UI 測試專案

資源檔 Resource (xml , 圖片 and 檔案)

在 manifest.xml 中我們可以看到 @xxxx 或是在 Java 的程式碼會看到 R.xx.xxx 這樣的東西,在 xml 中的 @xxx 或是 java 中的 R.xx.xx 代表著我們要存取資源檔,在 app > res 就是我們的資源檔資料夾,如下圖:

  • drawable 放置 drawable 的資源如下

    • shape
    • selector
    • layer list
    • animation
    • ...

      使用 @drawable/xxx 或 R.drawable.xxx 存取

  • layout
    放置畫面的 xml 檔案

    使用 @layout/xxx 或 R.layout.xxx 存取

  • mipmap

    存放使用到的圖片檔案會依據尺寸放置到下列資料夾

    • mdpi
    • hdpi
    • xhdpi
    • xxdpi
    • xxxdpi

      使用 @mipmap/xxx 或 R.mipmap.xxx 存取

  • value
    • color 定義色碼 ex: #FFFFFF
    • dimens 定義尺寸大小
    • string 定義文字可用於製作多國語系
    • style 定義樣式

Gradle

build.gradle(Module:app) 定義專案的相依關係

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"

    defaultConfig {
        applicationId "tw.andyang.firstproject"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:24.1.1'

    testCompile 'junit:junit:4.12'
}

來看幾個重要的部分

  • compileSdkVersion 24 使用編譯的 SDK 版本
  • minSdkVersion 19 支援的最低版本
  • versionCode 1 app 的版本號碼 上架時會檢查,只能比上一次高
  • versionName "1.0" 給使用者看的本版編號
  • dependencies 指定使用的 library 及版本號碼

results matching ""

    No results matching ""