Android 软件平台架构设计

试想你做的不是一个软件, 而是一个软件族, 这个些软件需要在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. 一些个人经验:

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



本文示例代码下载



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Android平台的智能家居软件的设计与实现包括以下几个方面。 首先,设计阶段需要对智能家居的功能进行分析和规划。可以考虑支持的智能设备类型,如照明、温度控制、安防系统等。同时,需要确定用户界面设计,以便用户能够直观地控制和管理智能设备。 其次,软件实现阶段需要根据设计规划,进行系统架构设计和数据库设计。系统架构设计包括确定模块化的组件,如用户管理、设备管理、远程控制等。数据库设计用于存储用户信息、设备信息和智能家居配置等。 然后,将设计好的系统架构和数据库设计转化为代码实现。使用Java作为主要编程语言,结合Android SDK进行开发。可以利用Android提供的API,如网络通信API、UI控件API等,实现用户实时控制智能设备的功能。 另外,为了满足用户的定制需求,可以加入一些智能化的算法和机制。例如,根据用户的生活习惯自动调整家居设备的工作状态;通过学习用户的行为模式,提供个性化的推荐和服务。 最后,在软件开发完成后,需要进行测试和优化。通过模拟用户使用场景,验证系统的稳定性和响应速度,并对移动设备的资源占用和能耗进行优化。 总的来说,基于Android平台的智能家居软件的设计与实现需要考虑功能规划、系统架构设计、数据库设计、代码实现、智能化算法加入、测试和优化等环节,以提供用户良好的智能家居控制体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值