关于一些 Android技术的分享:
一,消息推送
1.推送方式基础知识:
当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现。第二种就是服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。
虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push is better than pull。因为Pull方式更费客户端的网络流量,更主要的是费电量。
在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,我会在以后详细介绍IPhone中的解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能。
Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。C2DM服务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。关于C2DM具体使用过程,我会以后的博文中再详细介绍,这里大家先了解下大致方案情况。
C2DM操作过程图:
但是经过一番研究发现,这个服务存在很大的问题:
1)C2DM内置于Android的2.2系统上,无法兼容老的1.6到2.1系统;
2)C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发者都能够实现的; 有了上述两个使用上的制约,导致我最终放弃了这个方案,不过我想利用另外一篇文章来详细的介绍C2DM的框架以及客户端和App Server的相应设置方法,可以作为学习与参考之用。即然C2DM无法满足我们的要求,那么我们就需要自己来实现Android手机客户端与App Server之间的通信协议,保证在App Server想向指定的Android设备发送消息时,Android设备能够及时的收到。
2. 几种常见的解决方案
1)轮询(Pull):应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。
2)SMS(Push):在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图。这是一个不错的想法,我就见过采用这个方案的应用程序。这个方案的好处是,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,你很难找到免费的短消息发送网关,关于这个方案的实现。
3)持久连接(Push):这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。Apple的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。不过这个方案也存在不足,就是我们很难在手机上实现一个可靠的服务。
Android操作系统允许在低内存情况下杀死系统服务,所以你的通知服务很可能被操作系统Kill掉了。前两个方案存在明显的不足,第三个方案也有不足,不过我们可以通过良好的设计来弥补,以便于让该方案可以有效的工作。毕竟,我们要知道GMail,GTalk以及GoogleVoice都可以实现实时更新的。
3. MQTT协议实现Android推送
采用MQTT协议实现Android推送 MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。 wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从这里下载该项目的实例代码,并且可以找到一个采用PHP书写的服务器端实现。
架构如下所示:
wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从如下站点下载它。你可以将该jar包加入你自己的Android应用程序中。
4.RSMB实现推送:
Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。
SAM是一个针对MQTT写的PHP库。我们可以从这个下载它.
send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本。
Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。
5. XMPP协议实现Android推送
这是我在项目中采用的方案。事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。 XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。关于XMPP协议我在上篇博文中已经介绍,大家可以参考:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html
androidpn是一个基于XMPP协议的java开源Android push notification实现,我会在以后的博文中详细介绍androidpn。它包含了完整的客户端和服务器端。经过源代码研究我发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的,不过比较郁闷的是androidpn的文档是由韩语写的,所以整个研究过程基本都是读源码。
实现意图如下图所示:
androidpn 客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。
androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与 openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的 XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。服务器架构如下:
最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。
这个解决方案的最大优势就是简单,我们不需要象C2DM那样依赖操作系统版本,也不会担心某一天Google服务器不可用。利用XMPP协议我们还可以进一步的对协议进行扩展,实现更为完善的功能。采用这个方案,我们目前只能发送文字消息,不过对于推送来说一般足够了,因为我们不能指望通过推送得到所有的数据,一般情况下,利用推送只是告诉手机端服务器发生了某些改变,当客户端收到通知以后,应该主动到服务器获取最新的数据,这样才是推送服务的完整实现。
二,第三方登录
第三方支付的原理及特点:
什么叫第三方支付?第三方支付的原理和特点是什么?
所谓第三方支付,
就是一些和产品所在国家以及国外各大银行签约、
并具备一定实力和信誉
保障的第三方独立机构提供的交易支持平台。
在通过第三方支付平台的交易中,
买方选购商
品后,使用第三方平台提供的账户进行货款支付,由第三方通知卖家货款到达、进行发货;
买方检验物品后,就可以通知付款给卖家,第三方再将款项转至卖家账户。
第三方支付实现原理:
除了网上银行、
电子信用卡等之外手段之外还有一种方式也可以相对降低网络支付的风险,
那就是正在迅猛发展起来的利用第三方机构的支付模式及其支付流程,
而这个第三方机构必须具有一定的诚信度。在实际的操作过程中这个第三方机构可以是发行信用卡的银行本身。
在进行网络支付时,
信用卡号以及密码的披露只在持卡人和银行之间转移,
降低了应通过商
家转移而导致的风险。
同样当第三方是除了银行以外的具有良好信誉和技术支持能力的某个机构时,
支付也通
过第三方在持卡人或者客户和银行之间进行。
持卡人首先和第三方以替代银行帐号的某种电
子数据的形式(例如邮件)传递帐户信息,避免了持卡人将银行信息直接透露给商家,
另外
也可以不必登录不同的网上银行界面,
而取而代之的是每次登录时,
都能看到相对熟悉和简
单的第三方机构的界面。
三,第三方分享
开通一个公众平台就可以了。或者使用能分享到朋友圈的第三方软件
四,第三方框架
框架就是程序语言的大的结构流程顺序,标志着一些大致的类型和使用方法,里面封装了一些通用的方法,
如数据库访问,一些自定义控件,或第三方控件,你直接拿来用就是了这样开发更快,更高效。
五,二维码技术
发展历程编辑
我国对二维码技术的研究开始于1993年。 中国物品编码中心对几种常用的二维码PDF417、QRCCode、Data Matrix、Maxi Code、Code 49、Code 16K、Code One的技术规范进行了翻译和跟踪研究。随着我国市场经济的不断完善和信息技术的迅速发展,国内对二维码这一新技术的需求与日俱增。中国物品编码中心在原国家质量技术监督局和国家有关部门的大力支持下,对二维码技术的研究不断深入。在消化国外相关技术资料的基础上,制定了两个二维码的国家标准:二维码网格 矩阵码(SJ/T 11349-2006)和二维码紧密矩阵码(SJ/T 11350-2006),从而大大促进了我国具有 自主知识产权技术的二维码的研发。
二维码原理编辑
矩阵式原理
行排式原理
功能编辑
●广告推送(用户扫码,直接浏览商家推送的视频、音频广告)
●
手机电商(用户扫码、手机直接购物下单)
●优惠促销(用户扫码,下载电子优惠券,抽奖)
●会员管理(用户手机上获取电子会员信息、VIP服务)
分类编辑
堆叠式/行排式
矩阵式二维码
矩阵式二维条码(又称棋盘式二维条码)它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。矩阵式二维条码是建立在
计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有:Code One、MaxiCode、QR Code、 Data Matrix、Han Xin Code、Grid Matrix 等。
常用的码制有:
PDF417二维条码、Datamatrix二维条码、QR Code、Code 49、Code 16K、Code one等,除了这些常见的二维条码之外,还有Vericode条码、CP条码、Codablock F条码、田字码、 Ultracode条码及Aztec条码。
六,媒体流
所谓流媒体是指采用流式传输的方式在Internet/Intranet播放的媒体格式,如音频、视频或多媒体文件。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,在计算机中对数据包进行缓存并使媒体数据正确地输出。流媒体的数据流随时传送随时播放,只是在开始时有些延迟。显然,流媒体实现的关键技术就是流式传输,流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。与单纯的下载方式相比,这种对多媒体文件边下载边播入的流式传输方式不仅使启动延时大幅度地缩短,而且对系统缓存容量的需求也大大降低,极大地减少用户用在等待的时间。
流媒体可以边下载边播放,与平面媒体不同。流媒体最大的特点在于互动性,这也是互联网最具吸引力的地方。 ![搜索]()
不一定是mms开头的,比如rm或rmvb格式的流媒体就是rspt开头的,用影音传送带可以下载。
七,主流UI技术
UI即User Interface(用户界面)的简称。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。UI还有其它的意义,如Unit Interval,Univ of Iowa,Unlock Instruction,Urgent Interrupt。
流媒体可以边下载边播放,与平面媒体不同。流媒体最大的特点在于互动性,这也是互联网最具吸引力的地方。
不一定是mms开头的,比如rm或rmvb格式的流媒体就是rspt开头的,用影音传送带可以下载。
UI即User Interface(用户界面)的简称。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。UI还有其它的意义,如Unit Interval,Univ of Iowa,Unlock Instruction,Urgent Interrupt。
目录:
综述
定义编码设计
UI设计
UI设计师研究工具
研究人与界面的关系
研究人
中国现状
发展阶段
部门设立
设计流程确认目标用户
采集目标用户的习惯交互方式
提示和引导用户
一致性原则设计目标一致
元素外观一致
交互行为一致
可用性原则可理解
可达到
可控制
未来展望综述
定义 编码设计
UI设计
UI设计师 研究工具
研究人与界面的关系
研究人
中国现状
发展阶段
部门设立
设计流程 确认目标用户
采集目标用户的习惯交互方式
提示和引导用户
一致性原则 设计目标一致
元素外观一致
交互行为一致
可用性原则
可理解 可达到 可控制未来展望展开 编辑本段综述
用户界面
UI = User Interface,用户界面,也称人机界面。是指用户和某些系统进行交互方法的集合,这些系统不单单指电脑程序,还包括某种特定的机器,设备,复杂的工具等。 UI = Unit Interval,单位时间间隔,通常在通信信号的抖动测试中用来表示抖动幅度的单位,表示一个等步信号的两个相邻的有效瞬时之间的标称时间差。 UI = Univ of Iowa,爱荷州大学(美国)。 UI = Unlock Instruction,开锁指令。 UI = Urgent Interrupt,紧急中断。
编辑本段定义
编码设计
软件设计可分为两个部分:编码设计与UI设计。 编码设计大家都很熟悉,但是UI设计还是一个很陌生的词,即使一些专门从事网站与多媒体设计 UI设计
的人也不完全理解UI的意思。UI的本意是用户界面,是英文User和 interface的缩写。从字面上看是用户与界面2个组成部分,但实际上还包括用户与界面之间的交互关系。界面设计,在漫长的软件发展中,界面设计工作一直没有被重视起来。做界面设计的人也被贬义的称为“美工”。其实软件界面设计就像工业产品中的工业造型设计一样,是产品的重要买点。一个友好美观的界面会给人带来舒适的视觉享受,拉近人与电脑的距离,为商家创造卖点。界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计。检验一个界面的标准即不是某个项目开发组领导的意见也不是项目成员投票的结果,而是最终用户的感受。所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果的过程。
UI设计
在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。
编辑本段UI设计师
研究工具
UI设计从工作内容上来说分为3个方向。图 它主要是由UI 研究的3个因素决定的, 其分别是研究工具,研究人与界面的关系,研究人。 研究界面----图形设计师Graphic UI designer 国内目前大部分UI工作者都是从事这个行业。也有人称之为美工,但实际上不是单纯意义上的美术工人,而是软件产品的产品外形设计师。 这些设计师大多是美术院校毕业的,其中大部分是有美术设计教育背景,例如工业外形设计,装潢设计,信息多媒体设计等。
研究人与界面的关系
蓝色代表工具,红色代表关系,绿色代表人
研究人与界面的关系---交互设计师,interaction designer 在图形界面产生之前,长期以来UI设计师就是指交互设计师。交互设计师的工作内容就是设计软件的操作流程,树状结构,软件的结构与操作规范(spec)等。一个软件产品在编码之前需要作的就是交互设计,并且确立交互模型,交互规范。 交互设计师一般都是软件工程师背景居多。
研究人
研究人----用户测试/研究工程师User experience engineer 任何的产品为了保证质量都需要测试,软件的编码需要测试,自然UI设计也需要被测试。这个测试和编码没有任何关系,主要是测试交互设计的合理性以及图形设计的美观性。测试方法一般都是采用焦点小组,用目标用户问卷的形式来衡量UI设计的合理性。这个职位很重要,如果没有这个职位,UI设计的好坏只能凭借设计师的经验或者领导的审美来评判,这样就会给企业带来严重的风险性。 用户研究工程师一般是心理学人文学背景比较合适。 综上所述UI设计师就是:软件图形设计师、交互设计师和用户研究工程师。
编辑本段中国现状
目前在国内UI还是一个相对陌生的词,即便是一些设计人员也对这个词不太了解。我们经常看到一些招聘广告写着:招聘界面美工、界面美术设计师等等。这表明在国内对UI的理解还停留在美术设计方面,认为UI的工作只是描边画线,缺乏对用户交互的重要性的理解;另一方面在软件开发过程中还存在重技术而不重应用的现象。许多商家认为软件产品的核心是技术,而UI仅仅是次要的辅助,这点在人员的比例与待遇上可以表现出来。 但这不是UI设计真正的价值体现,只是UI设计发展的一个必经过程。我们以物质产品手机行业为例,当手机刚刚进入市场的时候不但价格贵的惊人,而且除了通话以外没有什么其他功能。由于当时的主导是技术,所以大家都把精力放在信号、待机时间、寿命等方面,对于产品的造型,使用的合理性很少关心。事过境迁,如今技术已经完全的达到用户的需求,于是商家为了创造卖点,提高争力,非常重视产品的外观设计,除此之外还频频推出短信,彩屏,和铉,彩信,摄像头等等。这样一来产品的美观、个性、易用、易学、人性化等等都成了产品的卖点。软件产品与物质产品的发展是相同的。过去由于计算机硬件的限制,编码设计成为软件开发的代名词,美观亲和的图形化界面与合理易用的交互方式都没有得到充分的重视,实际上这个时期的软件叫作软件程序,而不是软件产品。 现今随着计算机硬件的飞速发展,过去的软件程序已经不能适应用户的要求。软件产品在激烈的市场竞争中,仅仅有强大的功能是远远不够的,不足以战胜强劲的对手。幸运的是在国内一些高瞻远瞩的民族企业已经开始意识到UI给软件产品带来的巨大卖点了,例如金山公司的影霸、词霸、毒霸、网标,由于重视UI的开发与地位,才使得金山产品在同类软件产品中首屈一指。联想软件的UI部门积极开展用户研究与使用性测试,将易用与美观相结合,推出的双模式电脑、幸福系列等成功UI范例,为联想赢得全球消费 PC第三的称号等等、等等.实践证明,各商家只要在产品美观和易用设计方面很小投入,将会有很大产出。其投入产出比,要比在功能领先性开发上的投入大得多。 我们不得不承认现阶段中国在很多领域都与西方发达国家有相当大的差距,如何赶上并超过他们是我们这代人肩负的历史使命。软件产品领域不象物质产品那样存在工艺、材料上的限制,软件产品核心问题就是人。提高软件UI设计师个人能力减小人员上的差距是中国UI发展首要关键的问题。 目前国内各院校还没有设立相对健全的UI设计专业,所以提高UI设计师能力关键在于提供一个良好的学习与交流的资源环境。国内已经有很多交流设计网站,介绍工业设计、平面设计、服装设计、绘画艺术、多媒体flash等,但是UI设计一直没有受到应有的关注,仅仅被放在数码设计或者平面网页设计的一个栏目里,这仅有的资源对培养优秀的设计师是不够的,必须有一个信息快捷、资源丰富、设计水平一流、专业权威的UI设计学习与交流的地方才能适应日益发展的UI设计师们的需求。
编辑本段发展阶段
市场经济需要竞争,竞争就会需要设计来提高产品竞争力。2000年以前国内的UI设计刚开始萌芽,但当时做UI等于做平面设计,基本也体现在网页设计上,后来随着flash的流行,一部分美术设计师开始去思考互动性。到了2002年一些企业开始重视到UI设计的重要性,纷纷把UI部门从软件编码团队里提出来,开始有了专门针对软件产品的图形设计师和交互设计师。2004年以后随着手机,电脑附加软件,MP3等大量产品上市,ID设计就和UI设计越来越紧密了,UI设计也开始被提升到一个新的高度和重视程度。2005年国内的UI设计已经相对成熟了,有了专门的职业分工也出现了很多不错的UI一线设计师与UI设计交流组织。
编辑本段部门设立
随着“UI”热的到来,近几年国内很多从事手机,软件,网站,增值服务等企业和公司都设立了这个部门。还有很多专门从事UI设计的公司也应运而生。软件UI设计师的待遇和地位也逐渐上升。
编辑本段设计流程
确认目标用户
在软件设计过程中,需求设计角色会确定软件的目标用户,获取最终用户和直接用户的需求。 用户交互要考虑到目标用户的不同引起的交互设计重点的不同。 例如:对于科学用户和对于电脑入门用户的设计重点就不同。
采集目标用户的习惯交互方式
不同类型的目标用户有不同的交互习惯。这种习惯的交互方式往往来源于其原有的针对现实的交互流程、已有软件工具的交互流程。 当然还要在此基础上通过调研分析找到用户希望达到的交互效果,并且以流程确认下来。
提示和引导用户
软件是用户的工具。因此应该由用户来操作和控制软件。软件响应用户的动作和设定的规则。 对于用户交互的结果和反馈,提示用户结果和反馈信息,引导用户进行用户需要的下一步操作。
编辑本段一致性原则
设计目标一致
软件中往往存在多个组成部分(组件、元素)。不同组成部分之间的交互设计目标需要一致。 例如:如果以电脑操作初级用户作为目标用户,以简化界面逻辑为设计目标,那么该目标需要贯彻软件(软件包)整体,而不是局部。
元素外观一致
交互元素的外观往往影响用户的交互效果。同一个(类)软件采用一致风格的外观,对于保持用户焦点,改进交互效果有很大帮助。遗憾的是如何确认元素外观一致没有特别统一的衡量方法。因此需要对目标用户进行调查取得反馈。
交互行为一致
在交互模型中,不同类型的元素用户触发其对应的行为事件后,其交互行为需要一致。 例如:所有需要用户确认操作的对话框都至少包含确认和放弃两个按钮。 对于交互行为一致性原则比较极端的理念是相同类型的交互元素所引起的行为事件相同。但是我们可以看到这个理念虽然在大部分情况下正确,但是的确有相反的例子证明不按照这个理念设计,会更加简化用户操作流程。
编辑本段可用性原则
可理解
软件要为用户使用,用户必须可以理解软件各元素对应的功能。 如果不能为用户理解,那么需要提供一种非破坏性的途径,使得用户可以通过对该元素的操作,理解其对应的功能。 例如:删除操作元素。用户可以点击删除操作按钮,提示用户如何删除操作或者是否确认删除操作,用户可以更加详细的理解该元素对应的功能,同时可以取消该操作。
可达到
用户是交互的中心,交互元素对应用户需要的功能。因此交互元素必须可以被用户控制。 用户可以用诸如键盘、鼠标之类的交互设备通过移动和触发已有的交互元素达到其它在此之前不可见或者不可交互的交互元素。 要注意的是交互的次数会影响可达到的效果。当一个功能被深深隐藏(一般来说超过4层)那么用户达到该元素的几率就大大降低了。 可达到的效果也同界面设计有关。过于复杂的界面会影响可达到的效果。(参考简单导向原则)
可控制
软件的交互流程,用户可以控制。 功能的执行流程,用户可以控制。 如果确实无法提供控制,则用能为目标用户理解的方式提示用户。
编辑本段未来展望
软件UI 设计应该属于ID(工业产品设计)的一个特殊形式,只是针对的材质有所不同。但随着智能化电子产品的普及,带有液晶屏显示的产品将越来越多。也就意味着越来越多的产品设计需要软件UI设计。 随着科技的发展,不久的将来所有的产品会组成一体,变成一个无处不在的电脑,这个电脑控制着用户的所有家用产品和资料。用户只要有自己的一个账号,就可以通过任何一个产品来控制所有其它产品,而所有的产品都具有终端的功能。而这个终端操作的基本形式就是软件的UI设计。 产品设计由物质设计向非物质设计转变已经开始了,而且必将成为未来产品设计的主流,一个UI大时代即将到来。
八,缓存管理
java实现缓存技术:
1,java实现缓存技术,有时候我们需要将一些数据缓存起来,什么时候使用单例模式来构建缓存控制器好?什么时候直接使用session好?还有什么情况下使用一些开源的缓存框架?例:OsCache,JbossCache等。假如我有七、八张表,每张表只有一两条数据;在一个流程开始的时候,例:创建一个营销任务(共有七个步骤)的时候,每个步骤会根据客户输入的数据,填充到一张表中,在营销任务最后一个环节保存任务的时候,读取前面几个步骤中保存的数据,更新到数据库中。这时候是使用单例好还是使用缓存框架OSCache好?
2,java实现缓存技术,有时候我们需要将一些数据缓存起来,什么时候使用单例模式来构建缓存控制器好?什么时候直接使用session好?还有什么情况下使用一些开源的缓存框架?例:OsCache,JbossCache等。假如我有七、八张表,每张表只有一两条数据;在一个流程开始的时候,例:创建一个营销任务(共有七个步骤)的时候,每个步骤会根据客户输入的数据,填充到一张表中,在营销任务最后一个环节保存任务的时候,读取前面几个步骤中保存的数据,更新到数据库中。这时候是使用单例好还是使用缓存框架OSCache好?
九,内存优化
你的手机属于低运存,第三方软件安装多了,就会造成运作不流畅。你可以下载“安卓优化大师”进行全面的清理。如果觉得这个软件占内存,那建议你选择“FMR Memory Cieaner”系统优化软件,此软件体积小,仅占用内存260KB,而且清理效果特别明显。 手机CPU是忽高忽低,这个属于正常。(建议吧GO桌面换成“点心桌面”,占内存适中,而且可以使用仿苹果界面等,也同样自带系统清理功能)
十,图片处理
PhotoCap 4.0 简介:(软件不到10M)
PhotoCap是数位照片的最佳帮手,也是100%免费的软体,PhotoCap的使命是带给每个家庭美好的回忆,所有功能都非常实用,尤其是有小孩的爸爸妈妈,更是不可错过喔。
主要应用:
可以制作相片书、扑克牌、名片、桌历、月历、冲洗照片、大头照、缩图页,与 添加文字 、小图案 、外框 、对话框等等常见有趣的应用。
修片的应用:
凡举去除红眼 、 黑斑 、 疤痕 、油光、 美化肌肤 、 曝光亮度调整、色偏问题、消除紫边...等等常见的修片功能。
绘图的应用:
PhotoCap相当于初级程度的PhotoShop,因此PhotoShop大部分的基本功能都有,包刮专业影像软体的必备的选取 、 影像功能 、 滤镜 、 图层 ,还有独特的物件功能 ,可以说是功能完善又简单好用的软体。 PhotoCap还提供了简单强大的去背功能,可以轻易的将背景去除,让你影像合成更完美。
功能群组:
1. 外框大师: 以最简单最直觉的方式,快速的将你的影像照片加上外框,外框在此还可以做分类管理。
2. 外框工厂: 让你制作外框的地方,除了常用的图面外框外,还可以制作多图外框喔。
3. 拼图工厂: 让你制作拼图的功能,酷炫功能,还能让小拼块任意移动与旋转。
4. 材质工厂: 方便让你制作材质的功能,让你快速的从一张影像中,撷取出可制作材质的部分。
5. 模板大师: 模板可由任意的物件组成,效果千变万化,是PhotoCap的强项,在此你可以快速套上模板的特效。
6. 相片书功能:4.0版强大的功能,可以让你做出相片书、扑克牌、名片、桌历、月历等应用
7. 照片编辑功能:可对每张载入的照片添加日期、EXIF、外框、签名、浮水印、尺寸裁切,是洗照片不可或缺的功能。
8. 大头照功能:让你制作大头照,其中更包括新版证照规格。大头照还可以多人模式,载入几张照片就排几个人。
9. 缩图页功能:可以产生照片缩图索引页,还可以轻易将指定张数的照片合成一张,如 4 张照片洗ㄧ张 4X6 节省冲洗费。
10. 批次更改档名功能: 让你一次搞定文件名称,档名可以为拍照日期 、 文件日期 、流水号等等 。
11. 批次变更日期功能: 让你变更照片的日期,让你能补救拍照日期错误的困扰,同时也支援修改文件日期。
12. 批次改影像格式功能: 将所有的影像转成你要的格式,比如1000 张的 JPEG 档转成 GIF 档,改格式同时还能改变影像尺寸。
13. 批次影像打印功能: 可以让你一次打印所有你载入的影像,可以单张打印,也可以多张打印。
14. 批次加外框功能:可以让你批次大量的将载入的照片加上外框。
15. 批次加模板功能:可以让你批次大量的将载入的照片加上模板。
目录:
综述
定义编码设计
UI设计
UI设计师研究工具
研究人与界面的关系
研究人
中国现状
发展阶段
部门设立
设计流程确认目标用户
采集目标用户的习惯交互方式
提示和引导用户
一致性原则设计目标一致
元素外观一致
交互行为一致
可用性原则可理解
可达到
可控制
未来展望综述
定义 编码设计
UI设计
UI设计师 研究工具
研究人与界面的关系
研究人
中国现状
发展阶段
部门设立
设计流程 确认目标用户
采集目标用户的习惯交互方式
提示和引导用户
一致性原则 设计目标一致
元素外观一致
交互行为一致
可用性原则
可理解 可达到 可控制未来展望展开 编辑本段综述
用户界面
UI = User Interface,用户界面,也称人机界面。是指用户和某些系统进行交互方法的集合,这些系统不单单指电脑程序,还包括某种特定的机器,设备,复杂的工具等。 UI = Unit Interval,单位时间间隔,通常在通信信号的抖动测试中用来表示抖动幅度的单位,表示一个等步信号的两个相邻的有效瞬时之间的标称时间差。 UI = Univ of Iowa,爱荷州大学(美国)。 UI = Unlock Instruction,开锁指令。 UI = Urgent Interrupt,紧急中断。
编辑本段定义
编码设计
软件设计可分为两个部分:编码设计与UI设计。 编码设计大家都很熟悉,但是UI设计还是一个很陌生的词,即使一些专门从事网站与多媒体设计 UI设计
的人也不完全理解UI的意思。UI的本意是用户界面,是英文User和 interface的缩写。从字面上看是用户与界面2个组成部分,但实际上还包括用户与界面之间的交互关系。界面设计,在漫长的软件发展中,界面设计工作一直没有被重视起来。做界面设计的人也被贬义的称为“美工”。其实软件界面设计就像工业产品中的工业造型设计一样,是产品的重要买点。一个友好美观的界面会给人带来舒适的视觉享受,拉近人与电脑的距离,为商家创造卖点。界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计。检验一个界面的标准即不是某个项目开发组领导的意见也不是项目成员投票的结果,而是最终用户的感受。所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果的过程。
UI设计
在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。
编辑本段UI设计师
研究工具
UI设计从工作内容上来说分为3个方向。图 它主要是由UI 研究的3个因素决定的, 其分别是研究工具,研究人与界面的关系,研究人。 研究界面----图形设计师Graphic UI designer 国内目前大部分UI工作者都是从事这个行业。也有人称之为美工,但实际上不是单纯意义上的美术工人,而是软件产品的产品外形设计师。 这些设计师大多是美术院校毕业的,其中大部分是有美术设计教育背景,例如工业外形设计,装潢设计,信息多媒体设计等。
研究人与界面的关系
蓝色代表工具,红色代表关系,绿色代表人
研究人与界面的关系---交互设计师,interaction designer 在图形界面产生之前,长期以来UI设计师就是指交互设计师。交互设计师的工作内容就是设计软件的操作流程,树状结构,软件的结构与操作规范(spec)等。一个软件产品在编码之前需要作的就是交互设计,并且确立交互模型,交互规范。 交互设计师一般都是软件工程师背景居多。
研究人
研究人----用户测试/研究工程师User experience engineer 任何的产品为了保证质量都需要测试,软件的编码需要测试,自然UI设计也需要被测试。这个测试和编码没有任何关系,主要是测试交互设计的合理性以及图形设计的美观性。测试方法一般都是采用焦点小组,用目标用户问卷的形式来衡量UI设计的合理性。这个职位很重要,如果没有这个职位,UI设计的好坏只能凭借设计师的经验或者领导的审美来评判,这样就会给企业带来严重的风险性。 用户研究工程师一般是心理学人文学背景比较合适。 综上所述UI设计师就是:软件图形设计师、交互设计师和用户研究工程师。
编辑本段中国现状
目前在国内UI还是一个相对陌生的词,即便是一些设计人员也对这个词不太了解。我们经常看到一些招聘广告写着:招聘界面美工、界面美术设计师等等。这表明在国内对UI的理解还停留在美术设计方面,认为UI的工作只是描边画线,缺乏对用户交互的重要性的理解;另一方面在软件开发过程中还存在重技术而不重应用的现象。许多商家认为软件产品的核心是技术,而UI仅仅是次要的辅助,这点在人员的比例与待遇上可以表现出来。 但这不是UI设计真正的价值体现,只是UI设计发展的一个必经过程。我们以物质产品手机行业为例,当手机刚刚进入市场的时候不但价格贵的惊人,而且除了通话以外没有什么其他功能。由于当时的主导是技术,所以大家都把精力放在信号、待机时间、寿命等方面,对于产品的造型,使用的合理性很少关心。事过境迁,如今技术已经完全的达到用户的需求,于是商家为了创造卖点,提高争力,非常重视产品的外观设计,除此之外还频频推出短信,彩屏,和铉,彩信,摄像头等等。这样一来产品的美观、个性、易用、易学、人性化等等都成了产品的卖点。软件产品与物质产品的发展是相同的。过去由于计算机硬件的限制,编码设计成为软件开发的代名词,美观亲和的图形化界面与合理易用的交互方式都没有得到充分的重视,实际上这个时期的软件叫作软件程序,而不是软件产品。 现今随着计算机硬件的飞速发展,过去的软件程序已经不能适应用户的要求。软件产品在激烈的市场竞争中,仅仅有强大的功能是远远不够的,不足以战胜强劲的对手。幸运的是在国内一些高瞻远瞩的民族企业已经开始意识到UI给软件产品带来的巨大卖点了,例如金山公司的影霸、词霸、毒霸、网标,由于重视UI的开发与地位,才使得金山产品在同类软件产品中首屈一指。联想软件的UI部门积极开展用户研究与使用性测试,将易用与美观相结合,推出的双模式电脑、幸福系列等成功UI范例,为联想赢得全球消费 PC第三的称号等等、等等.实践证明,各商家只要在产品美观和易用设计方面很小投入,将会有很大产出。其投入产出比,要比在功能领先性开发上的投入大得多。 我们不得不承认现阶段中国在很多领域都与西方发达国家有相当大的差距,如何赶上并超过他们是我们这代人肩负的历史使命。软件产品领域不象物质产品那样存在工艺、材料上的限制,软件产品核心问题就是人。提高软件UI设计师个人能力减小人员上的差距是中国UI发展首要关键的问题。 目前国内各院校还没有设立相对健全的UI设计专业,所以提高UI设计师能力关键在于提供一个良好的学习与交流的资源环境。国内已经有很多交流设计网站,介绍工业设计、平面设计、服装设计、绘画艺术、多媒体flash等,但是UI设计一直没有受到应有的关注,仅仅被放在数码设计或者平面网页设计的一个栏目里,这仅有的资源对培养优秀的设计师是不够的,必须有一个信息快捷、资源丰富、设计水平一流、专业权威的UI设计学习与交流的地方才能适应日益发展的UI设计师们的需求。
编辑本段发展阶段
市场经济需要竞争,竞争就会需要设计来提高产品竞争力。2000年以前国内的UI设计刚开始萌芽,但当时做UI等于做平面设计,基本也体现在网页设计上,后来随着flash的流行,一部分美术设计师开始去思考互动性。到了2002年一些企业开始重视到UI设计的重要性,纷纷把UI部门从软件编码团队里提出来,开始有了专门针对软件产品的图形设计师和交互设计师。2004年以后随着手机,电脑附加软件,MP3等大量产品上市,ID设计就和UI设计越来越紧密了,UI设计也开始被提升到一个新的高度和重视程度。2005年国内的UI设计已经相对成熟了,有了专门的职业分工也出现了很多不错的UI一线设计师与UI设计交流组织。
编辑本段部门设立
随着“UI”热的到来,近几年国内很多从事手机,软件,网站,增值服务等企业和公司都设立了这个部门。还有很多专门从事UI设计的公司也应运而生。软件UI设计师的待遇和地位也逐渐上升。
编辑本段设计流程
确认目标用户
在软件设计过程中,需求设计角色会确定软件的目标用户,获取最终用户和直接用户的需求。 用户交互要考虑到目标用户的不同引起的交互设计重点的不同。 例如:对于科学用户和对于电脑入门用户的设计重点就不同。
采集目标用户的习惯交互方式
不同类型的目标用户有不同的交互习惯。这种习惯的交互方式往往来源于其原有的针对现实的交互流程、已有软件工具的交互流程。 当然还要在此基础上通过调研分析找到用户希望达到的交互效果,并且以流程确认下来。
提示和引导用户
软件是用户的工具。因此应该由用户来操作和控制软件。软件响应用户的动作和设定的规则。 对于用户交互的结果和反馈,提示用户结果和反馈信息,引导用户进行用户需要的下一步操作。
编辑本段一致性原则
设计目标一致
软件中往往存在多个组成部分(组件、元素)。不同组成部分之间的交互设计目标需要一致。 例如:如果以电脑操作初级用户作为目标用户,以简化界面逻辑为设计目标,那么该目标需要贯彻软件(软件包)整体,而不是局部。
元素外观一致
交互元素的外观往往影响用户的交互效果。同一个(类)软件采用一致风格的外观,对于保持用户焦点,改进交互效果有很大帮助。遗憾的是如何确认元素外观一致没有特别统一的衡量方法。因此需要对目标用户进行调查取得反馈。
交互行为一致
在交互模型中,不同类型的元素用户触发其对应的行为事件后,其交互行为需要一致。 例如:所有需要用户确认操作的对话框都至少包含确认和放弃两个按钮。 对于交互行为一致性原则比较极端的理念是相同类型的交互元素所引起的行为事件相同。但是我们可以看到这个理念虽然在大部分情况下正确,但是的确有相反的例子证明不按照这个理念设计,会更加简化用户操作流程。
编辑本段可用性原则
可理解
软件要为用户使用,用户必须可以理解软件各元素对应的功能。 如果不能为用户理解,那么需要提供一种非破坏性的途径,使得用户可以通过对该元素的操作,理解其对应的功能。 例如:删除操作元素。用户可以点击删除操作按钮,提示用户如何删除操作或者是否确认删除操作,用户可以更加详细的理解该元素对应的功能,同时可以取消该操作。
可达到
用户是交互的中心,交互元素对应用户需要的功能。因此交互元素必须可以被用户控制。 用户可以用诸如键盘、鼠标之类的交互设备通过移动和触发已有的交互元素达到其它在此之前不可见或者不可交互的交互元素。 要注意的是交互的次数会影响可达到的效果。当一个功能被深深隐藏(一般来说超过4层)那么用户达到该元素的几率就大大降低了。 可达到的效果也同界面设计有关。过于复杂的界面会影响可达到的效果。(参考简单导向原则)
可控制
软件的交互流程,用户可以控制。 功能的执行流程,用户可以控制。 如果确实无法提供控制,则用能为目标用户理解的方式提示用户。
编辑本段未来展望
软件UI 设计应该属于ID(工业产品设计)的一个特殊形式,只是针对的材质有所不同。但随着智能化电子产品的普及,带有液晶屏显示的产品将越来越多。也就意味着越来越多的产品设计需要软件UI设计。 随着科技的发展,不久的将来所有的产品会组成一体,变成一个无处不在的电脑,这个电脑控制着用户的所有家用产品和资料。用户只要有自己的一个账号,就可以通过任何一个产品来控制所有其它产品,而所有的产品都具有终端的功能。而这个终端操作的基本形式就是软件的UI设计。 产品设计由物质设计向非物质设计转变已经开始了,而且必将成为未来产品设计的主流,一个UI大时代即将到来。
java实现缓存技术:
2,java实现缓存技术,有时候我们需要将一些数据缓存起来,什么时候使用单例模式来构建缓存控制器好?什么时候直接使用session好?还有什么情况下使用一些开源的缓存框架?例:OsCache,JbossCache等。假如我有七、八张表,每张表只有一两条数据;在一个流程开始的时候,例:创建一个营销任务(共有七个步骤)的时候,每个步骤会根据客户输入的数据,填充到一张表中,在营销任务最后一个环节保存任务的时候,读取前面几个步骤中保存的数据,更新到数据库中。这时候是使用单例好还是使用缓存框架OSCache好?
九,内存优化
你的手机属于低运存,第三方软件安装多了,就会造成运作不流畅。你可以下载“安卓优化大师”进行全面的清理。如果觉得这个软件占内存,那建议你选择“FMR Memory Cieaner”系统优化软件,此软件体积小,仅占用内存260KB,而且清理效果特别明显。 手机CPU是忽高忽低,这个属于正常。(建议吧GO桌面换成“点心桌面”,占内存适中,而且可以使用仿苹果界面等,也同样自带系统清理功能)十,图片处理PhotoCap 4.0 简介:(软件不到10M)
PhotoCap是数位照片的最佳帮手,也是100%免费的软体,PhotoCap的使命是带给每个家庭美好的回忆,所有功能都非常实用,尤其是有小孩的爸爸妈妈,更是不可错过喔。
主要应用:
可以制作相片书、扑克牌、名片、桌历、月历、冲洗照片、大头照、缩图页,与 添加文字 、小图案 、外框 、对话框等等常见有趣的应用。
修片的应用:
凡举去除红眼 、 黑斑 、 疤痕 、油光、 美化肌肤 、 曝光亮度调整、色偏问题、消除紫边...等等常见的修片功能。
绘图的应用:
PhotoCap相当于初级程度的PhotoShop,因此PhotoShop大部分的基本功能都有,包刮专业影像软体的必备的选取 、 影像功能 、 滤镜 、 图层 ,还有独特的物件功能 ,可以说是功能完善又简单好用的软体。 PhotoCap还提供了简单强大的去背功能,可以轻易的将背景去除,让你影像合成更完美。
功能群组:
1. 外框大师: 以最简单最直觉的方式,快速的将你的影像照片加上外框,外框在此还可以做分类管理。
2. 外框工厂: 让你制作外框的地方,除了常用的图面外框外,还可以制作多图外框喔。
3. 拼图工厂: 让你制作拼图的功能,酷炫功能,还能让小拼块任意移动与旋转。
4. 材质工厂: 方便让你制作材质的功能,让你快速的从一张影像中,撷取出可制作材质的部分。
5. 模板大师: 模板可由任意的物件组成,效果千变万化,是PhotoCap的强项,在此你可以快速套上模板的特效。
6. 相片书功能:4.0版强大的功能,可以让你做出相片书、扑克牌、名片、桌历、月历等应用
7. 照片编辑功能:可对每张载入的照片添加日期、EXIF、外框、签名、浮水印、尺寸裁切,是洗照片不可或缺的功能。
8. 大头照功能:让你制作大头照,其中更包括新版证照规格。大头照还可以多人模式,载入几张照片就排几个人。
9. 缩图页功能:可以产生照片缩图索引页,还可以轻易将指定张数的照片合成一张,如 4 张照片洗ㄧ张 4X6 节省冲洗费。
10. 批次更改档名功能: 让你一次搞定文件名称,档名可以为拍照日期 、 文件日期 、流水号等等 。
11. 批次变更日期功能: 让你变更照片的日期,让你能补救拍照日期错误的困扰,同时也支援修改文件日期。
12. 批次改影像格式功能: 将所有的影像转成你要的格式,比如1000 张的 JPEG 档转成 GIF 档,改格式同时还能改变影像尺寸。
13. 批次影像打印功能: 可以让你一次打印所有你载入的影像,可以单张打印,也可以多张打印。
14. 批次加外框功能:可以让你批次大量的将载入的照片加上外框。
15. 批次加模板功能:可以让你批次大量的将载入的照片加上模板。