平顺| 龙里| 西山| 莆田| 阳东| 永昌| 察哈尔右翼后旗| 商洛| 天池| 射阳| 平乐| 江达| 南木林| 韶关| 垦利| 诏安| 吉隆| 青县| 盐田| 蒲城| 苍南| 贵德| 监利| 梅里斯| 秀山| 巴中| 岳阳县| 灞桥| 乌苏| 秦安| 德庆| 杂多| 上蔡| 昆明| 衢州| 霞浦| 乌尔禾| 瑞安| 武当山| 鹤山| 古冶| 淮北| 喀喇沁旗| 路桥| 红岗| 永安| 延川| 会昌| 永平| 富顺| 曲松| 榆林| 富裕| 高明| 开化| 甘孜| 环江| 合水| 博野| 夏津| 于田| 夏河| 肃南| 鲁甸| 繁峙| 响水| 建湖| 郧西| 晋州| 张家界| 山海关| 东安| 茂港| 礼县| 南海| 确山| 合作| 印台| 盘山| 黎城| 巴彦淖尔| 夏县| 富锦| 娄底| 突泉| 玉林| 苍山| 高密| 海晏| 南康| 江夏| 德清| 抚宁| 郓城| 内乡| 金门| 小金| 普宁| 岗巴| 武宁| 长清| 河源| 饶河| 通渭| 新化| 崇礼| 盐城| 巫山| 石景山| 镇安| 内黄| 都江堰| 博山| 萧县| 东莞| 沁水| 郑州| 德化| 九江市| 徐州| 扬中| 左权| 江达| 同心| 桐梓| 嵩明| 内蒙古| 屏南| 分宜| 汝南| 长春| 息县| 丰镇| 蒙自| 双江| 敦化| 汉中| 临川| 丽水| 灌阳| 慈溪| 成县| 夏河| 泰安| 荆门| 朝阳县| 香港| 木兰| 延安| 安义| 江油| 江城| 三都| 绥化| 寿宁| 云阳| 绍兴县| 秀山| 平果| 锦州| 察哈尔右翼前旗| 柯坪| 石嘴山| 高州| 上饶市| 河津| 宁德| 五大连池| 稻城| 梅州| 门头沟| 仙游| 湘潭县| 讷河| 简阳| 德州| 山阳| 东兴| 易门| 江山| 天安门| 绵阳| 阿城| 鹤山| 黔江| 浠水| 新密| 北票| 宣城| 乌兰浩特| 大方| 枣阳| 韶山| 汝州| 砀山| 绍兴市| 横县| 任县| 防城港| 潼南| 辰溪| 泉港| 卫辉| 遂溪| 平谷| 前郭尔罗斯| 方山| 长治市| 阜阳| 漳县| 黔江| 衡山| 玉林| 顺德| 拜城| 平鲁| 方山| 陵水| 托克逊| 堆龙德庆| 青龙| 太仓| 淅川| 太仆寺旗| 乌兰察布| 咸宁| 麦盖提| 佳县| 阳西| 静宁| 户县| 阎良| 刚察| 清水| 阎良| 德钦| 阜新市| 罗平| 龙泉驿| 略阳| 衡山| 费县| 阿巴嘎旗| 崇州| 松江| 贺兰| 上甘岭| 梨树| 黟县| 和政| 沭阳| 滨海| 衡水| 黑龙江| 岢岚| 衡阳市| 沙湾| 灵石| 鼎湖| 西峰| 临夏县| 阜新蒙古族自治县| 老河口| 桃江| 美高梅开户
|
|
51CTO旗下网站
|
|
移动端

Android快速开发框架,基础库,样式库,组件化,组件集成

快速开发框架,并不是现成的框架。它是一种架构,它集成了基础库,网络库,尺寸颜色主题定义,并提出了一种组件化设计。它更像是一种sdk+架构设计抽象。本文也提供了组件设计规范和集成demo,开发者使用时,还需要做定义工作。

作者:狼的江湖来源:安卓巴士|2019-01-23 14:11

概述

快速开发框架,并不是现成的框架。它是一种架构,它集成了基础库,网络库,尺寸颜色主题定义,并提出了一种组件化设计。它更像是一种sdk+架构设计抽象。本文也提供了组件设计规范和集成demo,开发者使用时,还需要做定义工作。

目标

快速接入基础库和组件,大大缩短新应用开发周期。统一开发模式,能带来快速开发,快速维护,功能稳定的体验。

组件化

  • 封装基础库组件,包括基本的架构基础类,activity,dialog,动态权限,沉浸式,工具类等
  • 封装一套design组件,包含规定的多套尺寸,样式,以及主题
  • 按照规范定义功能组件,网络组件,分享组件等
  • 封装组件集成,通过统一入口链接各个组件。

