Android 客户端设计之环境考虑

我做过两三个android客户端应用的整体设计和部分的编码,这里仅仅谈一下设计方面的故事(此乃原创2015:11:02)。

做客户端设计,首先要考虑应用所在的环境,包括三方面:1 要设计的apk是在一个低内存,低运行速率,多应用共同运行(现在很多应用都在后台一直存活,不死鸟)的环境中;2 要设计的apk需要调用系统其它的数据或功能接口;3 apk置身于整体手机的运行环境中,必然手机的各种状态的变化,会对apk的运行造成影响,例如开网断网,亮屏灭屏等。

从1来考虑,必须要在设计之初,从数据流考虑apk运行时内存中所持有的数据量要小,不用的数据尽量不要加载到内存,用过的数据尽量释放。因为数据如果一直占据内存,会产生两个问题:一个是导致程序运行减慢,二数据的一致性会受到挑战。这里需要特别说明的是,有些buger认为数据一直占据内存,会使得存取路径减少,从而速度提高,但是通过亲身体验,从数据库里面加载数据和内存中加载少量数据,感觉不到差异。但是大量数据占据内存,就会使得本身的内存紧张,运行就会卡卡,而且还需要花线程维护数据库,内存,界面的数据一致。因此我认为不利因素大于有利因素。

从2来考虑,设计的apk可能因为业务需要,调用手机中其他共享的数据或者功能接口,例如联系人数据,短信数据,日历数据,或者录像功能,拍照功能,打电话功能等。需要在设计之初路罗列出这些接口,最好对这些接口进行正确性测试,保证功能能够满足要求。理论上讲,这些属于标准接口,应该不存在问题,但是各个厂商的手机不一定能够完全保证。 此外某些特殊的硬件器件各个提供商的接口可能不一样。

从3来考虑,apk在运行时,可能会受到手机状态的改变,在接收到这些改变时,需要在业务级别做好相应的对应策略。例如在开网和断网时,和服务器的交互应该怎么处理等。在apk被切换到后台时的处理等等。这些需要提前在业务级别做好准备,避免在后来处理过程中出现二意。

综上所述,在设计之前,需要考虑的环境因素,越是考虑充分,设计时越是容易,不要把问题遗留到后期。

时间: 2025-01-18 07:28:27

Android 客户端设计之环境考虑的相关文章

Android 客户端设计之解决方案

解决方案,是正对与需求来谈的.一个抽象的需求,需要一个较为上层抽象的解决方案来处理,这是病和药的关系.但是一个解决方案,可能会包含多个功能,每个功能都是解决方案上的一个节点.一个优秀的解决方案必然需要一个或多个核心的功能来支撑. 在android客户端来实现解决方案,则首先要做的两件事:1 将要实现的功能罗列出来,并且逐一细化,排序.2 核心功能运行保障.3 分析硬件环境,熟悉客户端能够提供的功能和接口,以及数据质量. 1 罗列功能:实现一个解决方案肯定不仅仅是一个功能能够体现的,但是必然有一两

关于客户端设计之数据分类和存储 的思考

一.关于数据的分类 在Android 客户端设计过程中,我将数据分为未知,已知(本地),临时,三者之间根据需求相互转化. 未知主要来自用户输入和服务端输入. 已知主要来自sharedPerferences,SQLite等本地存储. 临时主要是指存在于当前内存中的数据.在程序运行后,来自于前两种方式,随载体的生命周期开始,结束.(这里尤其注意单例模式下的数据的特殊,使用static或者Application,各有利弊.) 二.Android下数据单例模式设计 1.Application本身就是单例

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

转载请注明出处:http://blog.csdn.net/ahence/article/details/56678126 技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构.而架构也不是一成不变的,随着业务的发展,也许当初设计的架构已不足以支撑目前的业务,那么就需要改变之前的架构.接下来将分享下我们Android客户端的架构设计,在App的某个业务发展阶段或许有一些参考意义. 分层化与模块化

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

本文来自网易云社区 作者:王鲁才 客户端开发中不可避免的需要接触到访问网络的需求,如何把访问网络模块设计的更具有扩展性是每一个移动开发者不得不面对的事情.现在有很多主流的网络请求处理框架,如Square公司的OkHttp,Google推出的Volley,还有在OkHttp基础上进行封装的Retrofit等,这些都是非常优秀的网络处理框架.利用现有网络处理框架,比从零开始设计.开发网络请求节省很多开发时间,同时也避免了一些意想不到的问题.如果把这些框架直接拿来使用,不进行任何二次封装,会使我们工程

MQTT协议学习及实践(Linux服务端,Android客户端的例子)

前言 MQTT(Message Queuing Telemetry Transport),是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务.MQTT是专门针对物联网开发的轻量级传输协议.MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景.本文旨在研究其在消息发布/订阅/接收场景下的应用. MQTT协议中的几个重要概念 服务端 是发送消息的客户端和请求订阅的客户端之间的中介,又称

《深入理解Android内核设计思想》

<深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:687 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 更多关于>>><深入理解Android内核设计思想> 编辑推荐 基于Android SDK最新版本 全面细致地剖析了进程/线程模型.内存管理.Bind

《深入理解Android内核设计思想》书本目录,及部分章节内容分享

第1篇 android编译篇 第1章 android系统简介 2  1.1 android系统发展历程 2  1.2 android系统特点 4  1.3 android系统框架 8 第2章 android源码下载及编译 10  2.1 android源码下载指南 10  2.1.1 基于repo和git的版本管理 10  2.1.2 android源码下载流程 11  2.2 原生态系统编译指南 12    2.2.1 建立编译环境 13    2.2.2 编译流程 15  2.3 定制产品的

转载-Webp格式用户Android客户端

原文地址: http://blog.csdn.net/shichaosong/article/details/8752828 Webp格式用户Android客户端 分类: Android基础2013-04-02 18:37 1232人阅读 评论(0) 收藏 举报 今天看淘宝Android客户端的leader分析他们做淘宝客户端的经验的时候,听到了这样一个东西:WEBP,是一种图片格式. 1.百度百科:http://baike.baidu.com/view/4447461.htm WebP (发音

使用calabash测试开源中国Android客户端

Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中国客户端.目的是和大家一起学习calabash测试工具. 测试环境与源码准备 先介绍一下oschina.net oschina除了有网站,还有三大平台手机客户端: http://www.oschina.net/app 客户端已经开源! 那么开源可以用来做什么呢? 我正在学用calabash-android,得