Android開發(fā)基礎06-Android項目結構
詳細介紹Android項目結構
Android開發(fā)過程中,高效、清晰的項目結構是成功的關鍵。理解并合理組織項目結構,有助于提高代碼的可維護性和團隊協(xié)作的效率。
目錄概覽
一個典型的Android項目目錄結構如下:
MyApplication/
├── app/
│ ├── build/
│ ├── libs/
│ ├── src/
│ │ ├── androidTest/
│ │ │ └── java/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ ├── kotlin/
│ │ │ ├── res/
│ │ │ ├── AndroidManifest.xml
│ │ └── test/
│ │ └── java/
│ ├── build.gradle
├── build/
├── gradle/
├── .gradle/
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── local.properties
1. 頂級目錄
頂級目錄包含整個項目的全局配置和設置。
1.1 build.gradle
這是頂級Gradle構建腳本,用于配置全局項目設置和依賴項。一個典型的頂級 build.gradle 文件可能如下所示:
buildscript {
ext.kotlin_version = '1.5.21'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1.2 settings.gradle
用于包括多模塊項目的設置文件。通常包含項目名稱和模塊信息:
include ':app'
1.3 gradle.properties
用于設置Gradle構建系統(tǒng)的一些屬性,例如內存設置、緩存選項等:
org.gradle.jvmargs=-Xmx1536m
1.4 gradlew 和 gradlew.bat
它們是Gradle Wrapper腳本,允許在沒有預先安裝Gradle的環(huán)境中運行Gradle任務。gradlew 是適用于Unix/Linux系統(tǒng)的腳本,而 gradlew.bat 適用于Windows系統(tǒng)。
1.5 local.properties
這個文件通常包含本地機器的特定配置,例如Android SDK的路徑:
sdk.dir=/Users/your_user/Library/Android/sdk
2. app 模塊
app 是應用程序的主模塊,也是最常見的模塊。它包含應用程序的源代碼、資源文件、構建腳本等。
2.1 build.gradle
該文件是模塊級的構建腳本,定義了模塊的構建配置和依賴關系:
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
testImplementation 'junit:junit:4.12'
}
3. src 目錄
src 目錄包含應用程序的所有源代碼、資源文件和配置文件。
3.1 main 目錄
這是應用程序的主目錄,也是最重要的目錄,包含以下子目錄:
3.1.1 java 目錄
包含所有的Java源代碼文件。通常,它的目錄結構與包名一致:
src/main/java/com/example/myapp/
├── MainActivity.java
└── AnotherActivity.java
3.1.2 kotlin 目錄
如果項目使用Kotlin編寫,這里將包含所有的Kotlin源代碼文件:
src/main/kotlin/com/example/myapp/
├── MainActivity.kt
└── AnotherActivity.kt
3.1.3 res 目錄
包含所有應用程序的資源文件,如布局文件、圖片、字符串資源等。res 目錄中通常包含以下子目錄:
drawable/:包含位圖文件,如PNG、JPEG等。layout/:存放應用程序的布局文件(XML)。mipmap/:存放啟動圖標(.ico),不同尺寸分別存在mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi等目錄。values/:存放資源值文件,如strings.xml,colors.xml,styles.xml等。
3.2 AndroidManifest.xml
這是一個非常重要的配置文件,定義了應用程序的基本信息、組件、權限等:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 其他組件,如Service、BroadcastReceiver等 -->
</application>
</manifest>
4. 測試目錄
包括 androidTest 和 test 目錄,分別用于編寫儀器化測試和單元測試代碼。
4.1 androidTest 目錄
包含儀器化測試的源代碼,通過 AndroidJUnitRunner 運行:
src/androidTest/java/com/example/myapp/
└── ExampleInstrumentedTest.java
4.2 test 目錄
包含單元測試的源代碼,使用 JUnit 或其他測試框架進行測試:
src/test/java/com/example/myapp/
└── ExampleUnitTest.java
5. build 目錄
此目錄用于存儲Gradle構建生成的文件,如編譯后的代碼、打包的APK等。通常不需要手動修改或查看。
6. libs 目錄
存放項目依賴的外部庫(.jar 或 .aar 文件)。可以通過在 build.gradle 文件中引用該目錄的庫:
dependencies {
implementation files('libs/some-library.jar')
}
總結
在實際項目中,根據(jù)具體需求可能會有所調整,但總體結構大致相同。掌握這些知識,有助于我們更好地組織和管理Android項目,提高開發(fā)效率和代碼質量。

浙公網(wǎng)安備 33010602011771號