DaggerAndroidMVVM 项目教程
DaggerAndroidMVVMDemonstrates using Dagger 2.11+ in MVVM app with Android Architecture Components, Clean Architecture, RxJava项目地址:https://gitcode.com/gh_mirrors/da/DaggerAndroidMVVM
1. 项目的目录结构及介绍
DaggerAndroidMVVM/
├── app/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ ├── com.example.daggerandroidmvvm/
│ │ │ │ │ ├── di/
│ │ │ │ │ ├── ui/
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MainViewModel.kt
│ │ │ ├── res/
│ │ │ │ ├── layout/
│ │ │ │ ├── values/
│ │ │ ├── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── settings.gradle
目录结构介绍
app/: 主应用程序模块。
build.gradle: 应用程序模块的构建脚本。src/main/: 主源代码目录。
java/com.example.daggerandroidmvvm/: 主应用程序包。
di/: 依赖注入相关代码。ui/: 用户界面相关代码。MainActivity.kt: 主活动文件。MainViewModel.kt: 主视图模型文件。 res/: 资源文件目录。
layout/: 布局文件。values/: 值资源文件。 AndroidManifest.xml: 应用程序清单文件。 build.gradle: 项目级构建脚本。gradle.properties: Gradle 属性文件。settings.gradle: 项目设置文件。
2. 项目的启动文件介绍
MainActivity.kt
package com.example.daggerandroidmvvm
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.example.daggerandroidmvvm.ui.MainViewModel
import javax.inject.Inject
class MainActivity : AppCompatActivity() {
@Inject
lateinit var viewModelFactory: ViewModelProvider.Factory
private lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
(application as MyApplication).appComponent.inject(this)
viewModel = ViewModelProvider(this, viewModelFactory).get(MainViewModel::class.java)
}
}
介绍
MainActivity.kt: 这是应用程序的主活动文件。它继承自 AppCompatActivity
并实现了 onCreate
方法。依赖注入: 通过 (application as MyApplication).appComponent.inject(this)
进行依赖注入。ViewModel: 通过 ViewModelProvider
获取 MainViewModel
实例。
3. 项目的配置文件介绍
build.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
}
介绍
buildscript: 定义构建脚本的依赖和版本。repositories: 定义依赖仓库。dependencies: 定义构建脚本的依赖。allprojects: 定义所有模块的仓库。task clean: 定义清理任务。
build.gradle (模块级)
// 模块级 build.gradle 文件
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
}
android {
compileSdk 30
defaultConfig {
DaggerAndroidMVVMDemonstrates using Dagger 2.11+ in MVVM app with Android Architecture Components, Clean Architecture, RxJava项目地址:https://gitcode.com/gh_mirrors/da/DaggerAndroidMVVM