Awesome Android 开源项目教程
1. 项目的目录结构及介绍
Awesome Android 项目的目录结构如下:
awesome-android/
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── android
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── awesomeandroid
│ │ │ └── MainActivity.java
│ │ └── res
│ │ ├── drawable
│ │ ├── layout
│ │ │ └── activity_main.xml
│ │ ├── mipmap
│ │ └── values
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── build.gradle
└── settings.gradle
目录结构介绍
README.md
: 项目介绍和使用说明。CONTRIBUTING.md
: 贡献指南。LICENSE
: 项目许可证。android/
: Android 项目的主要目录。app/
: 应用程序模块。build.gradle
: 应用程序模块的构建脚本。src/main/
: 主要源代码和资源目录。java/
: Java 源代码目录。com/example/awesomeandroid/MainActivity.java
: 主活动文件。
res/
: 资源目录。drawable/
: 可绘制资源。layout/
: 布局文件。activity_main.xml
: 主活动布局文件。
mipmap/
: 应用图标资源。values/
: 字符串和样式资源。strings.xml
: 字符串资源文件。styles.xml
: 样式资源文件。
build.gradle
: 项目级构建脚本。settings.gradle
: 项目设置文件。
2. 项目的启动文件介绍
项目的启动文件是 MainActivity.java
,位于 android/app/src/main/java/com/example/awesomeandroid/MainActivity.java
。
MainActivity.java 介绍
package com.example.awesomeandroid;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MainActivity
继承自AppCompatActivity
,是 Android 应用的主活动。onCreate
方法是活动创建时调用的方法,用于设置布局文件activity_main.xml
。
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 settings.gradle
。
build.gradle 介绍
项目级 build.gradle
// android/build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
buildscript
块配置构建脚本的依赖项。allprojects
块配置所有模块的仓库。
应用程序模块级 build.gradle
// android/app/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.awesomeandroid"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'