试想你做的不是一个软件,  而是一个软件族, 这个些软件需要在Android平台发布, 你应该做何种规划?  这些问题需要在以下真实场景中考虑:

  • QQ发布的特有手机, 需要继承多个软件: QQ空间、股票、聊天、游戏等
  • 一个具有学习平台功能的手机, 需要多个软件: 电子词典、数学工具、学习进度安排、在线教学、绘图板、考试系统
  • 机械物联网应用, 需要多个服务: 电子商务、工况查询、专家系统、行业信息检索等

事实上, 随着客户端的独占性/垂直型需求的增加, 这类跟硬件绑定的诉求将日益增加, 因此软件的平台规划能力要求会逐步加强。 Android系统在设计之初也考虑到不同应用(进程)之间的通信, 为此实现了非常多的机制来解决进程通信的问题。这些正是本文需要探求的问题。

需要关注的典型问题包含:

  • 为了方便低耦合的管理, 要求一个应用能拆分成多个下级apk. 单个APK以足够自我管理.

    1. apk自我升级到能力, 不会对整体造成影响
    2. 应用能对下级APK进行权限控制(比如访问、卸载、剔除)
    3. apk与上级应用以及平级apk之间, 保持最大限度的低耦合
    4. apk保持良好的高内聚能力, 不会跟其它APK产生功能上的相似点
  • APK之间的能保持紧密的发生关系

    1. apk能保持调用
    2. apk能传递数据
    3. apk之间可共享库或者共享数据

曾经走过的弯路:

1.  软件分离带来的问题, 就是管理, 典型的问题就是插件过多的问题。 分离的代价, 需要在管理上下功夫。

2. 一些个人经验:

  • 严格命插件或者可分离软件的命名规范
  • 无需分开的插件/软件尽量合并, 避免后期软件带来的膨胀
  • 摒弃个人陋习, 自己曾经的想法是: 本项目的代码, 直接可以搬移到另外一个项目中运行, 甚至可以到达无需移植的效果, 其实这个想法是很脑残的。 允许一定范围内的修改和移植, 这已经是可重用插件不错的境界了。不要过于追求完美。

本文示例代码下载

Android 软件平台架构设计相关推荐

  1. android客户端框架,最新的一版,通用Android 客户端架构设计,只有你还没看过

    客户端架构设计 客户端设计 目的是整体设计客户端App,架构上打好铺垫. Android客户端架构设计 主要从以下几个方面进行设计:MVP设计风格.整体架构.日志系统.网络系统.本地存储.Test模块 ...

  2. Android APP架构设计——MVP的使用示例

    0. 前言 为了更好地进行移动端架构设计,我们最常用的就是MVC.MVP和MVVM,作为三个最耳熟能详的三大架构,应用可谓非常广泛.对于这三种架构设计以及优缺点已经在Android APP架构设计-- ...

  3. Android App 架构设计相关资料汇总

    1. 前言 只要有1,2年工作经验的程序员,多多少少都会接触到架构东西.可能平时工作中不一定会有机会从0到1完完全全自己去设计一套架构出来,但是如果想成为高级工程师,技术专家,架构师--尽早接触架构方 ...

  4. Android LCE架构设计

    Android LCE架构设计 LCE架构,按拆字法解析:L:Loading加载,C:Content加载内容,E:Error加载失败. LCE架构使用最为常见的场景是做列表数据的加载,在加载时,如果隔 ...

  5. 一种Android客户端架构设计分享

    转载请注明出处:http://blog.csdn.net/ahence/article/details/56678126 技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简 ...

  6. 浅谈一种Android客户端架构设计

    技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构.而架构也不是一成不变的,随着业务的发展,也许 ...

  7. Android项目架构设计深入浅出

    简介:本文结合个人在架构设计上的思考和理解,介绍如何从0到1设计一个大型Android项目架构. 作者 | 璞珂 来源 | 阿里技术公众号 前言:本文结合个人在架构设计上的思考和理解,介绍如何从0到1 ...

  8. Android 项目架构设计深入浅出

    前言:本文结合个人在架构设计上的思考和理解,介绍如何从0到1设计一个大型Android项目架构. 一 引导 本文篇幅较长,可结合下表引导快速了解全文主脉络. 二 项目架构演进 该章节主要对一个Andr ...

  9. Android App架构设计

    前言 Web的架构经过多年的发展已经非常成熟了,我们常用的SSM,SSH等等,架构都非常标准.个人认为,Web服务逻辑比较清晰,目的明确,流程也相对固定,从服务器收到请求开始,经过一系列的的拦截器,过 ...

最新文章

  1. 如何读取多个文件,文件后缀名不一致,不过类似source.1 source.2 source.3等
  2. ASP.NET MVC – 视图简介
  3. 二分平均值聚类 java_二分K-均值聚类算法
  4. Svn安装成功后的操作
  5. 【ajax】readyState=4并且status=200时,还进error方法
  6. SuperMap GIS查询
  7. Java并发编程实战————可重入内置锁
  8. 阿里云产品汇总及解释
  9. 操作class属性的新API--classList
  10. 动态规划经典题之石子合并
  11. Oracle触发器2-DML触发器
  12. 大厂十年IT老兵血泪教训,IT人到底要如何选择合适的报表工具?
  13. Eclipse 中 去掉控制台最大行数限制
  14. matlab画圆的命令_matlab画矩形和matlab画圆
  15. mysql 内连接与外连接的区别
  16. My Firest FireMonkey App
  17. Java 开通会员增加会员天数(LocalDateTime)
  18. Tensorboard无法显示图像
  19. 漫谈程序员(十六)健康程序猿系列之健康体魄
  20. mac系统python读取文件路径_mac下python目录

热门文章

  1. php下载pdf文件不全,关于php:Zip PDF文件下载无效
  2. 计算机视觉——全景图像拼接
  3. 【毕业设计/课程设计】智能会议室
  4. XUI 熟练使用之(三) -----------启动页( SimpleGuideBanner的使用)
  5. Galera Cluster一致性问题
  6. C#实现自定义打印文字和图片
  7. offiice2013全套软件,加破击工具,教程,真是验证过链接:https://pan.baidu.com/s/1Csv4ZXDQyK_cKfpIXwwn6Q 提取码:h7dp 复制这段内容后打
  8. adobe cs5 indesign 不显示文本框_Adobe CS5 InDesign自动添加页码
  9. spring-定时任务
  10. 天龙八部TLBB从0到1搭建教程-中