在这篇文章里,我们将会讨论构建一个灵活的Android app的方法。其实下面说到的每一点为了阐述的更清楚,可能都会是一篇长长的文章,但是今天我们只是抛砖引玉,给大家展示一个概况。
一、让我们的App可扩展
Android设备有许多的样式和大小,最近的数据显示有600种之多,并且这个数字每天都在增长。构建一个能运行在所有设备上的Android App相当困难,因为它不只需要适应一两个屏幕大小或者固定的一组硬件环境。但所幸Android框架提供了工具,帮助开发人员去对付这个问题,前提是我们能正确的应用它。
一个IOS应用是在特定的坐标上设置像素来完成设计和实施,只要UI看起来OK。但是Android设计者必须考虑每个组件的可扩展性,以及组件和组件之间的关系。
1、建立一个连续统一的整体
像Apple公司,它已经建立了一套实践,即开发人员必须为他们的应用提供两套独立的版本,一个是给iPhone,一个是给iPad。而谷歌也曾经想在Android上推行这种实践,只不过结果并不好看。而谷歌推出的Android ICS4.0却相当靠谱,它可以统一Android系统各个版本,改变Android平板电脑和智能手机分化的状况。实际上,检查一个应用是运行在平板上还是手机上,从技术上来说相当困难,但是在应用运行时检查屏幕尺寸,或者其他的什么特征,却是可行的。
2、响应式Android设计
Web设计人员都知道,我们在构建网站时需要使他能够自适应用户的浏览器,通过测量和移动网站上的组件来实现。这个方法叫做响应式Web设计。同样的原理也可以应用在Android上,当然在Android上,我们并不是去同浏览器绑定。
Android开发人员可以为每种屏幕定义不同的APP布局,系统将会选择最适合它的运行。开发人员定义的布局将会放在APP项目资源树下的不同layout文件夹里。从Android3.2开始,开发人员就可以基于屏幕的像素密度来定义布局了,这个像素密度是独立于屏幕尺寸的。
3、使用Fragments执行响应式设计
Fragments就像是Android UI设计中的积木,它们可以被设计成一个个的独立屏,也可以同其他Fragments一起展示。根据app运行的设备环境,最有效的还是两者结合使用。
二、使我们的app看起来就是Android app的样子
在同样的平台上,app在外观和使用体验上和其他app保持一致是非常重要的。在Android平台上使用一个带有其他平台特征的app应用,将会使用户感到陌生和不愉快。
1、Tabs
在Android app里,tabs总是在屏幕上方。这个约定在谷歌的官方指导手册里被推荐。把tabs放在上面,可以使app扩展到更大尺寸的屏幕上更容易。而将tabs放在一个平板大小的UI界面的底部则没有任何意义。
可能有人会说,在一个大屏幕上来回点击位于上方的tabs可能有点困难,特别是我们只用一个手操作的时候。解决办法是让用户可以在tabs间来回滑动。这种交互模式并不是新出的,但是谷歌推动它在Android app应用里越来越普及。
2、Android UI设计模式可以使用户感到放松
在Android上一些UI模式变得越来越普及,以至于它们都可以规定Android app的外观了。Action bar,一种最流行的模式之一,现在已经是Android核心库的一部分了,它可以应用在Android3.0以上的app中。
一些好的第三方库可以使Action bar应用在老版本的Android app中。ActionBarSherlock就是一个非常稳定的,可以支持多版本的开源Action bar实现。
另外一个流行的UI模式是Dashboard。许多具有复杂功能的app都会使用Dashboard,以便给使用者清楚的展示和访问app里最重要的功能。
三、整合Android上的各个app
Android平台提供了一个强有力的机制去扩展app之间的功能。这个机制叫做“Intents”。大部分移动设备平台上的应用程序都运行在他们自己的沙盒中。他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互。 Android应用程序也是一个沙盒,但是他们能够使用Intents去突破他们的边界互相交流。
例如,你的app告诉系统它可以处理打开图片或者网页,那么,无论什么时候,有另外的app发出了这样一个intent,要求打开一幅图片或者网页,那么用户就可以选择使用你的app去执行这个动作。
Intent也用在同社交网络的集成上。在其他的移动平台上,如果一个app想分享什么到Twitter、Facebook上,它会执行app内部的分享机制,对每一个社交平台都要执行一次单独的分享操作。但是在Android上,它可以变得更容易。一个app可以发布intent,告诉系统它想分享一张图片或者一段文字,用户将被提供一个可以执行这个操作的app列表,如果用户选择了Twitter或者Facebook客户端,这个客户端将会打开它的分享屏幕,而分享屏幕里已经填入了这张图片或者这段文字了。
Intents的使用还有无限的可能性,我们在这里就不赘述了。总的来说,建立一个可扩展的并且功能强大的Android app不是不可能,但是它要求仔细的计划和理解我们的目标平台。一个毫无目标的方法或者仅仅是简单的浏览了其他平台的某个设计,很可能会导致失败。要获得成功的结果,要求我们正确的使用Android工具并且遵循正确的设计方法。编写Android app需要付出很大的努力,但是如果我们按正确的方法做,那它一定能吸引许多的客户。 |