diff --git a/README.md b/README.md
index 1ffa739..859f83f 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,71 @@
-# Android项目框架(组件化 + Kotlin + MVVM + Jetpack )
+#
AndroidBaseFrameMVVM
-资源文件相关{
- 资源相关文件属于项目相关的,因此需要放在Common组件内,不要放在Base组件里
- String、Color、Style、layout、drawable、mipmap 公用的 放在Common组件内,不公用的放在各自组件内,命名以各组件的规则命名(build文件设置了规则)
+ AndroidBaseFrameMVVM 是一个 Android 项目 MVVM 架构 开箱即用的框架
+
+ 该框架基于 Kotlin + Flow + Jetpack + MVVM + 组件化 + Repository模式 实现
+
+ 该框架存在的意义一方面是秉承着我和大部分程序猿/媛"懒"的天性,实现可复用、不用重复搭项目架构、开箱微小修改即可上手新开项目,另一方面也是想把自己会的东西写出来,供其他学习这方面知识的同学借鉴和参考
+
+ 下面展示该框架的架构图
+
+
+
+ 谷歌 Android 团队 Jetpack 视图模型
+
+
+
+## 框架技术栈
+
+* [组件化 架构]()
+* [MVVM 架构]()
+* [Repository 设计模式]()
+* [Kotlin](https://github.com/JetBrains/kotlin)
+* [Kotlin-Coroutines-Flow](https://github.com/JetBrains/kotlin)
+* [Lifecycle](https://developer.android.com/jetpack/androidx/releases/lifecycle)
+* [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel)
+* [LiveData](https://developer.android.com/topic/libraries/architecture/livedata)
+* [ViewBinding](https://developer.android.com/topic/libraries/view-binding)
+* [Android KTX](https://developer.android.com/kotlin/ktx)
+* [OkHttp](https://github.com/square/okhttp):网络请求
+* [Retrofit](https://github.com/square/retrofit):网络请求
+* [MMKV](https://github.com/Tencent/MMKV):腾讯基于 mmap 内存映射的 key-value 本地存储组件
+* [Glide](https://github.com/bumptech/glide):快速高效的Android图片加载库
+* [ARoute](https://github.com/alibaba/ARouter):阿里用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦
+* [BaseRecyclerViewAdapterHelper](https://github.com/CymChad/BaseRecyclerViewAdapterHelper):一个强大并且灵活的RecyclerViewAdapter
+* [StatusBarUtil](https://github.com/laobie/StatusBarUtil):状态栏
+* [EventBus](https://github.com/greenrobot/EventBus):适用于Android和Java的发布/订阅事件总线
+* [Bugly](https://bugly.qq.com/v2/index):腾讯异常上报及热更新(只集成了异常上报)
+* [PermissionX](https://github.com/guolindev/PermissionX):郭霖权限请求框架
+* [Chuck](https://github.com/jgilfelt/chuck):适用于Android OkHttp 客户端的应用内HTTP拦截器 显示请求信息
+* [LeakCanary](https://github.com/square/leakcanary):Android的内存泄漏检测库
+
+## 使用方式
+下载本项目删除无用的文件
+1.修改项目包名及各组件包结构,修改 AppName
+2.填写自己的 Bugly key 在 BaseApplication initialize() 方法中
+这样就可以使用了,当然可以删除不用的第三方,或者添加相应要使用的第三方,具体规范看下面的框架解读
+
+## 框架解读
+
+**组件化相关**
+本框架采用的是组件化架构,核心组件就是 Base 和 Common ,这两个组件都属于公共组件,负责为功能业务组件提供支持
+Base 组件主要集成了各种需要使用的第三方库和依赖或者公用的 aar/jar,并将依赖向依赖该组件的组件传递,需要集成的依赖,全部集成在 Base 组件内,Base 组件也提供了各种基类封装以及工具类、扩展函数、顶层函数,这些都应该是项目无关性的,可以达到 Base 模块直接拷贝复用的效果
+Common 组件主要是与项目有关的公用库,比如网络接口,全局常量, bean 类等,和项目有关的东西因该放在 Common 组件内,不要侵入 Base 组件,因为和项目有关的东西一旦放在了 Base 组件内,想要直接拷贝复用 Base 组件就不可能了,肯定会有一堆和项目相关的东西,项目的资源文件或者公用的资源文件最好统一放在 Common 组件内,方便公用,方便管理
+Base 和 Common 都属于公共组件,区别就在于 Base 比 Common 更底层,偏于与项目无关性,而 Common 是与项目有关性
+项目的依赖版本管理和项目参数等配置统一写在了 buildSrc 文件夹内,内部维护了几个 kt 文件进行对依赖库版本及项目参数统一存放管理
+功能组件应该依赖 Common 组件,壳 App 依赖所有的功能组件,要尽量避免各组件互相依赖,壳 App 内不要写东西,只当一个壳负责集成各个组件,每个组件都应该在 build.gradle 文件内设置资源命名规范,目的是为了避免资源冲突
+```
+android {
+ resourcePrefix "资源名前缀"
}
+```
+各个功能业务组件可以单独运行,通过 buildSrc/BuildConfig.kt 中的 isAppMode 参数控制,项目业务复杂起来后,就需要为每个组件单独编写供其正常单独运行的逻辑代码
-协程相关{
- Activity/Fragment 中 可以使用 lifecycleScope,与Activity/Fragment绑定了生命周期 无需手动取消
- ViewModel 中 可以使用 viewModelScope,它与ViewModel绑定了生命周期 无需手动取消
- lifecycleScope和viewModelScope 默认的调度器是Main
-}
+**MVVM相关**
+MVVM 采用 Jetpack 组件 + Repository 设计模式 实现,所使用的 Jetpack 并不是很多,像 DataBinding、Hilt(不支持多模块)、Room 等并没有使用,如果需要可以添加。采用架构模式目的就是为了解偶代码,对代码进行分层,各模块各司其职,所以既然使用了架构模式那就要遵守好规范
+Repository 仓库层负责数据的提供,ViewModel 无需关心数据的来源,Repository 内避免使用 LiveData,框架里使用了 Kotlin 协程的 Flow 进行处理请求或访问数据库,最后将数据发射到 ViewModel 调用者,Flow上游负责提供数据,下游也就是ViewModel获取到数据使用LiveData进行存储,View层订阅LiveData,实现数据驱动视图
+三者的依赖都是单向依赖,View -> ViewModel -> Repository
-第三方库{
- 屏幕适配 AndroidAutoSize : https://github.com/JessYanCoding/AndroidAutoSize
- 本地存储 MMKV : https://github.com/Tencent/MMKV
- 路由 ARouter : https://github.com/alibaba/ARouter
- 权限申请 PermissionX : https://github.com/guolindev/PermissionX
-}
-
-网络{
- 关于请求接口的代理接口,建议按接口的使用范围进行划分,比如公用接口单独写在一个接口里,Home页用的接口单独写在一个接口里...
- 然后在NetRequest类中统一委托延时初始化实例,调用者直接通过NetRequest进行选择性调用相应的代理接口
-}
\ No newline at end of file
+## 结语
+本人是一个刚大学毕业的 Android 开发者,技术相对来说比较薄弱,写这个框架主要是为了在以后自己使用、对自己技术做一个总结、对其他想学习的同学提供一个例子、也是想把一些东西开源出去,让这个社区更加的美好。文档中可能有些描述不太专业和生硬,我也很少写这些东西,所以表达起来很生疏。
+如果你绝对该项目对你有用,那就请给一个 star🌟吧🥰
\ No newline at end of file
diff --git a/img/img1.jpg b/img/img1.jpg
new file mode 100644
index 0000000..3dc4726
Binary files /dev/null and b/img/img1.jpg differ
diff --git a/img/img2.png b/img/img2.png
new file mode 100644
index 0000000..0188f59
Binary files /dev/null and b/img/img2.png differ