摘要
本文探讨了平板电脑应用的设计注意事项,包括用户界面设计、会话长度、适应用户差异化需求、本地化等,并介绍了调试和优化实践。本文还讨论了不同的应用部署方法对应用可用功能的影响。按照本文中的建议,您将能够为使用英特尔® Android* 平板电脑的客户创建独特应用。
简介
英特尔工程师与各种开发人员进行合作,帮助他们增强其面向英特尔 Android 平板电脑的应用。我们看到过许多成功的设计决定。我们将简要分享自身的所见和心得,以期帮助您取得成功。
从概念到设计和实施,针对英特尔 Android 平板电脑的开发人员有机会创建出完全独一无二的应用。开发人员需要考虑各种重要因素,包括概念完整性、有效设计、环境选择和工具选择。本文提出了几项考虑事项,以帮助开发人员充分发掘这类设备的潜力。
您的主要理念是什么?
每款最佳的应用和游戏都有一个核心理念,并能够完美体现这一理念。如果您已将理念细化到实用程序内核或娱乐特性,对理念进行全面探索将帮助您做出多数其他开发决策。如果没有这类明确目的,您推出的应用可能不具备重要特性,让人感觉拙劣、缺乏诚意,从而错过需要出色特性的潜在客户。恰当的概念完整性将帮助您完善设计,避免费力开发用户已从其他应用中获得的功能。
为尽可能多的设备进行设计
平板电脑和智能手机无处不在,并具有多种多样的屏幕尺寸和分辨率。尽管确定目标设备是明智之举,但这仅仅是开始。您的应用应该在理想的目标设备上完美运行,但也应该能够有效扩展至各种平台。为了让较小的屏幕呈现最完美的视效,您应该针对最大的屏幕进行设计,确保应用能够顺畅运行并向下扩展至可视区域。许多方法都支持多种屏幕尺寸;Web 游戏的创建非常简单,即在一个大画布上绘制各种元素并将它绘制到另一个适合屏幕的画布上,或以不同分辨率进行绘制并在 JavaScript* 或 CSS中进行扩展。
图 1:固定尺寸的用户界面元素在较大的平板电脑屏幕上可能显得太小。
另一个考虑事项是,所有的控制功能和文本需要在小屏幕设备上正常运行。有关各种平台的应用设计指南,请参见相关的在线资源。由于 Windows 8 现代设计针对触控屏而创建,因此我们鼓励开发人员学习和遵守现代设计原则和 WinRT 应用指南,因为它们也适用于 Android 设备。
这些规范对于在一般条件实现最佳间距和布局等目的非常有用。每项规范都有其可用之处。您能够充分利用完全掌握的标准、应用和原理,包括打破规则以实现预期效果。
为移动而设计
一般用户查看手机的频率为每天 100-900 次,休闲游戏会话时间持续约 3 分钟,使用场所包括家庭、办公室以及它们之间的任何地方(公共交通工具、餐馆等)。有鉴于此,移动应用和游戏的不同环境对于其可用性会产生重要影响。
开发游戏时,您需要知道游戏会话时间一般为几分钟。这并不意味着禁止开发史诗冒险游戏,只是意味着游戏机制支持用户随时暂停游戏,同时能够方便地恢复游戏。无论这种机制支持关卡选择屏幕爆发式运行沉浸式战斗或谜题,还是能够提供简单的持续暂停/游戏菜单(概述您的游戏操作),多数用户都会随时拿起和放下他们的设备。
同样,用户只有在家中才可能运行应用的完美静音和灯光模式。色彩选择和音效调节等特性可有效确保用户获得出色的游戏体验。
为玩家而设计
如果只是为少数人创建应用,您可以根据他们的需求进行专门设计。不过,多数应用并非如此。通常,应用设计需要为尽可能多的用户提供出色的可用性。
如上所述,多样使用场景(如公共交通工具)会影响应用的可用性。此外,全球还有 3.6 亿人存在听力障碍问题,2.85 亿人存在视力障碍问题,以及 2.80 亿人存在色盲问题,这同样给应用开发带来了巨大挑战。多数需要帮助的用户都已经有了一些解决方案,但他们仍需要我们设计和开发出更出色的产品。如果可以在图像密集型应用添加听觉提示,在游戏语音中添加隐藏字幕,以及添加可识别符号帮助用户区分彩色物体,或添加色盲感知调色板以便所有重要的颜色都能呈现不同亮度,那么任何用户在下载您的产品后有效使用它们的可能性会更高。
本地化是许多游戏和应用面临的一个推广问题,为此,开发人员需要花费更多时间和成本将它们推向更多国家和地区。鉴于每种语言 10000-15000 美元的潜在本地化成本,您应该最大限度减少需要本地化的文本。您的应用使用了适用全球的流行符号以方便各国用户理解吗?您游戏中的角色会用通用的表情符号而非语言表达想法吗?直接与用户的思维而非词汇进行互动,可帮助您在不增加成本的情况下增加潜在受众的数量。
环境多种多样
如果您的应用不会使用现有的游戏引擎,那么您首先需要做出的一个决定便是您的应用使用哪种可执行文件:原生、Web 还是混合。
原生
原生应用在较低层面运行,支持访问更强大的硬件资源,但对于开发和移植到其他平台会造成更多限制。Android 原生开发的最常用语言是 Java,通常采用基本的 Android* SDK(软件开发套件)或 NDK(原生开发套件)进行开发。英特尔® INDE (Integrated Native Development Experience)等工具套件主要用于 Java 和 C++。英特尔 INDE 不仅包含编译器,还包含可帮助您识别和修复应用中性能问题的分析工具。
Web
从浏览器游戏到在线工具,Web 应用具有多种功能并可便捷分发,但缺乏强大性能以及 —— 正如名称所指 —— 通常需要连接互联网才能正常运行。HTML5 和 JavaScript* 是标准的 Web 语言。如果应用仅用作一些服务器端工具的接口,那么这是一个出色的选项;它的缺点在于当每位用户都访问相关服务器时,满足需求就需要更高的托管成本。
混合
如欲充分利用 Web 应用的灵活性和移动设备硬件的强大性能,您可以使用英特尔 XDK(跨平台开发套件)等工具,它们适合借助嵌入在原生包装程序中 Web 技术设计混合应用。上面提到的 JavaScript Web 应用可以导入,使用硬件辅助型 API 调用进行分发,并采用“设备就绪”代码,以在移动平台上创建原生包。
图 2:您选择的可执行文件会影响您和您的客户
选择开发原生、Web 还是混合应用主要取决于预期用途、所需资源和功能,以及开发人员对各种语言的熟悉程度。这种选择最终会决定应用的分发、使用和盈利方式。
轻量设计
用户友好型界面能够走得长远,但设备友好型应用可帮助您获得最大的开发价值。较大的下载大小、难控制的资源使用和不必要的许可都会妨碍游戏的普及和持续使用,以及妨碍客户进行口碑宣传。
支持后续下载“更多文件”可减小初始下载大小。很遗憾,这会让用户感到懊恼,因为这会带来更大的问题,即影响性能,致使无法高效运行各种资产。纹理、模型和音效库代表了文件的大部分要素,并最终需要加载至内容中(否则会造成其他问题),从而拖慢应用的运行速度。在解决根源问题之后,一方面,您的应用将能够更流畅地运行,另一方面,初始和后续下载任务也可大幅减少。
适合许多应用的解决方案是增强可复用性,这种方法最初在过去的内存受限开发中得到了广泛使用。使用相同的映像和音效以及不同的调色板和掩模可丰富选择,同时最大限度减少所需空间和资源。即使不支持严格的复用,但最大限度减少所需访问文件的数量能够带来明显的性能提升。例如,在关卡加载时,《粘粘世界》可创建专用的纹理地图集,这样即使他处使用的映像资产也可整合到单个资源中。这种性能提升将有助于下一步(即分析和优化)的实施。
处理错误和简化执行
理论上,应用首次运行时能够完美无瑕,无需进行改进。但这不切合实际。在任何比第一个程序“hello world”复杂的应用中,发生错误不可避免。最糟糕的错误不会破坏应用,但会降低其运行速度,即降低性能或增加延迟,从而影响用户体验。同样,重绘和重复缓冲区闲置等情况(虽然不是错误)会消耗性能和电池续航时间。这些方面都是进一步提升应用的着手点。找到这些着手点的最佳方式是使用分析工具和性能分析器。
英特尔® XDK 可在模拟器中提供调试功能,在调试选项卡中提供支持联网 Android 设备的远程调试功能,以及在 分析选项卡中提供性能分析信息。
图 3:英特尔® XDK 能够简化混合应用的开发
未使用英特尔 XDK?英特尔® GPA(图形性能分析器)是一种性能分析工具套件,旨在帮助您找到需改进的次优方面。尽管非常适合强大的 PC 应用,但英特尔® GPA 也可在 Android 应用上运行,是英特尔® INDE 中的重要原生工具之一。
总结
开发移动应用或游戏时需考虑诸多事项。概念完整性对于各种选项的导航和无限创意空间的减少至关重要。每个开发阶段在开始前和结束后都会影响各种考虑事项,因此需要预先考虑好和实施迭代。触控界面、移动视觉和音效设计以及全球化规范能够帮助开发人员周全考虑各种开发事宜。
英特尔® INDE 可为原生应用开发人员提供大量工具。英特尔® XDK 可为开发人员提供全服务的开发、模拟、测试、调试和封装功能套件,从而帮助开发人员提升开发效率。这两种套件都可提供丰富的文档和论坛支持,而且这类支持只会继续增强。
本文所提及的方法和工具都曾被英特尔工程师用于帮助大量应用开发人员,因此极为实用。它们可帮助您尽可能推广自己的应用,让其成为客户生活的必备工具。实现最佳的概念、设计和实施是一项艰巨但“物有所值”的任务。
参考文献
- Android* 游戏引擎https://software.intel.com/zh-cn/android/articles/choosing-the-right-engine-for-your-x86-based-android-game
- Android* SDK http://developer.android.com/sdk/index.html
- Android* NDK http://developer.android.com/tools/sdk/ndk/index.html
- 音频设计挑战赛 (Audio Design Challenges),Gamasutra http://www.gamasutra.com/view/feature/134761/aaalite_audio_design_challenges_.php?print=1
- 失明现状,世界卫生组织http://www.who.int/mediacentre/factsheets/fs282/en/
- 色彩理论应用,UX Matters http://www.uxmatters.com/mt/archives/2007/01/applying-color-theory-to-digital-displays.php
- 色盲http://www.vischeck.com/faq/
- 失聪现状,世界卫生组织http://www.who.int/mediacentre/factsheets/fs300/en/
- 绘制像素并非轻而易举http://phoboslab.org/log/2012/09/drawing-pixels-is-hard
- 游戏本地化手册,Google Books http://books.google.com/books?id=sN5Glp9sLj0C&printsec=frontcover - v=onepage&q&f=false
- 英特尔® GPA https://software.intel.com/en-us/gpa
- 英特尔® INDE https://software.intel.com/en-us/intel-inde
- 英特尔® XDK http://xdk.intel.com/
- 移动释放频率 (Mobile Unlocking Frequency) http://www.dailymail.co.uk/sciencetech/article-2449632/How-check-phone-The-average-person-does-110-times-DAY-6-seconds-evening.html
- 移动游戏会话信息 http://www.bluecloudsolutions.com/articles/mobile-gaming-sessions-now-longer/
- 现代设计原理,MSDN http://msdn.microsoft.com/en-us/library/windows/apps/hh781237.aspx
- GPA 中的重绘可视化 https://software.intel.com/sites/products/documentation/gpa/13.4/win/Overdraw_Visualization.htm
- 支持多个屏幕,Android http://developer.android.com/guide/practices/screens_support.html
- GPA 支持 Android 应用
- WinRT 应用指南,MSDN http://msdn.microsoft.com/en-us/library/windows/apps/hh465424.aspx
- 《粘粘世界》案例研究 https://software.intel.com/zh-cn/android/articles/world-of-goo-stretches-to-android-on-x86
- XCOM 案例研究(仅 UDN) https://udn.unrealengine.com/questions/171391/turbocharging-xcom-an-unreal-optimization.html
- 英特尔® XDK 模拟选项卡 https://software.intel.com/zh-cn/xdkbook/devemulator
- Intel® XDK 调试选项卡 https://software.intel.com/zh-cn/html5/articles/using-the-debug-tab
- Intel® XDK 分析选项卡 https://software.intel.com/zh-cn/html5/articles/using-the-profile-tab
关于作者
Brad Hill 目前担任英特尔开发人员关系部门的软件工程师。Brad 负责调研关于英特尔硬件的新技术,并通过英特尔® 开发人员专区以及在开发人员会议上与软件开发人员分享最佳方法。此外,他还担任学生黑客松的工程总监,负责为全美范围内高等院校的优秀黑客松提供代码运行支持。