为 Intel® Android 平板电脑开发应用和游戏最佳实践
本文介绍了平板电脑应用的设计注意事项,包括 UI 设计、会话时长、用户差异化处理以及本地化。
Intel® Developer Zone 提供跨平台应用开发的工具和操作指南、平台和技术信息、代码示例以及同行专业知识,助力开发者创新和取得成功。加入我们的社区,获取 Android、物联网、Intel® RealSense™ 技术 和 Windows 相关内容,下载工具,获取开发套件,与志同道合的开发者交流想法,并参与黑客松、竞赛、路演和本地活动。
摘要
本文介绍了平板电脑应用的设计注意事项,包括 UI 设计、会话时长、用户差异化处理以及本地化。文章还探讨了调试和优化实践,以及不同应用部署方法对应用功能的影响。通过本文的建议,您将能够为使用英特尔® 安卓* 平板电脑的客户打造一款与众不同的应用。
引言
英特尔工程师与众多大小开发者合作,为他们的应用在英特尔® 安卓平板电脑上进行了优化。我们看到了许多成功的案例。我们希望通过分享这些经验和教训,也能帮助您取得成功。
从概念构思、设计到最终实现,面向英特尔® 安卓平板电脑的开发者有机会让他们的应用脱颖而出。概念完整性、有效设计、环境选择和工具选择是开发者需要权衡的诸多重要方面。本文提出了一些需要注意的方面,以充分利用这些设备潜力。
您的伟大想法是什么?
最优秀的应用和游戏都围绕一个核心理念,并完美地服务于该理念。如果您的想法已经提炼到其实用性或趣味性的核心,深入探索该核心将指导您的大部分其他开发决策。如果您没有这样的宗旨陈述,您可能会最终得到一个功能杂乱、不相关、令人生厌的产品,并被用户选择功能单一但表现出色的应用所取代。通过恰当的概念完整性,您将能发现设计增强的机会,并避免在用户已从其他应用获得的功能上浪费开发精力。
为尽可能多的设备设计
平板电脑和智能手机无处不在,屏幕尺寸和分辨率各不相同。虽然考虑目标设备是明智的,但这只是开始。您的应用应该在理想目标设备上完美运行,并能良好地适应各种平台。为了在较小的屏幕上忠实地呈现您的视觉效果,请以应用将运行的最大屏幕为设计基准,然后向下缩放至可见区域。有多种方法支持多种屏幕尺寸;对于基于 Web 的游戏,可能很简单,只需将所有内容绘制到一个大画布上,然后根据屏幕大小自适应地将该画布绘制到另一个画布上,或者以不同的分辨率进行绘制,并在 JavaScript* 或 CSS 中进行缩放。
另一个考虑因素是,所有控件和文本在小屏幕上的使用仍然需要可行。网上提供了许多关于各种平台设计指南的重要资源。由于 Windows 8 的现代设计是为触摸屏设计的,我们鼓励开发者学习并遵循现代设计原则和WinRT 应用指南,因为它们同样适用于安卓设备。
这些约定在正常情况下对于最佳间距和布局非常有用。每个约定都有其存在的合理理由。通过理解标准、应用和原理,您可以充分利用它们——包括有意打破规则以达到期望的效果。
为移动设备设计
考虑到普通用户每天查看手机的次数高达100-900 次,休闲游戏会话时长约为3 分钟,且使用场景从家中到工作场所,以及途中(公共交通、餐厅等)的各种环境,移动应用和游戏的多样化环境对其可用性有着重大影响。
如果您正在制作一款游戏,游戏会话的一般时长为几分钟。这并不意味着禁止宏大的史诗冒险,但确实意味着需要有一种机制,允许用户随时退出,并且在重新进入游戏时几乎不会遇到任何麻烦。无论这种机制是短暂而引人入胜的战斗或带有选择关卡界面的解谜,还是像一个持久的暂停/游戏菜单那样总结您在游戏中的进度,大多数用户都需要能够随时拿起和放下设备的能力。
同样,如果您的应用需要绝对的寂静和光线,那么除了在家中,很少有人能在其他地方使用它——甚至在家中使用也值得怀疑。从颜色选择到声音调节的方方面面,都对确保用户获得良好体验至关重要。
为人们设计
如果您处于为极少数人群创建应用的特殊情况,您可以根据他们的需求进行定制设计。大多数应用没有这种奢侈。设计应尽可能地为最多的人提供可用性。
除了之前提到的公共交通等情境环境外,全球有3.6 亿听力障碍者,2.85 亿视力障碍者,以及2.8 亿色盲者。大多数需要帮助的用户已经拥有某种解决方案,但这在设计和开发中仍需引起重视。如果有可能为图像密集型应用添加声音提示,为游戏语音添加字幕,在区分彩色物体时使用可识别的符号,或者使用色盲用户可感知的调色板(所有重要颜色在亮度上都有差异),这些考虑因素将大大有助于确保任何下载您产品的用户都能使用它。
本地化是另一个许多游戏和应用不得不花费开发时间和金钱来拓展到其他国家的领域。每个语言的潜在成本为1 万到 1.5 万美元,您应该尽量减少需要本地化的文本。您的应用能否通过全球通用的符号来传达信息?您游戏中的角色能否使用通用表情符号而不是文字来交流?与用户的词汇量相比,更直接地与用户大脑互动,每向前迈出一步,都将免费增加您的潜在受众。
环境无处不在
如果您的应用不打算使用现有的游戏引擎,那么最初的实现决策之一是您的应用将采用哪种可执行文件:原生、Web 还是混合。
原生
原生应用在底层工作,允许访问更强大的硬件资源,但也对开发和其他平台移植施加了额外的限制。原生安卓开发最常用的语言是 Java,通常通过基础的Android* SDK(软件开发工具包)或NDK(原生开发工具包)。Intel® INDE(集成原生开发体验)等工具套件专注于 Java 和 C++。Intel INDE 不仅包含编译器,还包含分析工具,可帮助您识别和修复应用中的性能问题。
Web
从浏览器游戏到在线工具,Web 应用功能多样且易于分发,但通常缺乏强大功能,并且如名称所示,通常需要互联网连接才能运行。HTML5 和 JavaScript* 是标准。如果应用只是作为服务器端工具的接口,这是一个很好的选择;缺点是所有用户都将访问这些服务器,从而增加托管成本以满足需求。
混合
为了利用 Web 应用的灵活性以及移动设备硬件的强大功能,Intel XDK(跨平台开发工具包)等工具非常适合创建混合应用——将 Web 技术嵌入原生包装器中。上述相同的 JavaScript Web 应用可以被导入,添加利用硬件的 API 调用,并使用“设备就绪”代码来创建移动平台上的原生包。
选择原生、Web 还是混合应用,很大程度上取决于预期的用途、所需的资源和功能,以及开发者对各种语言的熟悉程度。这个决定反过来又决定了应用如何分发、使用和盈利。
谨慎行事
用户友好的界面很重要,但设备友好的应用占用空间是充分利用开发成果的必要条件。笨重的下载大小、不受控制的资源使用以及不必要的所需权限都可能成为用户入门或继续使用的障碍(并阻碍客户的口碑传播)。
通过后续的“附加文件”下载可以减小初始下载大小。不幸的是,这可能会惹恼用户,并暗示一个可能也会影响性能的更大问题:对臃肿资产的处理不当。代表大部分文件大小的纹理、模型和声音库最终需要加载到内存中(如果不是这种情况,则存在其他问题),这将减慢您的应用速度。通过解决根本原因,不仅您的应用运行得更流畅,初始和后续的下载也可以显著减少。
许多应用的解决方案是采用一种注重可重用性的方法,这种方法在内存受限的早期开发时代就已经开创。使用相同的图像和声音,但带有不同的调色板和蒙版,可以提供必要的视觉多样性,同时最大限度地减少所需的空间和资源。即使严格的重用不是一个选项,最大限度地减少需要访问的文件也将提供可衡量的性能提升。例如,《粘粘世界》在加载关卡时创建了临时的纹理图集,因此即使在其他地方使用的图像资源也会合并成一个单一资源。这种性能提升将在下一步得到回报:分析和优化。
修复 Bug 并优化执行
在理想情况下,您的应用将第一次就能完美运行,无需改进。但现实并非如此。对于比“Hello World”更复杂的任何应用程序,不可避免地会有 Bug。最糟糕的 Bug 不会使您的应用崩溃,但只会降低其速度,无论是性能还是延迟,都会影响用户体验。同样,像过度绘制和未使用的重复缓冲区——尽管不是 Bug——也会消耗性能和电池寿命。这些都是进一步改进应用的潜在机会。发现这些机会的最佳方法是使用分析工具和性能分析器。
Intel® XDK 在模拟器中提供调试功能,在调试选项卡中提供连接安卓设备的远程调试功能,并在配置文件选项卡中提供性能分析信息。
不使用 Intel XDK?Intel® GPA(图形性能分析器)是一套性能分析工具,旨在帮助您识别需要改进的次优领域。虽然非常适合高性能 PC 应用,Intel® GPA 也适用于安卓应用,在 Intel® INDE 的其他原生工具中占有一席之地。
摘要
开发移动应用或游戏时需要考虑的因素很多。概念完整性是驾驭无数选项和缩小无限创意空间的关键。开发的每个方面都会影响其前后环节,强调了预见性和迭代的必要性。触摸界面约定、移动视觉和声音设计以及全球化等提供了很好的起点和思考方向。
Intel® INDE 为原生开发者提供了大量的工具。Intel® XDK 通过一套完整的开发、仿真、测试、调试和打包功能,帮助 Web 开发者加入其中。两者都拥有充足的文档和论坛支持,并且这些支持将持续增长。
本文介绍的方法和工具源自英特尔工程师在帮助众多应用开发者过程中学到的经验。它们将帮助您最大限度地提高您的应用成为客户生活中流行、珍贵的一部分的机会。追求最优的概念、设计和实现是一项极其艰巨但最终非常有益的工作。
参考文献
- Android* 游戏引擎 https://software.intel.com/en-us/android/articles/choosing-the-right-engine-for-your-x86-based-android-game
- Android* SDK https://developer.android.com.cn/sdk/index.html
- Android* NDK https://developer.android.com.cn/tools/sdk/ndk/index.html
- 音频设计挑战,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 图书 http://books.google.com/books?id=sN5Glp9sLj0C&printsec=frontcover - v=onepage&q&f=false
- Intel® GPA https://software.intel.com/en-us/gpa
- Intel® INDE https://software.intel.com/en-us/intel-inde
- Intel® XDK http://xdk.intel.com/
- 手机解锁频率 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 https://developer.android.com.cn/guide/practices/screens_support.html
- 将 GPA 用于安卓应用 适用于安卓应用
- WinRT 应用指南,MSDN http://msdn.microsoft.com/en-us/library/windows/apps/hh465424.aspx
- 《粘粘世界》案例研究 https://software.intel.com/en-us/android/articles/world-of-goo-stretches-to-android-on-x86
- 《幽浮》案例研究(仅限 UDN) https://udn.unrealengine.com/questions/171391/turbocharging-xcom-an-unreal-optimization.html
- Intel® XDK 模拟选项卡 https://software.intel.com/en-us/xdkbook/devemulator
- Intel® XDK 调试选项卡 https://software.intel.com/en-us/html5/articles/using-the-debug-tab
- Intel® XDK 配置文件选项卡 https://software.intel.com/en-us/html5/articles/using-the-profile-tab
关于作者
Brad Hill 是英特尔开发者关系部门的一名软件工程师。Brad 致力于研究英特尔硬件上的新技术,并通过 Intel® Developer Zone 和开发者大会与软件开发者分享最佳实践。他还是学生黑客松的工程总监,在美国各地的高校举办“为公益而编程”黑客松活动。