android开发框架demo,GitHub - YGragon/FrameDemo: Android 组件化开发示例,同时包含很多新技术的实践,可安装 apk(在app/release目录下) 后查...

FrameDemo

FrameDemo 项目为了快速实现使用了很多的 GitHub 仓库,在此非常感谢开源的各位大佬。

这是项目学习组件化开发的一个 Demo,虽然是Demo,但是组件化开发该有的内容基本都涵盖了。

相关的组件化文章介绍在网站里面也有,点击直达。

组件化开发,网上已经很多文章在写,我这里就不赘述。

什么样的项目才算组件化开发?

刚开始学习组件化开发,看到好多文章都写着组件化开发,但是大部分都是只有一个 App 组件,其他基本都是 Lib 组件,没有过多的参考价值。Lib 组件和 App 组件的差别在于,Lib组件不能独立运行,而 App组件能够独立运行。

如何实现组件化开发?

组件化开发的重点是,每个 独立的组件都是可运行,而组件间是需要相互通信的,那么如何实现呢?

这里使用了 ARouter 框架 进行组件间的通信。

组件化开发的好处就是,我们只要把框架搭建好,把lib_common 组件维护好,以后开发直接就是编写一个个的 App 组件,或者直接复用以前的 App组件。

组件化的实施步骤

新建空的项目,会创建 app 组件,创建class MainApplication : BaseApplication()通过反射来注册各个可独立运行的组件

新建 config.gradle文件或者新建buildSrc组件。非必须,作用是为了更好的维护gradle中的仓库版本

新建 lib_common 库组件。组件开发中的所有基类,工具类都可以存放在这

串联 app 组件和其他组件、以及让其他组件能够独立运行。(重难点)。

新建 module_xxx 组件名字。具体的某个组件,比如:module_usercenter组件表示为用户中心

WanAndroid 组件化开发实例

项目使用 Kotlin + MVP 模式开发,封装了BaseActivity、BaseFragment、IBaseView、IPresenter等基类,在lib_common组件的utils包中还包含了很多的工具类。其中在jetpack组件中使用了viewmodel+livedata+room+navigation组件。

一般我们项目常用的一些功能主要由以下组成:

网络请求框架:使用 RxJava3 + Retrofit2 + Kotlin 扩展函和高阶函数数 封装的网络请求库。

使用了RxJava3,那么在所难免的会遇到RxJava内存泄露问题,这里使用 autodispose2来管理。

日志打印:Logger ,优秀的程序员也是需要根据日志来排查问题的,Logger相对比较简洁,因此也纳入项目中。

权限管理:easyPermission库,目前主流机型还是Android5.0以上且Android 6.0以后需要动态申请权限,所以权限库也是必须的。

组件路由:ARouter,阿里开源的组件化方案。

升级、崩溃统计:Bugly,腾讯开源的升级及崩溃统计SDK

列表 adapter:非必须,BRVAH或者其他

图片加载:非必须,Glide或者其他

数据库:Room

...

App Module

尽量简洁

主要有两处要注意

app/build.gradle 中控制各个组件是否集成到 app 中

screenshot%5Capp_module_build_gradle.png

application

新创建的组件,application 需要在 AppConfig.moduleApps 集合中添加。

screenshot%5Capp_module_config.png

lib_common

基础库

lib_download

下载组件,包括app升级、文件上传下载

app升级使用的是 DownloadManager

文件上传下载使用的是 OKHttp 实现

module_android_jetpack

Android Jetpack 相关组件库使用 demo,包含 ViewModel+LiveData+Navigation+Room 的使用

module_gank

gank io 网站图片查看的 demo,使用 Glide 实现大图预览

module_map

地图组件,封装的百度地图 SDK 组件

module_search

搜索组件,使用 RxJava 实现联想搜索

module_share

分享组件,封装的系统分享组件

module_todo

使用 玩Android 网站 API 开发 的 TODO Demo

UserCenter Module

几乎每个应用必有的用户中心,用户中心涉及到的相关功能有:

注册功能、登录功能、退出功能、用户登录互斥功能、记住密码功能

注册登录功能

这里使用了 鸿洋大佬的 WanAndroid 提供的 API ,非常感谢

PS:大家在使用的使用也尽量少注册一些脏数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值