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

 
在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. DQL、DML、DDL、DCL的概念与区别

    SQL(Structure Query Language)语言是数据库的核心语言. SQL的发展是从1974年开始的,其发展过程如下:1974年-----由Boyce和Chamberlin提出,当时称 ...

  2. Slight difference between C++ and C

    In C++, results of assignment operation, prefix increment and prefix decrement are all lvalues, the ...

  3. MVC 前台向后台传输数据

    今天,我们一起来学习下.MVC如何在前台给后台传输数据 (1)前台传输数据到后台 具体思路:前台拼凑json字符串,然后通过 get 或 post 方式,传递到后台 Action 方法中 我现在前台展 ...

  4. [linux] 默认权限修改(umask)

    1 文件默认权限 对于目录,默认权限=777-umask 对于文件,默认权限=666-umask(文件默认无执行权限) 默认权限修改: vim /etc/bashrc 71行是普通用户的更改,73是超 ...

  5. Servlet下载文件和http响应

    下载文件等: 1.得到公共的内容ServletContext sc = this.getServletContext(); 2.在链接名字后面加个? 一个参数?参数1=值 两个参数?参数1=值& ...

  6. android接收短信——framework处理流程(android 5.1)

    modem层不懂,所以直接从RIL.java开始.以电信卡接收短信为例 modem通知RIL.java中的 RILReceiver处理接收信息 class RILReceiver implements ...

  7. 如何去掉div滚动条

    1.去掉横向滚动条 style="overflow-x:hidden" 2.去掉纵向滚动条 style="overflow-y:hidden" 3.同时去掉横向 ...

  8. 深入研究C语言 第四篇

    这里更多探究的是指针的机制. 用debug对下面程序进行分析,记录每一条C语句运行后,相关内存单元的值. 程序a.c 注意理解指针机制 我们编写如下代码: 编译加载进debug查看: 我们先看其反汇编 ...

  9. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  10. 删除从第i个位置开始,长度为len的子串

    /*字符串采用带头结点的链表存储,设计算法函数void delstring(linkstring s, int i,int len)在字符串s中删除从第i个位置开始,长度为len的子串.*//**** ...