DroidMVP 开源项目教程
1. 项目的目录结构及介绍
DroidMVP 项目的目录结构如下:
DroidMVP/
├── app/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── andrzejchm/
│ │ │ │ └── droidmvp/
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── MainContract.java
│ │ │ │ ├── MainPresenter.java
│ │ │ │ └── MainView.java
│ │ │ └── res/
│ │ │ ├── layout/
│ │ │ │ └── activity_main.xml
│ │ │ └── values/
│ │ │ └── strings.xml
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── andrzejchm/
│ │ └── droidmvp/
│ │ └── ExampleUnitTest.java
│ └── proguard-rules.pro
├── build.gradle
├── gradle.properties
├── settings.gradle
└── README.md
目录结构介绍
app/
:应用程序的主要目录。build.gradle
:应用程序的构建脚本。src/
:源代码目录。main/
:主源代码目录。java/
:Java 源代码目录。com/andrzejchm/droidmvp/
:项目的主要包。MainActivity.java
:主活动文件。MainContract.java
:MVP 契约接口。MainPresenter.java
:主 presenter 文件。MainView.java
:主视图接口。
res/
:资源目录。layout/
:布局文件目录。activity_main.xml
:主活动布局文件。
values/
:值资源目录。strings.xml
:字符串资源文件。
test/
:测试代码目录。java/
:测试 Java 源代码目录。com/andrzejchm/droidmvp/
:测试包。ExampleUnitTest.java
:示例单元测试文件。
proguard-rules.pro
:ProGuard 规则文件。
build.gradle
:项目的构建脚本。gradle.properties
:Gradle 属性文件。settings.gradle
:Gradle 设置文件。README.md
:项目说明文件。
2. 项目的启动文件介绍
项目的启动文件是 MainActivity.java
,位于 app/src/main/java/com/andrzejchm/droidmvp/
目录下。
MainActivity.java
package com.andrzejchm.droidmvp;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements MainContract.View {
private MainPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
presenter = new MainPresenter(this);
}
@Override
public void showMessage(String message) {
// 显示消息的逻辑
}
}
文件介绍
MainActivity
继承自AppCompatActivity
,并实现了MainContract.View
接口。- 在
onCreate
方法中,设置了布局文件activity_main.xml
,并初始化了MainPresenter
。 showMessage
方法用于显示消息。
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 gradle.properties
。
build.gradle
build.gradle
文件位于项目根目录下,用于配置项目的构建脚本。
// 项目级别的 build.gradle
buildscript {