美文网首页
服务化在安卓中的实现

服务化在安卓中的实现

作者: Meteorwizard | 来源:发表于2018-07-27 15:43 被阅读0次

### 需求背景

1. 项目工程组件化

随着业务越来越多、越来越繁杂,项目工程模块化、组件化是一条必经之路。把复杂系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护

2. 组件间的通信、解耦

组件化之后那么接踵而来的问题就是组件之间如何通信呢?如果是页面间跳转,那么我们就需要开发一套路由框架;但是如果我们在组件1中需要调用组件2的某个功能又该如何实现呢?现在主流的做法就是将这些需要被跨组件调用的功能做成服务化

### 现有第三方库的弊端

目前能实现路由功能+服务化功能框架市面上也很多,比较流行的就是阿里出品的ARouter,但是ARouter也未必是尽善尽美的,在我实际使用过程中,总结了有三个弊端:

1. 只支持至少两段路径(path="/test/Activity")

2. app启动时初始化服务,可能存在性能问题,当然这个问题应该没有那么严重尤其是服务少的时候

3. 每个页面只能支持一个path,如果出现两个协议跳转同一页面,ARouter当前版本就实现不了

### 设计思路

因此我们就想到可以基于ARouter实现一个更轻量级的服务化框架。简单列了一下我们需要实现如下功能:

1. 服务管理

      1. 注册服务

      2. find服务

      3. 标记是否是一个需要被缓存的服务

2. 减少代码量以及重复劳动

      1. 注解

      2. gradle插件

      3. ASM(一个Java字节码操纵框架)

### 具体实现

1. 注解

注解核心代码

2. gradle插件

插件核心代码

3. ASM

ASM核心代码

### TODO list

1. 自定义路由框架

### 踩过的坑

1. Android library通过插件形式依赖 会出现r文件找不到的错误

2. kapt使用对注解处理器的影响

相关文章

  • 服务化在安卓中的实现

    ### 需求背景 1. 项目工程组件化 随着业务越来越多、越来越繁杂,项目工程模块化、组件化是一条必经之路。把复杂...

  • 知识总结 插件化学习 Activity加载分析

    现在安卓插件化已经很成熟,可以直接用别人开源的框架实现自己项目,但是学习插件化的实现原理是安卓研发工程师加深安卓系...

  • NDK--andfix热修复之art虚拟机

    在so插件化原理,hook技术实现andfix热修复中,只实现了dalvik虚拟机中的热修复,安卓5.0后,谷歌彻...

  • RxJava +retrofit2实现安卓中网络操作

    #RxJava +retrofit2实现安卓中网络操作~ 在安卓中想实现网络操作有多种方式,可能许多没有经历过团队...

  • 安卓类加载机制

    热修复、插件化很多技术都是基于安卓类加载机制实现,所以对安卓类加载机制了解很有必要

  • Framework services

    系统service 安卓开发的同学都知道,framework中存在各种各样的service来实现管理服务,比如我们...

  • 深度比较EMUI和MIUI后台处理

    安卓的后台机制既是安卓的一个优势,也是碎片化很严重的一个特性,作为三款依赖安卓后台服务的App的开发者,写下这篇文...

  • 安卓开发国际化

    前言 安卓国际化是一个很普遍的需求,在此记录一下实现过程。 在该工程 res 中右键,点击New -> Andro...

  • 2018-03-09

    电脑真正实现Windows与安卓 双系统 如何让电脑安装上真正的安卓系统,通常我们Windows系统中安装安...

  • 安卓开发 开发前你需要了解的一些资料(一)

    前言   在安卓开发 初步了解安卓和配置安卓环境中,我们简单的介绍了安卓和配置安卓环境。我们使用了Android ...

网友评论

      本文标题:服务化在安卓中的实现

      本文链接:https://www.haomeiwen.com/subject/xtkgmftx.html