Android Studio 專案主要可分為三大類 :
-
manifests:Android APP「整體資訊」的主要設定檔
-
java: Java 原始程式都放在這
-
res:專案所需資源檔 ( 非程式碼 )
-
Gradle Scripts
manifests
manifests 目錄內有一個預設名稱為 AndroidManifest.xml 的檔案,紀錄 APP 的重要資訊。
其中package 為應用程式的完整套件名稱(此名稱也會成為該應用程式的 Application ID),因此再上架至google play時,不可與以上家之APP重複。因此一般預設會將 Company Domain反向來撰寫,以避免與其他APP衝突。
一個APP僅會有一個application標籤,其中android的四大元件之使用均需於此設定方能使用,否則調用時會出現錯誤導致APP崩潰。
四大元件包含Activity(活動)、Service(服務)、BroadcastReceiver(廣播接收者)與Content Provider(內容提供者)
Java
子目錄名稱,即是建立專案時由 Company Domain 反向後,在與 Application name 組成的 Package name,若採預設時將有一個預設的 Activity 元件 (MainActivity.java)。
其詳細開發時的函數呼叫與相關處理方式可以參考android activity lifecycle。
res
res為 resource 的縮寫,專案所需的 UI 相關檔案,即非程式的資源,如 layout、圖片與文字。
drawable 目錄 : 圖像檔案資源,例如 png、jpg……圖形檔案
layout 目錄 : 使用者介面配置之說明檔
values 目錄 : 使用者介面需用之常數資料。
一般而言values內預設string.xml,其餘可以造需求自行新增亦或是自行定義。內容資料均採用xml方式進行定義。
Gradle Scripts
Gradle Scripts 為「專案自動化建構工具」。其應用不僅在 Java 領域,亦可和其他語言之開發環境搭配使用。
該目錄儲存與 Gradle 建置系統相關的設定檔,Gradle 是 Android Studio 採用的全新 APP 建置系統。每一個 APP 可以有多個模組(Module),例如一個音樂播放 APP,可以包含行動電話、平板電腦、穿戴式三個模組,每一個模組都可以被建置成一個獨立的 APP。這些重要的資訊儲存在 build.gradle 檔案內。
apply plugin: 'com.android.application'
android {
// 應用程式模組編譯的版本(Android API Level)
compileSdkVersion 24
// Android 建置工具的版本編號
buildToolsVersion "24.0.2"
defaultConfig {
// applicationId 應用程式模組的主套件名稱;就是 app/manifests/AndroidManifest.xml 檔案定義的 package 名稱
applicationId "com.developer.lungyu.myapplication"
// 代表要執行此應用程式最低需要的 API 層級(Level)。API 15 相當於 Android 4.0.3
minSdkVersion 19
// 主要版本
targetSdkVersion 24
// 自定的應用程式模組版本編號(控管的版本號碼,必須為整數值),上架之APP欲更新APK時,此編號值須大於上一版本之編號。
versionCode 1
// 自定的應用程式模組版本名稱(對外發佈的版本名稱,值為字串)
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
// 設定此應用程式會使用到的函式庫,編譯時Android studio 會載入相關函數資源,有時會使用到網路資源(需即時下載)
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
留言列表