-
一个帮你快速实现MVVM+组件化的壳项目
- MVVM
- 组件化
-
架构为基础组件、功能组件和业务组件
-
项目整体依赖关系
-
App
(空壳,打包生成apk)业务组件
-
module-main
(主业务实现模块) -
ModuleA
-
ModuleB
-
Module...
功能组件
-
feature-message
(message功能) -
feature-push
(推送功能) -
feature-platform-login
(三方登录功能)基础组件
base-common
(通用基础library)base-res
(放置项目通用资源的library)base-mvvmhabit
(帮助更好的实现MVVM的library)base-net
(网络基础library)
-
-
-
-
项目中以
Module-
开头的module一般都是可以独立运行的,通过修改gradle.properties
文件中的isBuildModule
属性即可设置是否独立运行 -
module
的build.gradle
文件统一应用apply from:"../module.build.gradle"
以达到配置统一 -
新建
Library
后需在Library
的build.gradle
中指定混淆文件位置defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName //指定子模块的混淆文件 consumerProguardFiles 'proguard-rules.pro' } buildTypes { release { minifyEnabled true //开启混淆 zipAlignEnabled true //压缩优化 shrinkResources true //移出无用资源 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //默认的混淆文件以及我们指定的混淆文件 } }
-
新引入三方依赖库时记得在对应的
Library
下的proguard-rules.pro
中添加混淆信息 -
组件化时每个组件单独运行时包名是不一样的,而
Google
登录的所需要配置的google-services.json
文件是与包名一一对应的,所以为了保证组件单独运行时可以正常使用Google
登录,每个组件下都有一个google-services.json
文件,对应的是在firebase
控制台中有多个项目 -
每个
Library
中的IModuleInit
实现类记得添加混淆信息保持不被混淆,并在基础Library
的ModuleLifecycleReflexs
类中添加路径信息
-
Notifications
You must be signed in to change notification settings - Fork 0
UserName-Haha/FastProject
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
一个帮你快速实现MVVM+组件化的壳项目
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published