android 资源如何下沉,关于Android业务模块下沉的一些实践及总结
此文已由作者徐铭阳授权网易云社区发布。
欢迎访问
前言
最近在做需求过程中,一些类似学校选择、城市选择等业务相关模块想单独抽离出来,遇到一些诸如模块管理、通信方面的问题来
背景
最近有一个需求是学校列表,没错,就是我们平时总见到的类似微信通讯录的需求,单看这个需求的话实现不复杂,网上也会有一些类似的实现。
中M有一些个性化的需求,比如字母索引不是A~Z总共26个字母而是按照学校的名字,假设没有这个首字母拼音的话这个字母就是不展示的,所以在做这个需求的时候造了个轮子满足这个需求,不过这个不是本文要说的重点。
由于学校选择、通讯录、城市选择等类似的选择器功能基本通用,教育产品有好几个产品,不止中M可能还会有云课堂、K12等也会有类似的需求,所以关于这个选择器准备作为一个底层业务模块单独拆分出来,联想到之前做中M路由的时候写过业务模块管理相关代码,现在两个结合起来正好可以满足需求
需求
edu-android-select模块注册
SelectActivity处理完选择事件之后需要把处理结果返回给调用的上层业务
业务组件懒加载,不需要在app启动时初始化
解决方案
模块注册
framework启动统一使用配置文件注册,每个module配置application入口,该application有两个功能,作为各个模块路由分发入口,做一些初始化工作,当然除非是模块运行必须的功能,其他功能不建议放在该入口application中
业务模块提供的服务在每个模块application中注册,接口和实现分离方式,Map中保存键值对,键对应接口,值对应实现
framework统一管理所有的application和所有的service,上层业务想去获取某个service时通过ServiceManager获取,提供统一获取service方式
回调处理
ICommonService中定义提供外部的接口以及给外部的回调,接口和实现分离
业务service懒加载
每个application入口中注册该模块提供的服务
实现
如有问题欢迎指正交流
网易云
更多网易技术、产品、运营经验分享请
android 资源如何下沉,关于Android业务模块下沉的一些实践及总结相关推荐
- android资源替换方案overlay,Android 运行时资源替换----Runtime Resource Overlay
先抛一个问题:现在有一个第三方应用,没有代码,只有编译好的apk,在不去改动这个apk的前提下,如果想改变这个应用中的一些资源显示效果,比如改变一个button的文字,一个imageview的背景,有 ...
- android资源编译失败,在android studio中打开一个新项目时,Android资源编译失败
用我的android studio打开新项目时出现此错误 Android资源编译失败输出:C:\ Projects \ Popular2 \ app \ src \ main \ res \ draw ...
- android资源透明背景,@谷歌android帝 这是你想要的,全局透明背景教程,两种方法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先大家提取原生态没有任何修改过的framework-res.apk,反编译,(这里特别交代一下,大家要看仔细了,全局背景化透明化的修改是有两种修改的方法 ...
- android资源文件转bitmap,Android 之 Bitmap 和 File 相互转换
图片文件转为Bitmap对象 String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePat ...
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组...
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- 【我的Android进阶之旅】Android 混淆文件资源分类整理之二:将混淆文件拆分成更小粒度的混淆文件
在我2017年的文章[我的Android进阶之旅]Android 混淆文件资源分类整理中,我已经提及过. 之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Stu ...
- 1.2、Android Studio为新设备创建一个模块
2019独角兽企业重金招聘Python工程师标准>>> 模块为你的应用的源码.资源文件和app level设置(比如AndroidManifest.xml)提供了一个容器.每个模块可 ...
最新文章
- USACO Broken Necklace 题解(环展开成链,枚举)
- MySQL的版本以及版本号
- [深度学习] Normalization 模型
- 拒绝CPU挖矿矿工有责
- MAC终端下常用Git命令 - 某个人 - 博客园
- list lt map gt java_利用Set 对Listlt;Maplt;String,Objectgt;gt; 中的map对象中某一个属性去重...
- 12个写论文必备的神经网络可视化工具
- 为什么我们要阅读源码?
- 第6讲 Zend 整合数据库
- windows环境下oracle安装教程
- 国产数据库及厂商介绍
- HTML中关于使用 innerHTML 动态创建DOM节点时,相关事件(如onclick等)失效的解决方案
- 【Mybatis入门20221024】
- winscp登录主机拒绝_winscp连接被拒绝怎么解决
- [渝粤教育] 广东-国家-开放大学 21秋期末考试马克思主义基本原理概论(A)10882k1
- 【C语言】输入一个正整数 n,输入 n 个数,生成一个 n*n 的矩阵, 矩阵中第 1 行是输入的 n 个数,以后每一行都是上一行循环左移一个元素。
- 利用python提取基因cDNA长度,exon数量,pep长度和PI
- 美团外卖Flutter动态化实践
- java面试自我介绍百度云,java面试自我介绍
- java 循环new对象_java中new一个对象放在循环体里面与外面的区别
热门文章
- 梳子刻字刻什么好_校园石阶上被人刻了1700多个字?!这次网友却说好
- python制作圆形按钮_C#圆形按钮,非常漂亮动态
- 逆元java_逆元 - 阿聊 - 博客园
- 简记模态对话框和非模态对话框
- mysql 中 end like,MySQL 这三道必问面试题,你都会吗?
- java如何实现信号量_使用二进制信号量实现通用信号量
- java 类 方法继承_java – 在方法重写中返回继承的类而不是超类
- lua_path环境变量设置linux,ubuntu16.04安装lua环境
- 杭电2005题c语言答案,杭电2005
- 指针 是否相同_算法一招鲜——双指针问题