Splitties 开源项目教程
1. 项目的目录结构及介绍
Splitties 是一个用于 Android 开发的库集合,旨在简化常见的开发任务。项目的目录结构如下:
Splitties/
├── build.gradle
├── settings.gradle
├── gradle.properties
├── README.md
├── CONTRIBUTING.md
├── LICENSE
├── library-modules/
│ ├── appctx/
│ ├── bundle/
│ ├── checkedproviders/
│ ├── collections/
│ ├── dimensions/
│ ├── fragmentargs/
│ ├── initprovider/
│ ├── lifecycle-coroutines/
│ ├── mainhandler/
│ ├── material-colors/
│ ├── preferences/
│ ├── resources/
│ ├── snackbar/
│ ├── stetho-init/
│ ├── systemservices/
│ ├── toast/
│ ├── views/
│ ├── views-dsl/
│ ├── views-dsl-ide-preview/
│ ├── views-dsl-material/
│ ├── views-dsl-popup/
│ └── views-dsl-resources/
└── sample-modules/
├── app/
├── app-material3/
├── app-theme-engine/
├── app-theme-engine-material3/
├── app-with-multi-modules/
└── app-with-multi-modules-material3/
目录结构介绍
build.gradle
和settings.gradle
:项目的构建配置文件。gradle.properties
:Gradle 构建系统的属性配置文件。README.md
和CONTRIBUTING.md
:项目说明和贡献指南。LICENSE
:项目许可证。library-modules/
:包含多个库模块,每个模块解决特定的开发需求。sample-modules/
:包含示例应用模块,展示如何使用 Splitties 库。
2. 项目的启动文件介绍
Splitties 项目没有传统意义上的“启动文件”,因为它是一个库集合,而不是一个单一的应用程序。每个库模块都有自己的入口点和使用方式。例如,appctx
模块提供了 appCtx
扩展属性,用于获取应用程序上下文。
3. 项目的配置文件介绍
build.gradle
项目的根目录下的 build.gradle
文件包含全局的构建配置,例如 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()
}
}
settings.gradle
settings.gradle
文件定义了项目中包含的模块。
include ':library-modules:appctx'
include ':library-modules:bundle'
include ':library-modules:checkedproviders'
include ':library-modules:collections'
include ':library-modules:dimensions'
include ':library-modules:fragmentargs'
include ':library-modules:initprovider'
include ':library-modules:lifecycle-coroutines'
include ':library-modules:mainhandler'
include ':library-modules:material-colors'
include ':library-modules:preferences'
include ':library-modules:resources'
include ':library-modules:snackbar'
include ':library-modules:stetho-init'
include ':library-modules:systemservices'
include ':library-modules:toast'
include ':library-modules:views'
include ':library-modules:views-dsl'
include ':library-modules:views-dsl-ide-preview'
include ':library-modules:views-dsl-material'
include ':library-modules:views-dsl-popup'
include ':library-modules:views-dsl-resources'
include ':sample-modules:app'
include ':sample-modules:app-material3'
include ':sample-modules:app-theme-engine'
include ':sample-modules:app-theme-engine-material3'
include ':sample-modules:app