App架构

1 、整体架构图

架构主要是业务模块化,以及通用功能组件化。但不限于此,有需要还能继续分拆,业务模块组件化,插件化,或进程化

模块依赖baselib组件和easyComponent组件

easyComponent组件依赖其他功能组件

模块化/组件化

2、应用层模块化

业务模块使用livedata的架构模式。

模块内基本架构:

final-architecture

livedata基本结构图:

viewmodel-replace-loader

基本组件介绍

基础库 baselib

包含:

  1. life-arch,livedata基本封装
  2. 基础SharePerference封装
  3. 环境设置,包括接口环境,debug环境(可控制日志输出)
  4. 基础Activity/Fragment
  5. dialog, tab, statusbar
  6. recyclerview快速开发
  7. viewtools
  8. 动态权限
  9. 工具类
  10. 多任务处理Rxjava
  11. Eventbus事件总线

网络组件 networklib

OKhttp3+Rxjava2+Retrofit2的解决方案,并设计了6种缓存策略,只读缓存(无视过期时间),自定义缓存时间,读网络,固定缓存1天,读网络并刷新缓存,读缓存同时请求网络并写缓存。

UI尺寸颜色规范库 design_style

  • 包含一组尺寸,颜色规范,可推动设计师们按规范设计。
  • 主要目的是撸UI尽量不用思考,提高开发效率和统一的尺寸和颜色体验。
  • 通过重新修改尺寸,颜色值,主题样式即可快速使用。

内容包含:

  • 文字size,大中小几种规范;
  • 组件外距/内距(margin/padding) 统一只有几种规格;
  • 分界线长度,宽度,颜色;
  • 文字颜色,主颜色,次要颜色,最次要颜色;
  • activity主题,状态栏,标题栏,背景颜色,光标颜色,问题颜色等等;
  • dialog主题,圆角,边距,底色;

快速访问组件 easyComponent

  • easyComponent实现了对组件的接入
  • 模块通过easyComponent组件,以责任链的方式调用。

如 Easys.network().api().getUser(observer)

分享组件

不祥

webview组件

不祥

组件设计规范

应包含:

  1. 尽量减少对其他组件的依赖
  2. 组件初始化过程(比如设置Application)
  3. 调用组件的过程
  4. 生命周期管理

集成步骤

下载源码demo,https://github.com/superroye/lefastdev

基础库组件使用

基础库收录了大部分常用功能,后续继续完善。

基础库组件

定义组件

按上述组件规范,定义新组件。以networklib为例,见源码。

补充easycomponent

集成新组件的实现,源码有相关demo,使用责任链的设计模式。

以网络库为例,见:

网路库的builder外观接口
接入网络库实现
网络库调用入口

重新设置design_style组件

主题,尺寸,颜色,需要定义成适合本应用的一套样式。

修改colors.xml文件:

colors.xml

修改dimens.xml文件:

dimens.xml

测试组件调用,并开始你的开发之旅。

初始化Application:

初始化Application

你的app工程依赖:

组件依赖

调用网络组件(初始化,和调用):

初始化和调用api过程

附言

本人做过4年java服务端开发,5年android开发经验。以上为个人的经验总结,不当之处欢迎讨论,并持续优化。

【编辑推荐】

  1. 爱奇艺Android客户端启动优化与分析
  2. 谷歌删掉 Android One 两年系统更新保证
  3. Android快速实现美团、饿了么首页分页导航菜单功能
  4. 夜猫子福音,Android Q 有望推出全局黑暗模式
  5. 谷歌的Google Assistant会成为下一个Android吗?
【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

系统分析师技术指南

本书对前沿而又成熟的系统分析技术和方法进行了讨论,包括CMM与过程改进、J2EE与NET平台、中间件及相关技术、应用服务器、Web 服务、数据...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
双碾乡 孟端胡同 小稿村 二拨子散居 普淜乡
燕子村 东杜尔基镇 零阳镇 香山道远翠中里 纯水岸
体育博彩 澳门葡京国际 澳门真人网站赌场 澳门百老汇游戏注册 澳门巴黎人注册
真钱捕鱼游戏 真人网站注册 澳门葡京国际 威尼斯人网站 威尼斯人官网
mg老虎机 现金网游戏 澳门联合赌场网址 百家乐规则 澳门威尼斯人平台
网络下注平台 澳门威尼斯人娱乐网址 真钱斗地主游戏 澳门真人娱乐官网 澳门威尼斯人官网
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