解决方案,是正对与需求来谈的。一个抽象的需求,需要一个较为上层抽象的解决方案来处理,这是病和药的关系。但是一个解决方案,可能会包含多个功能,每个功能都是解决方案上的一个节点。一个优秀的解决方案必然需要一个或多个核心的功能来支撑。

 
在android客户端来实现解决方案,则首先要做的两件事:1 将要实现的功能罗列出来,并且逐一细化,排序。2 核心功能运行保障。3 分析硬件环境,熟悉客户端能够提供的功能和接口,以及数据质量。
 
1 罗列功能:实现一个解决方案肯定不仅仅是一个功能能够体现的,但是必然有一两个核心功能。但是有核心功能,并不代表用户就可以很方便的进行操作。因此,需要根据用户的使用习惯补充一些支撑功能。例如播放一个视频文件,核心功能是播放功能,但是用户的习惯是:首先打开文件选择器,单击文件行进播放。显然满足用户的这一整套,才能说是一个解决方案。其次,有些功能是可以继续细分的,细分功能有助于更加清晰和系统环境进行评估。罗列这些功能,并且排序,将有助于业务的实现和调用系统接口的预估。
 
2 保障核心功能:两个方面,一个方面核心功能本身是否健壮,在苛刻的系统环境中运行是否流畅。很多buger都喜欢移植代码,但是很少考虑运行条件,移植过来是否能够健康运行。这方面需要一个评估。另一个方面,核心功能是否核心功能的需要怎么样调用才得当,以及运行时出现异常如何保证稳定。
 
 
3 分析硬件环境:硬件环境是指设备提供的一些可以调用的接口,以及提供的数据。有些机器可能没有某些器件,例如陀螺仪,数据业务,NFC等,需要预先考虑,否则方案中需要NFC,或者某些小角落里的功能需要这种硬件支持,但是没有,岂不是很糟糕的事情。另一方面,就是数据质量,如果想要通过一个低像素的摄像头来拍摄一些风景,则产生的视频数据,肯定没有高像素的好。这是必然要考虑的,否则结果,你懂得。
 
综上扯蛋,概括为必须数据自己实现的业务或方案,并且要能在现有硬件环境中评估是否能够满足,不满足则改,削足适履随便你。

Android 客户端设计之解决方案的更多相关文章

  1. Android 客户端设计之环境考虑

    我做过两三个android客户端应用的整体设计和部分的编码,这里仅仅谈一下设计方面的故事(此乃原创2015:11:02). 做客户端设计,首先要考虑应用所在的环境,包括三方面:1 要设计的apk是在一 ...

  2. 网易考拉Android客户端网络模块设计

    本文来自网易云社区 作者:王鲁才 客户端开发中不可避免的需要接触到访问网络的需求,如何把访问网络模块设计的更具有扩展性是每一个移动开发者不得不面对的事情.现在有很多主流的网络请求处理框架,如Squar ...

  3. 微信Android客户端架构演进之路

    这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...

  4. 基于xmpp openfire smack开发之Android客户端开发[3]

    在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...

  5. 转:微信Android客户端架构演进之路

    转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 20 ...

  6. 基于SuperSocket的IIS主动推送消息给android客户端

    在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回 ...

  7. 更新日志 - BugHD Android 客户端上线

    当我们讨论 Bug 的时候,总是一脸愁容.尤其是移动应用的开发者,要应对用户可能在各种场景下使用 App 时产生的莫名崩溃. 为了更好地解决开发者的焦虑,BugHD Android 客户端上线了,高效 ...

  8. Android UI设计

    Android UI设计--PopupWindow显示位置设置 摘要: 当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的 ...

  9. Android架构设计和软硬整合完整训练

    Android架构设计和软硬整合完整训练 Android架构设计和软硬整合完整训练:HAL&Framework&Native Service&Android Service&a ...

随机推荐

  1. 把vim当做golang的IDE

    开始决定丢弃鼠标,所以准备用vim了. 那么在vim里面如何搭建golang环境呢? git盛行之下,搭建vim环境是如此简单. 而且vim搭建好了之后,基本上跟IDE没有差别. 高亮.自动补全.自动 ...

  2. Nginx-->基础-->理论-->002:Nginx进程介绍

    一.Nginx进程介绍

  3. Bug集

    1. Spring MVC 双请求问题 viewresolver一定要放在servlet-dispatcher.xml里,否则会导致在请求成功后以后渲染页面,然后又发一次请求的状况,最后导致页面无法显 ...

  4. PHP获取具有相同name的多个input表单信息

    首先是表单应该这样写,注意每个 name="name[]"后面是有一个方括号的.这是PHP特有的获取具有相同name的多个input元素value的方法.(复选框也是采用这种方法) ...

  5. hihoCoder 1080 : 更为复杂的买卖房屋姿势 线段树区间更新

    #1080 : 更为复杂的买卖房屋姿势 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho都是游戏迷,“模拟都市”是他们非常喜欢的一个游戏,在这个游戏里面他们 ...

  6. 下载Orchard源码

    下载地址:http://orchardproject.net/download

  7. loop 循环次数

    在汇编中可以使用 loop 段地址:偏移地址 并配合 cx 达到循环执行的目的,但是在一些资料中看到说,cx 是循环的次数,我觉得这是不对的. 比如下面这段代码的作用是使得最终的 ax 中的值为 3 ...

  8. 在SqlServer查询分析器里 访问远程数据库 进行数据查询更新等操作(openrowset)

    启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_config ...

  9. 【洛谷P1196】银河英雄传说

    有特殊意义的一道题-- 加权并查集,我们增加cnt.deep数组 分别表示i点所在链共有多少个点,以及路径压缩之前点i在链中的深度 每次合并时直接修改cnt,路径压缩的同时更新deep 因为每次查询之 ...

  10. 一些不起眼但非常有用的 Vim 命令

    保存文件并退出 说起来有些惭愧,我也是最近才学到这个命令