﻿﻿<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sun, 08 Nov 2009 13:13:15 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/zh-cn/articles/mobility/all/feed" rel="self" type="application/rss+xml" />
    <title>英特尔软件网络 articles FEED</title>
    <link>http://software.intel.com/zh-cn/articles/mobility/all</link>
    <description></description>
    <language>zh-cn</language>
    <item>
      <title>英特尔® 凌动™ 处理器开发人员指南（第 2 部分，共 4 部分）</title>
      <description><![CDATA[ 作者：Nancy Nicolaison<br /><br /><span class="sectionHeading">简介：选择传统代码，快速成功地移植到移动设备</span>
<p><br />在我的上一篇文章中，我回顾了许多开发用于 MID 类设备，特别是此类采用英特尔® 凌动™ 处理器的设备的出色应用的方法。在本文中，我将更加关注您在决定将现有 x86 应用移植到英特尔® 凌动™ 处理器平台时所需考虑的问题。</p>
<p>纵观针对 MID 类设备的新闻稿、技术评论和厂商定位，可以说无论在技术方面还是从消费者的角度来看，都没有人准确或完整地定义此类设备可能占有的空间。即使如此，在当前低迷的全球经济形势下，对于这些设备的需求仍在令人惊叹地持续增长，这主要是因为其作为移动连接解决方案具有出色的经济性。这便使开发人员陷入了进退两难的境地。尽管 MID 类设备能够带来明显的创新机会，然而很难在不成熟的市场中做出目标平台选择。然而，在决定应将哪些传统代码移植到采用英特尔® 凌动™ 处理器的设备时，您需要提出大量的基本问题。</p>
<p>以下是您在确定哪些传统应用最适合进行移植时所需考虑的一些主要问题：</p>
<b><br />#1: 在您应用的使用案例场景中，有没有什么事物可能成为标准？ </b>
<p><br />有一句古训：水涨众船高。在技术领域，这股潮流始终是标准。尽管标准流程通常由众多业界公司协力完成，然而只有在一家主要公司主动提出演进远景，并能够通过财务资源和市场份额为其提供支持时，标准的基础才会浮出水面。最后，对于标准，数字、品牌推广和前景展望都具有至关重要的意义。英特尔® 凌动™ 处理器与英特尔® x86 传统代码库涵盖了上述三个因素：</p>
<ul>
<li>实际上，拥有现有台式机或笔记本电脑应用的每个重要用户均可享有 x86 传统代码库。</li>
<li>x86 目标开发人员社区的技能与知识资产深入、广泛且经久耐用，而英特尔® 凌动™ 处理器在众多厂商和外形中的普遍部署为企业 MID 开发人员创造了深入广泛的市场。</li>
<li>在电池使用时间方面，英特尔® 凌动™ 处理器可提供卓越的性能，从而为消费者带来全新的互连和移动生活方式。 </li>
</ul>
<p> </p>
<b>#2: 现有 x86 代码库中的哪些业务流程和使用案例能够为迅速开发英特尔® 凌动™ 处理器类设备提供最理想的移植备选方案？ </b>
<p><br />从解决方案设计者的角度来看，采用英特尔® 凌动™ 处理器的移动设备可作为参与互连移动工作方式的架构入口，以及扩展现有业务流程范围的高度灵活的个人工具。</p>
<p>在您目前所知的解决方案背景中，“移动”意味着什么？例如，如果“移动”意味着“互连”，那么您便需要考虑 MID 超越电话的优势所在。然而，如果“移动”意味着超便携访问大型计算设备和复杂的客户机/服务器功能，则您便需要考虑笔记本电脑或上网本的便携性为何不能胜任。您需要确定，哪些工作是 MID 类设备能够执行，而电话所无法执行的。<br /><b><br /><br />#3: 评估现有 x86 代码库资产移植潜力的协议是什么？ </b> <br /><br />在低功耗设备的世界中，英特尔® 凌动™ 处理器占据着令人称羡的地位，是全球最大的代码库—— x86 传统代码库无可置疑的“继承者”。这意味着企业和机构 IT 战略顾问有望进一步扩展现有业务流程工具的范围并提高其灵活性，并有充分的理由将英特尔® 凌动™ 处理器及其支持的强大、经济的高度移动设备作为目标。也就是说：</p>
<ul>
<li>在许多情况下，客户机服务器应用的现有客户机组件可无缝移植到以 MID 或上网本为用户界面平台的架构。</li>
<li>Linux* 与 XP* MID 以及上网本应用自一开始即可享有成熟、强大、完全集成的安全模式，从而成为实现应用移动化的理想选择。 </li>
<li>现有代码、界面设计与安全模式的广泛再利用，意味着借助采用英特尔® 凌动™ 处理器的设备可以显著缩短开发周期，降低测试成本，并迅速部署移动化应用。</li>
<li>移植 x86 传统应用，是实现现有客户机服务器系统用户界面要素移动化的最安全、稳定且经济的途径。</li>
</ul>
<p>颇具讽刺意味的是，这些实际动机也说明了实现现有解决方案的移动化为何要求领先的 MID 设计师具有敏锐的洞察力和判断力。使用基于英特尔® 凌动™ 处理器的移动设备，如微型笔记本电脑或实际较大的智能电话，会错过此类新设备所蕴含的独特固有的机遇，从而必然会使可用性受到限制。</p>
<p>首先，对现有资产、工作日程、预算和目标进行明确且实事求是的评估。从技术角度来看，为了选择能够在设备上运行良好、按时完成任务并提早带来财务回报的备选方案，您需要能够充满信心地回答以下三个问题：</p>
<b><br /><br />#4: 您针对移动设备优化应用的用户界面部件的难易程度如何？ </b> <br /><br /> 
<ul>
<li><b>移动界面必须简单明了，导航层次必须远比台式机上的层次单一</b>。显然，移动设备应用流程是否一目了然，在很大程度上取决于用于进行选择的方向键、浏览键和回车键。对于用户而言，这要比使用鼠标或键盘输入缓慢得多，并且可能更加令人沮丧。 </li>
<li><b> 需要用户选择的所有项目都应提供一个默认选择</b>。项目选择可确定移动应用流程，而自动选择项目则大大节省了用户的时间，使应用变得更加便利。相比台式机，移动设备的延迟现象更让用户难以容忍，因为移动用户通常必须全神贯注地操作设备。</li>
<li><b>移动应用需要提供上下文敏感（context sensitive）帮助。</b> 如果导航简单明了，用户界面清晰直观，则用户也许能够找到克服重重困难的途径。然而，过于乐观地依靠这些因素是不可取的。最出色的移动应用会提供上下文敏感用户支持。 </li>
</ul>
<p> </p>
<b>#5: 移植备选方案能否根据小型设备限制有效工作？ </b> <br /><br /> 
<ul>
<li><b>屏幕背光照明：</b>在电源管理方面，对移动设备成本最高的操作之一便是使用高对比度的屏幕照明。因此，确定所用移动应用所处的环境是一个重要的考虑事项。外界照明的差异会显著影响移动应用的可用性。如欲了解有关应用级功率优化的更多信息，<a href="http://software.intel.com/en-us/articles/energy-efficient-software/"><b><span style="text-decoration: underline;">请点击这里。</span></b></a></li>
<li><b>最大限度减少对文字的依赖：</b>移动设备上的屏幕空间十分有限，出于电源管理和内存管理的原因，使用本地字体是以电池供电的小型设备的公认最佳实践。一方面，这意味着字体针对即定设备进行了优化；然而另一方面，该字体也许无法充分满足您应用的需求，或者不利于您灵活使用，以弥补任何功能缺陷。如欲了解有关屏幕注意事项的更多信息，<a href="http://software.intel.com/en-us/articles/best-known-methods-of-ui-design-for-mid/"><span style="text-decoration: underline;"><b>请点击这里。 </b></span></a></li>
<li><b>内存管理：</b>•	以下两个原因说明了内存管理对于移动应用为何十分重要。首先，显而易见，移动设备的可用内存十分有限，这意味着应用应具备出色的“内存管理能力”，能够在其它应用的内存管理能力不佳时进行自我保护。应用必须小心运用分配策略，当不再需要时尽快放弃内存，并在无法满足分配请求时适当发生故障。其次，应用存储在本地内存中的任何内容都会消耗电力。降低内存利用率通常会减少应用的功耗需求，然而没有一种电源管理策略能够自然应用，并始终如一地带来最佳成效。如欲了解有关内存管理的更多信息，<a href="http://software.intel.com/en-us/articles/keeping-memory-in-mind/" target="_blank"><span style="text-decoration: underline;"><b>请点击这里。 </b></span></a></li>
<li><b>用户界面审核：</b> •	必须就能否适应小型屏幕这一点对应用进行评估。往往有必要对用户界面（UI）进行重新设计，以便使应用适应 MID 设备。这是一个关键创新领域：新设计也许能够更充分地利用 MID 平台，而非努力迫使现有应用去“适应”MID 平台。如欲了解有关 UI 注意事项的更多信息，<b> </b><a href="http://software.intel.com/en-us/articles/best-known-methods-of-ui-design-for-mid/"><span style="text-decoration: underline;"><b>请点击这里。</b></span></a></li>
</ul>
<b>#6: 您的 x86 传统代码是否实施了关注点分离（separation of concerns）原则，以便用户界面要素能够清楚地区别于业务流程逻辑和后端基础设施？ </b>
<p><br />在最理想的情况下，如果严格遵守关注点分离原则，则合理设计的 x86 传统代码能够极其迅速地移植到采用英特尔® 凌动™ 处理器的设备。通过将演示层与业务逻辑和服务器端基础设施完全分离，可以显著降低重新编码和测试代码的成本，然而开发人员仍需考虑一个新的实际问题：应用必须能够适当处理未连接状态，无论该状态是由用户还是应用所刻意造成。</p>
<br /><br /><b>#7: 归根结底，关键在于电源管理</b>
<p><br />应用状态管理：某些在台式机上无可厚非的行为对于以电池供电的设备来说却无法容忍。通常而言，任何使处理器脱离闲置状态的行为都会产生惊人的电费。轮询服务器便是这种不当行为的一个很好的例子：设备必须跟踪计时器，发送一系列询问（通常不会收到有用的答复），并维持持续连接的开销。对于大多数采用英特尔® 凌动™ 处理器的设备而言，连接状态下的电池使用时间约为未连接状态下电池使用时间的一半。此外，处理器“飞速旋转”（Spinning）也会大幅减少电池使用时间。如果需要经常更新，则将处理器设置为从服务器端进行“更换”（push）会节能得多。</p>
<p>节约使用设备资源：除了天线和处理器之外，亮出屏幕也会消耗大量的电池电量。屏幕亮度在此是最明显的注意事项，但还有其它几个操作在经过优化后能够达到更佳效果，包括：</p>
<ul>
<li><b>优化应用图像：</b> 目前可借助几种开放源代码实用程序来执行此项工作，可对图像加载时间和应用节能性能产生非常积极的影响。<a href="http://pmt.sourceforge.net/pngcrush/"><span style="text-decoration: underline;">Pngcrush </span></a> 是一种 MSDOS、UNIX* 或 LINUX* 命令行实用程序，可借助各种有损耗的过滤方法来压缩 PNG 文件，或者完全删除不需要的 PNG 大文件。 </li>
<li><b>尽量使用经过优化的矢量图形：</b> 尽量使用经过优化的矢量图形：经过简化和优化，以适应小型屏幕要求的位图图形不可能产生令人愉悦的感观效果。此外，尽管您可能的确只下载一次便存储了这些图形，然而它们可能会大大扩充您必须支持的本地存储的容量。另一方面，优化的矢量图形在每次显示时都必须重新刷新屏幕，然而在经过简化之后，它们可为用户显示更加“清晰美观的”图像，并显著减少本地存储开销。 </li>
<li><b>展开具有确定性的循环：</b>展开循环可将指定目标代码段中的指令数量减少达一半。大多数优化编译器都有一个开关，您可以对其进行设置，从而以透明的方式达到这一效果。尽管展开循环会产生更多代码，但却可以显著降低处理器占用率。截至目前，<a href="http://software.intel.com/en-us/articles/atom-optimized-compiler/"><span style="text-decoration: underline;">英特尔® 编译器</span></a>一直是英特尔® 凌动™ 处理器最有效的优化编译器，能够透明地提供这一功效。 </li>
<li><b>使用整数运算而非浮点运算：</b>在评估需要移植的代码时，对所有数字数据结构进行分析，了解如何能够避免使用浮点数据。整数运算需要的存储容量和产生的处理开销均远远低于浮点运算。</li>
</ul>
<p><b> </b></p>
<span class="sectionHeading">总结：</span>
<p><br />迅速、成功且经济地在英特尔® 凌动™ 处理器类移动设备上部署应用，主要在于仔细选择需要移植的现有 x86 应用。最理想的备选方案应具备以下的大部分特性：</p>
<ul>
<li>源代码实施关注点分离</li>
<li>不过份依赖于细节图示</li>
<li>可接受异步数据更新</li>
<li>不需要始终保持连接例如，应用可执行弥补策略，例如在离线，和/或批处理上传和下载时对本地数据进行高速缓存。</li>
<li>通过简单明了的导航层次，提供令人满意的用户体验</li>
<li>针对外界照明、用户交互模式和会话持续时间的可预测的使用案例</li>
</ul>
<p><b> </b></p>
<b>本系列文章其它部分的链接：<br /><br /></b>
<p>第一部分	<a href="http://software.intel.com/zh-cn/articles/developers-guide-to-atom-part-1-of-4/">全新类型的互联网终端</a></p>
<p>第二部分	选择移植的备选目标</p>
<p>第三部分	<a href="http://software.intel.com/zh-cn/articles/developers-guide-to-atom-part-3-of-4/">选择优化的备选目标</a></p>
<p>第四部分	<a href="http://software.intel.com/zh-cn/articles/dgta-part-4-of-4/">调试指南</a></p>
<p><br /><br /><span class="sectionHeading">作者简介<br /></span><br />Nancy Nicolaisen，移动和嵌入式设备技术领域的文章作者、研究人员和资深软件开发人员。她所撰写的专题文章、专栏和分析报告经常被发表于世界各国的出版物，其中包括《BYTE》、《PC Magazine》、《Windows Sources》、《计算机产品导购》（Computer Shopper）、《Dr. Dobbs Journal of Software Engineering》、《Microsoft Systems Journal》等；她目前共发表了三部专著：《Making Windows Portable：Porting Win32 to Win CE》（John Wiley &amp; Sons 出版公司，2002 年）；《The Practical Guide to Debugging 32 Bit Windows Applications》（McGraw Hill 出版社，1996 年）；《The Visual Guide to Visual C++》（Ventana Press，1994 年），现被译为 5 种语言。2007 年，她在名为“设计、构建和管理无线网络”（Designing, Building and Managing Wireless Networks）的 Microsoft Professional Education 课程的开发工作中担任技术顾问。Nicolaisen 女士目前的研究重点是开放源代码技术与移动、嵌入式和无线设备发展趋势。</p> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/developers-guide-to-intel-atom-part-2-evaluating-x86-applications-as-candidates-for-atom-platform-optimization</link>
      <pubDate>Thu, 30 Jul 2009 22:08:45 -0700</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/developers-guide-to-intel-atom-part-2-evaluating-x86-applications-as-candidates-for-atom-platform-optimization#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/developers-guide-to-intel-atom-part-2-evaluating-x86-applications-as-candidates-for-atom-platform-optimization</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>基于Adobe* Air*的MID应用程序开发</title>
      <description><![CDATA[ <br />
<div class="Section1">
<div class="sectionHeading">摘要</div>
<p>本文将简要介绍在Moblin V1.0下开发Adobe AIR的应用程序。它包括如何安装和使用Adobe AIR 开发环境。另外，使用一个实例说明开发Adobe AIR应用程序的基本步骤，特别是针对MID平台的应用开发。</p>
<p> </p>
<div class="sectionHeading">1. Adobe AIR简介</div>
<p>Adobe* AIR* 是一个可以把Web应用程序本地化的平台，可以使我们随时使用自己喜欢的Web应用程序。通过Adobe AIR 编译的Web应用程序可以脱离浏览器运行在桌面计算机中，并且可以使Web应用程序像桌面应用程序一样的简单易用。 <br />Adobe* AIR* 是一个跨系统应用软件平台，他允许开发人员使用HTML、AJAX、Adobe Flash* 或者Adobe Flex* 技术在桌面环境实现“丰富互联网应用程序”的开发。AIR允许开发者使用他们熟悉的开发工具，比如Adobe Dreamweaver* CS3、Flex Builder™ 3、Flash CS3 Professional或者任何文本编辑器来创建他们的应用程序，并可以轻易的使开发好的应用程序实现跨平台的安装和使用。</p>
<p>Adobe AIR的应用程序开发包括两个重要的工具：</p>
<p>1) Adobe AIR runtime: 它是编译“丰富互联网应用程序”的跨平台运行时环境，使用Adobe Flash、Adobe Flex、HTML或Ajax的Web应用程序可以被编译成桌面应用程序。</p>
<p>2) Adobe AIR SDK: Adobe AIR应用程序的开发环境，它包含开发、测试需要的基本的库文件和API，同时还包含两个重要的工具“adl”开发调试工具和“adt”加密编译工具。</p>
<p> </p>
<div class="sectionHeading">2. AJAX简介</div>
<p>AJAX (Asynchronous JavaScript and XML)，是用来开发交互式Web应用程序和丰富互联网应用程序的一组技术。使用Ajax，Web应用程序可以与服务器在后台进行异步通讯而不影响应用程序的运行和现有页面的显示。Ajax的应用已经引发交互式动态网页的使用率增长迅速。这个技术可以使Web应用程序更加人性化，可用性与移植性因此而增强，使Web应用程序更加接近于桌面应用程序一样美观易用。</p>
<div class="sectionHeading">3. 安装和运行“Adobe AIR Application runtime”</div>
<p>Adobe* AIR™ runtime 让开发者使用已有的Web开发技术脱离浏览器创建可以应用于多种操作系统的“丰富互联网应用程序”。</p>
<p>3.1 下载“Adobe AIR Application runtime”</p>
<p>从下面网址下载“Adobe AIR Application Installer”的Linux版本： <br /><a href="http://get.adobe.com/air/otherversions/">http://get.adobe.com/air/otherversions/</a>.</p>
<p>3.2 安装“Adobe AIR Application runtime” <br />在shell中运行下载的二进制文件，安装后文件系统中会增加 “/opt/Adobe AIR Application Installer” 这个路径来存储“Adobe AIR Application runtime”</p>
<p>3.3 运行“Adobe AIR Application runtime” <br />安装以后，在“/opt/”下会出现一个“Adobe AIR Application Installer”文件夹，可以在桌面创建一个链接到“Adobe AIR Application Installer”，或者在shell中运行“Adobe AIR Application Installer”程序文件。</p>
<p> </p>
<div class="sectionHeading">4. 安装和运行Adobe AIR应用程序</div>
<p> </p>
<p align="left">4.1 AIR包 <br />下载以“air”为扩展名的AIR包文件，下载时需注意发行版本是否适用于当前系统中安装的“Adobe AIR Application Installer”版本。 <br />安装AIR应用程序 <br />1) 运行Adobe AIR Application Installer并且选择已下载的“AIR”包。</p>
<p> </p>
<p align="center"><img title="air-01.png" src="http://software.intel.com/file/15152" alt="air-01.png" width="719" /><br />图 1. 选择“AIR”安装包。</p>
<br />2) 点击“安装”按钮开始安装“AIR”包。 <br />
<p align="center"><img title="air-02.png" src="http://software.intel.com/file/15153" alt="air-02.png" /><br />图 2. 安装包信息。</p>
<br />3) 选择安装的路径和设置相关信息，然后点击“继续”按钮。 <br />
<p align="center"><img title="air-03.png" src="http://software.intel.com/file/15154" alt="air-03.png" /><br />图 3. 选择路径和设置</p>
<br />安装以后，通常会在桌面建立一个Adobe AIR应用程序的快捷方式，双击可以启动这个应用程序，如果没有在桌面上建立快捷方式，也可以通过shell和安装时设置的路径找到这个程序的可执行文件，在shell中直接运行。
<p> </p>
<div class="sectionHeading">5. 使用AIR SDK创建一个基于HTML的AIR应用程序</div>
<p> </p>
<p>下面通过一个基于HTML的实例，编写一个“Hello Word”应用程序，说明Adobe* AIR™是如何工作的。 <br />开始，我们必须先安装runtime并且设置AIR SDK。这里将使用到两个重要工具“AIR Debug Launcher (ADL)”和“AIR Developer Tool (ADT)”。ADL和ADT是在shell下的应用程序，可以在AIR SDK的“bin”目录下找到。 <br />5.1 设置Adobe AIR 程序开发环境</p>
<ol>
<li><ol>
<li>安装和配置Moblin开发环境。 </li>
<li>从http://labs.adobe.com/downloads/air_linux.html 下载AIR SDK。 </li>
<li>在任意位置解压缩下载到的“tbz2”压缩包，如：“/opt/AIRSDK”。 </li>
<li>设置“PATH”： </li>
<li>在“/etc/profile”文件最后添加如下信息：<br />PATH=“$PATH:/opt/AIRSDK/bin”<br />export PATH</li>
<li>重启生效。 </li>
</ol></li>
</ol>
<p>5.2 创建项目所需的文件 <br />每个基于HTML的AIR项目必须包含一个文件程序描述文件——使用XML格式描述程序的元数据和主页。此外，还需要一个JavaScript文件“AIRAliases.js”——用来定义“AIR API”的类、变量和函数。 <br />创建其他的文件：</p>
<ol>
<li><ol>
<li>创建文件夹并命名为HelloWorld，用来包含整个项目。 </li>
<li>创建程序描述文件并命名为HelloWorld-app.xml。 </li>
<li>创建首页文件命名为HelloWorld.html。 </li>
<li>从AIR SDK中复制AIRAliases.js到项目文件夹中。 </li>
</ol></li>
</ol>
<p>5.3 创建AIR程序描述文件 <br />首先用下面的结构创建一个基于XML的程序描述文件：</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<div>
<blockquote>&lt;application&gt;
<pre></pre>
&lt;id&gt;…&lt;/id&gt;
<pre></pre>
&lt;version&gt;…&lt;/version&gt;
<pre></pre>
&lt;filename&gt;…&lt;/filename&gt;
<pre></pre>
&lt;initialWindow&gt;
<pre></pre>
&lt;content&gt;…&lt;/content&gt;
<pre></pre>
&lt;visible&gt;…&lt;/visible&gt;
<pre></pre>
&lt;width&gt;…&lt;/width&gt;
<pre></pre>
&lt;height&gt;…&lt;/height&gt;
<pre></pre>
&lt;/initialWindow&gt;
<pre></pre>
&lt;/application&gt;
<pre></pre>
</blockquote>
</div>
<ol>
<li><ol>
<li>打开并编辑HelloWorld-app.xml。 </li>
<li>添加根元素&lt;application&gt;，包含AIR的程序命名空间：<br /><strong>&lt;application xmlns="http://ns.adobe.com/air/application/1.5"&gt;</strong>命名空间最后的“1.5表示适用于这个应用程序的AIR runtime的版本。 </li>
<li>添加元素&lt;id&gt;：<br /><strong>&lt;id&gt;examples.html.HelloWorld&lt;/id&gt; </strong>这个发布id将唯一的标志这个应用程序。官方推荐使用以小数点分隔的反向域名格式，例如："com.company.AppName"。这个id同时应用于安装和程序私用的数据文件夹。 </li>
<li>添加元素&lt;version&gt;：<br /><strong>&lt;version&gt;0.1&lt;/version&gt; </strong>帮助用户确定程序的发布和安装版本。 </li>
<li>添加元素&lt;filename&gt;：<br /><strong>&lt;filename&gt;HelloWorld&lt;/filename&gt; </strong>这个名称将被应用于生成可执行程序，安装目录，和其他的程序属性。 </li>
<li>添加元素&lt;initialWindow&gt;并包含以下子元素，这部分用来描述生成应用程序窗口的属性： <br /><strong>&lt;content&gt;HelloWorld.html&lt;/content&gt;</strong> 确定程序启动时第一个装载的页面。<br /><strong>&lt;visible&gt;true&lt;/visible&gt; </strong>设置程序窗口是否立即可见。<br /><strong>&lt;width&gt;400&lt;/width&gt;</strong> 设置窗口的宽度。<br /><strong>&lt;height&gt;200&lt;/height&gt;</strong> 设置窗口的高度。 </li>
<li>编辑后，程序描述文件应该如下所示： </li>
</ol></li>
</ol>
<div>
<blockquote>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
<pre></pre>
&lt;application xmlns="http://ns.adobe.com/air/application/1.5"&gt;
<pre></pre>
&lt;id&gt;examples.html.HelloWorld&lt;/id&gt;
<pre></pre>
&lt;version&gt;0.1&lt;/version&gt;
<pre></pre>
&lt;filename&gt;HelloWorld&lt;/filename&gt;
<pre></pre>
&lt;initialWindow&gt;
<pre></pre>
&lt;content&gt;HelloWorld.html&lt;/content&gt;
<pre></pre>
&lt;visible&gt;true&lt;/visible&gt;
<pre></pre>
&lt;width&gt;400&lt;/width&gt;
<pre></pre>
&lt;height&gt;200&lt;/height&gt;
<pre></pre>
&lt;/initialWindow&gt;
<pre></pre>
&lt;/application&gt;
<pre></pre>
</blockquote>
</div>
<p>这个例子中仅仅展示了少数的程序属性，如果需要了解全部的程序属性，比如：窗口大小、位置、透明度，默认安装路径，关联的文件类型，图标等信息，可以参看官方网站的相关帮助。</p>
<p>5.4 创建程序主页 <br />创建一个简单的HTML页面，这个页面将被当作这个AIR应用程序的主页。</p>
<p>(1) 打开并编辑HelloWorld.html。添加如下代码：</p>
<div>
<blockquote>
<blockquote>&lt;html&gt;
<pre></pre>
&lt;head&gt;
<pre></pre>
&lt;title&gt;Hello World&lt;/title&gt;
<pre></pre>
&lt;/head&gt;
<pre></pre>
&lt;body onLoad="appLoad()"&gt;
<pre></pre>
&lt;h1&gt;Hello World&lt;/h1&gt;
<pre></pre>
&lt;/body&gt;
<pre></pre>
&lt;/html&gt;<br />
<pre></pre>
</blockquote>
</blockquote>
</div>
<p>(2) 在HTML文件的&lt;head&gt;部分载入AIRAliases.js文件：</p>
<div>
<blockquote>&lt;script src="AIRAliases.js" type="text/javascript"&gt;&lt;/script&gt;
<pre></pre>
</blockquote>
</div>
<p>(3) 在AIRAliases script下添加标签，这个标签用来标记onLoad事件中需要执行的JavaScript代码：</p>
<div>
<blockquote>&lt;script type="text/javascript"&gt;
<pre></pre>
function appLoad(){
<pre></pre>
air.trace("Hello World");
<pre></pre>
}
<pre></pre>
&lt;/script&gt;
<pre></pre>
</blockquote>
</div>
<p>appLoad()函数将调用air.trace()。这个信息将会在运行程序时显示在shell中，这是一个用于debug很有用的语句。</p>
<p>(4) 保存文件。</p>
<p>HelloWorld.html内容如下：</p>
<div>
<blockquote>&lt;html&gt;
<pre></pre>
&lt;head&gt;
<pre></pre>
&lt;title&gt;Hello World&lt;/title&gt;
<pre></pre>
&lt;script type="text/javascript" src="AIRAliases.js"&gt;&lt;/script&gt;
<pre></pre>
&lt;script type="text/javascript"&gt;
<pre></pre>
function appLoad(){
<pre></pre>
air.trace("Hello World");
<pre></pre>
}
<pre></pre>
&lt;/script&gt;
<pre></pre>
&lt;/head&gt;
<pre></pre>
&lt;body onLoad="appLoad()"&gt;
<pre></pre>
&lt;h1&gt;Hello World&lt;/h1&gt;
<pre></pre>
&lt;/body&gt;
<pre></pre>
&lt;/html&gt;
<pre></pre>
</blockquote>
</div>
<p>5.5 测试程序 <br />在shell中运行并测试程序，这里需要使用到AIR Debug Launcher (ADL)。ADL可执行程序存放在AIR SDK.的bin文件夹下。 <br />首先打开shell并切换到工程目录下，然后运行下面的语句：</p>
<div>
<blockquote>adl HelloWorld-app.xml
<pre></pre>
</blockquote>
</div>
<p>执行后会运行一个AIR窗口，这个窗口中将会显示刚刚编辑的页面，同时shell中会显示出air.trace()中的信息。</p>
<p>5.6 创建AIR安装包 <br />这个程序被成功运行以后，可以使用ADT程序打包这个应用程序，这个程序将被打包成以air为扩展名的AIR包程序。每个AIR安装程序都是一个包含项目文件的压缩文件。这样的AIR包文件只能通过前面所讲的Adobe AIR runtime安装。 <br />为了确保程序的安全性，AIR的安装包必须使用数字签名。为了开发需要，可以使用ADT或者其他的加密工具生成一个简单的、私有的密钥文件。也可以购买一个商业密钥，如VeriSign、Thawte。如果用户使用了私钥作为AIR的加密文件，安装过程中版权位置会显示“unknown”的发布者。因为私钥仅仅能保证AIR程序文件在安装和使用过程中不被修改。并不能保证其他的应用程序冒充这个私钥而安装到用户的计算机中。在发布的AIR文件中，强烈推荐使用商业性的密钥。 <br /><a></a><a></a></p>
<p>5.6.1 生成密钥 <br />应用下面的语句生成密钥：</p>
<div>
<blockquote>adt –certificate -cn <em>SelfSigned</em> 1024-RSA <em>sampleCert.pfx samplePassword</em>
<pre></pre>
</blockquote>
</div>
<p>ADT可以生成一个存储密钥的文件，并命名为sampleCert.pfx。 <br />这个例子中的斜体字可以替换成用户需要的任意值，密钥的类型必须是1024-RSA或 2048-RSA。</p>
<p>5.6.2 生成AIR安装文件 <br />使用下面的语句生成HelloWorld.air安装程序（在同一行中输入）：</p>
<div>
<blockquote>adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air
<pre></pre>
HelloWorld-app.xml HelloWorld.html AIRAliases.js
<pre></pre>
</blockquote>
</div>
<p>此操作会提示输入密钥文件需要的密码。 <br />HelloWorld.air是ADT程序最终生成的安装文件。HelloWorld-app.xml是程序描述文件。程序描述文件后面的是这个应用程序所需要的其他文件，这个例子中只有两个文件，如果有多个文件，可以使用文件夹包括所需要的全部文件。 <br />执行这个语句之后，会生成AIR包文件，双击可以测试这个包的可执行性和有效性。 <br />（作者声明：本章内容，部分摘自<a href="http://help.adobe.com/en_US/AIR/1.5/devappshtml/">http://help.adobe.com/en_US/AIR/1.5/devappshtml/</a>）</p>
<div class="sectionHeading">6. Adobe AIR应用开发实例</div>
<p>6.1 实例介绍 <br />这个演示程序将会展示更多的AIR功能，并且可以表现Ajax和AIR SDK在AIR编程中的应用。 <br />实例包含4个主要功能：</p>
<ol>
<li>展示Ajax设计的UI<br />制作一个类似于Web应用程序的、可以在本地显示的UI。 </li>
<li>显示网页<br />在标签页中显示网站。 </li>
<li>获取RSS信息<br />获取RSS的地址信息，获取feeds并存储在AIR的数据库中。并且可以在标签页或者浏览器中打开一个RSS链接。 </li>
<li>使用AIR数据库。<br />使用AIR数据库来存储链接信息和对应用程序的设置信息。 </li>
</ol>
<p>6.2 设计和应用的技术 <br />6.2.1 Ajax的应用 <br />UI：使用开源的EXTJS来设计更友好、跟美观的UI。 <br />网络连接：使用JS中的http-request来获取feeds和Web的信息。 <br />6.2.2 Adobe AIR的应用 <br />使用AIR数据库：AIR提供了一个简单的数据库系统，可以支持一些简单的API，并可以被AIR程序快速有效的存取和使用。 <br />6.3 实例中的文件 <br />6.3.1 创建AIR程序描述文件 <br />AIR的程序描述文件是一个像“gcc”中“makefile”文件一样重要的文件，它包括了Adobe AIR编译和运行过程中的全部信息。 <br />如下创建程序描述文件：</p>
<div>
<blockquote>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
<pre></pre>
&lt;application xmlns="http://ns.adobe.com/air/application/1.0"&gt;
<pre></pre>
&lt;id&gt;com.adobe.apollo.samples.fresh&lt;/id&gt;
<pre></pre>
&lt;version&gt;2.1&lt;/version&gt;
<pre></pre>
&lt;filename&gt;Fresh&lt;/filename&gt;
<pre></pre>
&lt;name&gt;Fresh&lt;/name&gt;
<pre></pre>
&lt;description&gt;RSS Reader sample JavaScript application&lt;/description&gt;
<pre></pre>
&lt;copyright&gt;Copyright 2007-2008. Adobe Systems Incorporated. All rights reserved&lt;/copyright&gt;
<pre></pre>
&lt;initialWindow&gt;
<pre></pre>
&lt;title&gt;Fresh - RSS Reader&lt;/title&gt;
<pre></pre>
&lt;visible&gt;false&lt;/visible&gt;
<pre></pre>
&lt;content&gt;fresh.html&lt;/content&gt;
<pre></pre>
&lt;height&gt;480&lt;/height&gt;
<pre></pre>
&lt;width&gt;800&lt;/width&gt;
<pre></pre>
&lt;/initialWindow&gt;
<pre></pre>
&lt;installFolder&gt;AIR Examples&lt;/installFolder&gt;
<pre></pre>
&lt;programMenuFolder&gt;AIR Examples&lt;/programMenuFolder&gt;
<pre></pre>
&lt;icon&gt;
<pre></pre>
&lt;image16x16&gt;fresh/icons/Fresh_16.png&lt;/image16x16&gt;
<pre></pre>
&lt;image32x32&gt;fresh/icons/Fresh_32.png&lt;/image32x32&gt;
<pre></pre>
&lt;image128x128&gt;fresh/icons/Fresh_128.png&lt;/image128x128&gt;
<pre></pre>
&lt;/icon&gt;
<pre></pre>
&lt;/application&gt;
<pre></pre>
</blockquote>
</div>
<p>6.3.2 演示实例中的文件夹</p>
<ol>
<li><ol>
<li>data: 存储“opml”文件，这个文件中存放了一些默认的RSS信息，这个实例也将演示如果按照格式读取文件。 </li>
<li>extjs: 存放EXTJS开源代码的文件夹。 </li>
<li>extjs/css: 层叠式样式表，这个是UI的框架结构。 </li>
<li>extjs/images: UI中用到的图片文件。 </li>
<li>extjs/js: 存储EXTJS的核心代码。 </li>
<li>fresh/css: 存放演示程序的UI框架文件。 </li>
<li>fresh/icons: 存放演示程序的图标文件。 </li>
<li>fresh/images: 存放演示程序用到的图片文件。 </li>
<li>fresh/js: 存放演示程序的核心代码。 </li>
</ol></li>
</ol>
<p>6.3.3 代码文件说明</p>
<ol>
<li><ol>
<li>extjs/js/ext-base.js: 它包含设计UI的核心函数，Ajax的基本UI库。 </li>
<li>extjs/js/ext-all-debug.js: 存放调试和错误信息。 </li>
<li>fresh/js/AboutWindow.js: 控制演示程序中的“关于”对话框的显示和隐藏。 </li>
<li>fresh/js/AddWindow.js: 控制显示添加Web对话框。 </li>
<li>fresh/js/AIRAliases.js: AIR的基本API库，存放如：trace、date、time等等可以被使用的API。 </li>
<li>fresh/js/FeedDatabase.js: 数据库基本操作函数，如创建、插入、修改、删除等。 </li>
<li>fresh/js/FeedGrid.js: 为feeds绘制列表，并关联相关的操作，如鼠标点击、键盘响应等。 </li>
<li>fresh/js/FeedPanel.js: 应用程序的左边栏，包括显示“树”型结构、添加链接、添加文件夹、删除等信息。并且关联右侧的主界面，当点击这部分的链接或者RSS时，主界面中可以显示相应的信息。 </li>
<li>fresh/js/FeedProxy.js: 从RSS链接中分析并获取feeds的信息 </li>
<li>fresh/js/FeedReader.js: 分析feeds的信息。 </li>
<li>fresh/js/FeedWindow.js: 生成Add Feeds窗口。 </li>
<li>fresh/js/File.js: 包含对文件的I/O操作，比如打开、读写、删除等 </li>
<li>fresh/js/Fresh.js: 演示程序的主程序，包含整个UI的框架。 </li>
<li>fresh/js/MainPanel.js: 右侧的主窗口，可以显示网页、feeds等信息。 </li>
<li>fresh/js/OpmlFile.js, OpmlHandler.js: 包含对格式文件的操作函数。 </li>
<li>fresh/js/Preferences.js, PreferencesWindow.js: 控制程序主窗体的显示、移动等信息，并将这些信息存储在数据库中，每次启动程序时会从数据库中读取这些信息，并重新定位窗口。 </li>
<li>fresh/js/RefreshThread.js: 控制读取feeds的网络线程。 </li>
<li>fresh/js/TabCloseMenu.js: 主窗口中的tabbar和tab页面的显示。 </li>
<li>fresh/js/TreeFolderEditor.js: 包含控制左侧树形结构的函数。 </li>
<li>fresh/js/Utils.js: 辅助函数，如字符串操作等。 </li>
</ol></li>
</ol>
<div>
<p>6.4 使用实例 <br />6.4.1 运行/调试 <br />在shell中运行下面的语句：</p>
<blockquote>$ adl application.xml</blockquote>
<div><br />
<p align="center"><img title="air-04.png" src="http://software.intel.com/file/15155" alt="air-04.png" /><br /><em>图</em><em> 4. </em><em>实例的主界面。</em></p>
<br />6.4.2 浏览网页 <br />在左侧单击“Webs”下的任意项目可以在右侧打开一个新的标签页，并打开所选网站。 <br />
<p align="center"><img title="air-05.png" src="http://software.intel.com/file/15156" alt="air-05.png" /><br /><em>图</em><em> 5. </em><em>浏览网页。</em></p>
<br />6.4.3 浏览RSS <br />点击左侧“Lists”中的任意项目，可以在右侧主页面中打开这个RSS并展示它所包含的feeds信息，左下方可以预览一个被选中的feed。 <br />
<p align="center"><img title="air-06.png" src="http://software.intel.com/file/15157" alt="air-06.png" /><br /><em>图</em><em> 6. </em><em>浏览</em><em>RSS</em><em>。</em></p>
<br />6.4.4 添加网址 <br />点击左侧Webs，然后点击“Add Favor”按钮，输入名称和网址，点击“Add”可以添加一个网址。 <br />
<p align="center"><img title="air-07.png" src="http://software.intel.com/file/15158" alt="air-07.png" /><br /><br /><em>图</em><em> 7. </em><em>添加网址。</em></p>
<br />6.4.5 添加RSS <br />点击左侧的“Lists”，然后点击“Add Faver”按钮，输入一个RSS地址，点击“Add Feed”。 <br />
<p align="center"><img title="air-08.png" src="http://software.intel.com/file/15159" alt="air-08.png" /><br /><em>图</em><em> 8. </em><em>添加</em><em>RSS</em><em>。</em></p>
<br />演示实例的基本使用方法如上所示。这个应用实例可以给我们展示通过AIR和Ajax编程出的应用程序，可以简单的使用已有的网站代码，即已有的Web应用程序的源代码，不需要做过多的修改，而且可以通过Ajax的一些成熟的开源代码方便的开发出更为优秀的丰富互联网应用程序。</div>
<p> </p>
</div>
<p> </p>
<div class="sectionHeading">总结</div>
<p>本文介绍了如何安装Adobe Air的开发和调试环境，并且描述了如何编写和调试运行Adobe Air的“Hello World”程序。另外，还应用一个演示实例展示了在Linux/Moblin下基于HTML的Adobe AIR应用程序的开发过程，以及AIR的基本功能——将Web应用程序本地化。可以看出，利用Adobe Air的跨平台优势，可以很容易地为MID开发出丰富的互联网应用。如果想获取更多的关于Adobe AIR的开发信息可以访问： <br /><a href="http://www.adobe.com/products/air/">http://www.adobe.com/products/air/</a>.</p>
<div class="sectionHeading">参考文献</div>
<blockquote>
<p><a href="http://www.adobe.com/products/air/">http://www.adobe.com/products/air/</a></p>
<p><a href="http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html">http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html</a></p>
<p><a href="http://labs.adobe.com/technologies/air/samples/">http://labs.adobe.com/technologies/air/samples/</a><a href="http://moblin.org"></a></p>
<p> </p>
</blockquote>
<div class="sectionHeading"><br />相关代码下载<br /><a onclick="ndownload('http://software.intel.com/file/15161')" href="javascript:void(0)">Demo_AdobeAirApp_Fresh.zip</a><br /><br />关于作者</div>
<p><a href="http://software.intel.com/en-us/profile/137889/"><strong>谢周意</strong></a>：于2005年加入英特尔公司。作为一名应用工程师，他的主要工作内容是MID软件开发支持和使用模式研究，特别是针对Web2.0和新媒体应用的研究。</p>
<p><a href="http://software.intel.com/zh-cn/profile/417812/"><strong>刘国徽</strong></a>：是英特尔中国MID应用支持部门的实习生，于2008年进入英特尔实习，目前在北京大学攻读软件工程硕士学位。</p>
<p> </p>
</div> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/MID-Application-Development-with-Adobe-AIR</link>
      <pubDate>Sun, 22 Mar 2009 07:02:15 -0700</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/MID-Application-Development-with-Adobe-AIR#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/MID-Application-Development-with-Adobe-AIR</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>面向 MID 进行用户界面设计的经验之谈</title>
      <description><![CDATA[ <br />
<div class="Section1">
<div class="sectionHeading">摘要</div>
<p>MID（移动互连设备）是 PC 产品系列的一项最新创新，它具有 PC 的所有功能，但功耗却有明显的降低。鉴于 MID 的功能及用途，在设计用户界面（UI）时需要考虑到多方面的因素，以便为用户提供卓越的使用体验。本白皮书从总体上介绍了 MID 的 UI 设计规则。Hildon 用户界面以任务为导向，所以它需要一些特别的处理。本白皮书还介绍了 Hildon UI 设计的已知最佳方案（BKM）。</p>
<div class="sectionHeading">1. MID 简介</div>
<p>MID（移动互连设备）是 PC 产品系列的一项最新创新，它具有 PC 的所有功能，但功耗却有明显的降低。MID 是一种小外形（SFF）设备，它便于携带，可提供 24x7 全天候的数据访问功能。 <br /> 英特尔一直致力于开发并推广各种技术，以满足 MID 用户的需求。在 MID 的创新过程中，英特尔最重要的一项贡献就是，通过其集成显卡驱动程序英特尔®图形媒体加速器，为用户提供了集成的显卡软件。 <br /> MID 一般采用尺寸较小（4.5” – 6”）的高分辨率触摸显示屏，并具有小型的键盘。为了给用户提供类似于 PC 的使用体验，MID 显示屏上的内容必须易于阅读，必须能够使用手指在显示屏上轻松进行操作，这也就是说，操作系统和应用的 UI 必须是高度定制的。</p>
<br />
<div class="sectionHeading">2. Midinux 概览</div>
<p>Linux 是一种开源操作系统，它允许在系统级别上进行高度的定制，例如快速启动、快速从待机模式恢复；在应用级别上，它还允许进行 UI 风格及主题方面的定制。 <br /> Midinux 是首款基于 Linux 的操作系统，它完全支持英特尔 2007 MID 平台。它具有基于 GTK 的移动应用框架，专为 MID 的屏幕尺寸和分辨率而优化。图 1 显示了 MID 应用框架堆栈。 <br /> <br /> <img src="http://software.intel.com/file/12978" border="0" alt="" width="573" height="411" /></p>
<p><strong>图 1. MID 应用框架堆栈</strong></p>
<br />
<p><strong>2.1 Hildon 概览</strong></p>
<p>Hildon 用户界面以及 Maemo 均基于开源组件。Hildon 以 Gnome 桌面使用的工具套件 GTK＋ 为基础，并在原有基础上进行了一些改进，使其更适合于移动设备。首款采用 Hildon UI 风格的产品为 Nokia 770 Internet Tablet。Hildon 用户界面主要以触摸屏操作为基础，这就意味着用户将主要通过手写笔和手指来使用设备。虽然设备上有几个强制性的硬件按钮，用户在大多数时间均通过触摸屏操作设备。Hildon 支持多任务处理，可以同时运行多个应用，并且用户可以在不同应用之间切换。 <br /> Hildon UI 包含 4 个基本组件：任务导航条、标题区域、状态指示区域以及应用区域。<strong>任务导航条</strong>是位于屏幕上方的全局屏幕元素。任务导航条主要用于启动应用并在不同应用之间进行切换。<strong>标题区域</strong>包含应用的标题，该标题可打开应用特定的菜单。标题区域的右侧包含有最小化和关闭按钮。<strong>状态指示区域</strong>包含各种指示系统状态和行为的图标。状态条程序便位于该区域。<strong>应用区域</strong>由处于正常模式的应用使用。在全屏模式中，所有其它组件均会消失，应用区域会扩展至整个屏幕。</p>
<p>图 2 显示了 MID 应用 UI 的一般布局。</p>
<br />
<p><img src="http://software.intel.com/file/12992" border="0" alt="" width="583" height="332" /></p>
<p><strong>图 2. MID 应用 UI 布局</strong></p>
<br /> <br /></div>
<table border="0" cellspacing="0" cellpadding="2" width="260" align="center">
<tbody>
<tr>
<td align="right"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/greyPrevArrow.gif" border="0" alt="上一部分" width="20" height="20" /></td>
<td class="sectionBodyText" align="left">上一部分</td>
<td class="sectionBodyText" style="TEXT-ALIGN: center">1  <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">2</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">3</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">4</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5">5</a></td>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">下一部分</a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/nextarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
</tr>
<tr>
<td colspan="5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/spacer.gif" border="0" alt="" width="1" height="8" /><br />
<div class="sectionBodyText" style="TEXT-ALIGN: center">第 1 页, 共 5 页</div>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid</link>
      <pubDate>Sun, 15 Feb 2009 03:59:12 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid</guid>
      <category>移动软件开发社区</category>
      <category>视觉计算</category>
    </item>
    <item>
      <title>面向 MID 进行用户界面设计的经验之谈-5</title>
      <description><![CDATA[ <br />
<p><strong>4.4 对话框</strong></p>
<p>可使用各种对话框来指引用户完成某个任务。应尽量使任务变得简单，避免设置一长串的对话框。对于那些比较复杂的任务，可以设置一个新的窗口。如果该任务需要来自其它应用的信息，并且没有将信息作为预设的列表提供，则建议将其作为一个新窗口实施，而非对话框。对话框显示在应用区域的中央</p>
<p><img src="http://software.intel.com/file/12986" alt="" width="573" height="303" /></p>
<p><strong>图 14. office工具中的对话框。</strong></p>
<br />
<p><strong>4.5 通知</strong></p>
<p>通知用于向用户反馈信息。有 2 种类型的通知：消息框或信息条。 <br /> 消息框一般显示在屏幕的中央并包含简短的信息，同时提供按钮供用户作出响应。在用户对注释中的信息进行确认之前，应用处于暂停状态。 <br /> 信息条不需要用户执行任何操作。它们显示在应用区域的右上角。 <br /> 图 15 显示了消息框和信息条的差别。</p>
<p align="left">
<table border="0" cellspacing="0" cellpadding="0" width="410">
<tbody>
<tr>
<td width="205" align="left"><img src="http://software.intel.com/file/12988" alt="" width="201" height="88" /></td>
<td width="20"></td>
<td><img src="http://software.intel.com/file/12990" alt="" width="180" height="50" /></td>
</tr>
</tbody>
</table>
</p>
<p><strong>图 15. 消息框（左）和信息条（右）</strong></p>
<p> </p>
<div class="sectionHeading">总结</div>
<p>本文针对 MID 的 UI 设计提出了一些主要问题，并针对屏幕尺寸、触摸屏以及外形方面的因素提供了 UI 设计的方案。由于 Hildon 用户界面是以任务为导向的，所以它需要一些特别的考虑。本白皮书还提供了 Hildon UI 设计的已知最佳方案（BKM）。</p>
<p> </p>
<div class="sectionHeading">参考文档</div>
<p>[1] Best Practices in Game Design for the Ultra-Mobile PC. Matt Gillespie, Michael Finkel and Victoria Bailey<br /> <br /> [2] Hildon User Interface Style Guide Summary Version 1.1. <br /> <br /> [3] MID Application UI Design Guide.</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="260" align="center">
<tbody>
<tr>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/prevarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">上一部分</a></td>
<td class="sectionBodyText" style="TEXT-ALIGN: center"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid">1</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">2</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">3</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">4</a> 5</td>
<td class="sectionBodyText" align="right">下一部分</td>
<td class="sectionBodyText" align="left"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/greynextarrow.gif" border="0" alt="" width="20" height="20" /></td>
</tr>
<tr>
<td colspan="5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/spacer.gif" border="0" alt="" width="1" height="8" /><br />
<div class="sectionBodyText" style="TEXT-ALIGN: center">第 5 页, 共 5 页</div>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5</link>
      <pubDate>Sun, 15 Feb 2009 01:14:40 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>面向 MID 进行用户界面设计的经验之谈-4</title>
      <description><![CDATA[ <br />
<div class="sectionheading">4. Hildon UI 设计的 BKM</div>
<p>Hildon 用户界面是以任务为导向的，这就意味着它可以实现与专用和优化的应用和功能集类似的普通任务。例如，仅仅通过 2 次点击就可以打开书签中保存的网站，或发送新的电子邮件。</p>
<p>PC 所采用的基于鼠标和键盘的交互模式与 Hildon 交互模式有许多区别，在设计用户界面时必须充分考虑这些因素。当用户在行走时，要准确地点触某个屏幕按钮可能会比较困难。用户的手还可能会挡住屏幕的部分区域（UI 控制按钮或内容等）。因此要优化 UI 设计，仅使用少数几个操作即可完成一项任务，避免给用户带来不必要的麻烦。UI 上的任务流应遵循标准的操作流程，比如从左到右、从上到下，而非强迫用户在各个界面进行操作。</p>
<br />
<p><strong>4.1 Hildonized 与 Un-Hildonized UI</strong></p>
<p>由于 MID 的应用框架以 GTK 为基础，这就意味着以 GTK 为基础编写的应用所需的移植工作会相对较少，但是 Hildon UI 的各种工具条按钮会更大一些，方便用户使用手指进行操作。以下 2 个截屏显示了经过与未经过 Hildon UI 改进的两种界面。</p>
<p><img src="http://software.intel.com/file/12981" alt="" width="573" height="348" /></p>
<p><strong>图 10. 未经过 Hildon 改进的 UI</strong></p>
<p><img src="http://software.intel.com/file/12982" alt="" width="573" height="349" /></p>
<p><strong>图 11. 经过 Hildon 改进的 UI</strong></p>
<br />
<p><strong>4.2 菜单</strong></p>
<p>菜单命令应根据它们的重要性和功能关系进行安排。如果有许多命令，可将功能比较相近的命令分组到一个子菜单，在第一级菜单上仅使用子菜单标题，比如：'文件'-&gt;'新建' 以及 '文件'-&gt;'保存'。</p>
<p>在 Hildon UI 中，菜单项是纵向排列的，这与 PC 环境中横向排列方式不同。最常用的命令或子菜单应位于菜单的前几级，不太重要的可以设计在下方，以便于用户操作。使用分隔符在菜单内对相关的菜单项进行分组。在纵向上，应避免超过 7 行命令或子菜单，在横向上应避免超过 3 列菜单。</p>
<p>当前无法使用的命令应呈灰色显示。Hildon 的一项特有功能就是它会对选择灰色菜单项的操作进行响应，通常会弹出一条信息，解释为什么该功能无法使用，比如“没有可以撤销的内容”。这样，用户便可以按正确的方法使用应用。</p>
<p>对于第一个应用菜单标题，应使用一个可以反映应用功能的词语，比如“文档”、“图像”、“卡片”，而不是“文件”。</p>
<p><img src="http://software.intel.com/file/12983" alt="" /></p>
<p><strong>图 12. Midinux 中的菜单。</strong></p>
<br />
<p><strong>4.3 工具条</strong></p>
<p>工具条应能使用户轻松地访问应用的常用或重要功能。以下是设计和使用工具条的一些规则。</p>
<p>工具条中项目的数量取决于每个项的宽度以及是否会显示任务导航条（从普通屏幕切换到全屏幕）。</p>
<ul>
<li>如果应用使用多个视图，则可以考虑改变并优化每个视图中工具条上显示的功能。 </li>
<li>应该为应用的基本功能提供一些最常见的图标。 </li>
<li>工具条图标必须直观易懂，能够直接反映出它们代表的操作。图标形象应从日常生活中取材，以便用户将其与设备上的任务联系起来。 </li>
<li>应用菜单上应包含所有显示的命令。 </li>
<li>由于屏幕空间有限，应该提供在菜单中隐藏某个工具条的功能。 </li>
<li>必要时，应使用分隔符标记分组图标。 </li>
<li>应避免在工具条上使用需要本地化的文本，因为不同的文本长度会打乱工具条的布局。可能的话，应尽量使用图标来代替文本，以节省工具条空间。 </li>
</ul>
<p><img src="http://software.intel.com/file/12985" alt="" height="73" /></p>
<p><strong>图 13. Midinux 中的工具条。（浏览器、播放器、E-mail、GPS、Office 工具、电话簿…）</strong></p>
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="260" align="center">
<tbody>
<tr>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/prevarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">上一部分</a></td>
<td class="sectionBodyText" style="TEXT-ALIGN: center"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid">1</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">2</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">3</a> 4  <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5">5</a></td>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5">下一部分</a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/nextarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
</tr>
<tr>
<td colspan="5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/spacer.gif" border="0" alt="" width="1" height="8" /><br />
<div class="sectionBodyText" style="TEXT-ALIGN: center">第 4 页, 共 5 页</div>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4</link>
      <pubDate>Sun, 15 Feb 2009 01:11:15 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>面向 MID 进行用户界面设计的经验之谈-3</title>
      <description><![CDATA[ <br />
<p><strong>3.2.2．精确的触摸屏映射</strong></p>
<p><strong>问题（窗口分辨率小于实际屏幕尺寸）：</strong>当应用在全屏模式下以小于实际屏幕尺寸的分辨率运行时，游戏会在屏幕中央显示，屏幕两侧将出现一定的空间（比如将 640x480 的窗口在 800x480 的屏幕上居中显示，或将 800x600 的窗口在 1024x600 的屏幕上居中显示时，屏幕两侧会留有黑色条形区域），当将整个触摸屏界面映射到相对较小的显示区域时，即会出现错误映射的问题。这种错误映射会导致界面对用户操作产生错误的响应，比如一个按钮的可点击区域与屏幕上显示的按钮位置不符。</p>
<p><img src="http://software.intel.com/file/13002" alt="" /></p>
<p><strong>图 6. 将游戏窗口居中显示时，屏幕两侧会留有空白区域，读取屏幕点触操作的游戏逻辑不能将整个屏幕区域映射到游戏窗口上。这种错误映射的结果就是，当点触屏幕上的一个位置时（黄色箭头指向的位置），而游戏逻辑却认为点触操作发生在另一个位置（红色星号的位置）。</strong></p>
<p><strong>最佳方案：</strong>在将应用居中显示，屏幕两侧留有空白区域时，只要映射逻辑能够将两侧的空白区域识别为屏幕本身的一部分，就不会出现错误映射的问题。通过这种调整，屏幕触摸会准确地映射到触摸位置。</p>
<p><strong>问题（窗口分辨率大于实际屏幕尺寸）：</strong>如果窗口的纵向尺寸大于屏幕的实际尺寸，则可能发生纵向的错误映射问题。在这种情况下，触摸屏通常会映射到整个游戏窗口，而不是可显示的部分。这样，就会发生错误响应点触操作的现象。</p>
<p><img src="http://software.intel.com/file/13004" alt="" /></p>
<p><strong>图 7. 当游戏窗口在纵向上被部分剪切时（半透明区域），也同样会导致错误映射的问题，即点触一个位置（黄色箭头指向的位置），而游戏逻辑却认为点触发生在另一个位置（红色星号的位置）。</strong></p>
<p><strong>最佳方案：</strong>开发人员应确保操作系统将触摸屏准确地映射到屏幕的可视部分（包括游戏未使用的部分），但不应包括游戏窗口中不可视的部分。另一个解决方案则是，开发人员可将 800x480 和 1024x600 分辨率作为用户可配置的选项。在某些情况下，可以自动调整窗口大小，使其填充整个屏幕，前提是这种调整所产生的屏幕扭曲在可以接受的范围内。</p>
<p><strong>3.2.3．悬停显示效果的替代方案</strong></p>
<p><strong>问题：</strong>许多游戏都具备悬停显示功能，用户在游戏中将光标放在某个对象或某个位置之上时（无需点击），即可触发信息提示或工具选项。该功能通常用来为新手玩家提供指导，但是它与触摸屏并不兼容，因为触摸屏无法在不点击的情况下移动光标。</p>
<p><img src="http://software.intel.com/file/13006" alt="" /></p>
<p>图 8. 悬停显示效果。</p>
<p><strong>最佳方案：</strong>由于悬停显示功能与目前的 MID 硬件不兼容，开发人员必须选择其它事件来触发动画或工具提示。例如，当玩家到达与动画对象或工具提示对象相关的游戏环节时，便能触发动画或工具提示。另一种方法则是设计一个界面，借助某种手段临时将点击事件解释为鼠标悬停事件，例如按住某个按钮，便可点击触摸屏移动光标，而不会产生点击操作。</p>
<br />
<p><strong>3.2.4．兼容右击功能</strong></p>
<p><strong>问题：</strong>在典型的 MID 触摸屏上，用户通过在屏幕上进行稍长时间的点击来启用右键功能，但这可能会导致用户意外进行左击操作。此外，无法同时实现左击和右击操作。</p>
<p><strong>最佳方案：</strong>开发人员应提供其它的用户交互来代替右击功能，如在屏幕上使用双击或添加可点击的控制按钮。游戏开发人员也可要求用户使用外接鼠标或其它指点设备，虽然这会影响用户体验。</p>
<p><strong>3.3．外形</strong></p>
<p>许多问题都直接来自于 MID 与标准 PC 的硬件差异。例如，与 PC 不同，MID 可能具有触摸屏、操纵杆、用户可定义的按钮和“菜单”按钮等专用按钮，但通常不具备键盘或 CD-ROM 光驱。虽然可以添加键盘、光驱或其它外设，但这会降低 MID 的便携性。此外，不同型号的 MID 会在其设计中包含不同的元素，因此每种设备在外形方面的局限性会有所不同。这种变化通常要求开发人员在按照核心要求设计应用时，重点考虑硬件特性的最低水平。</p>
<br />
<p><strong>3.3.1．尽量减少命令输入</strong></p>
<p><strong>问题：</strong>相对于标准 PC 提供的键盘和鼠标而言，MID 的外形对输入方式造成了许多限制。即使某些游戏是使用游戏手柄在电脑上操纵的，但是它还需要使用手柄上的许多其它功能按钮，而这在 MID 上是无法实现的。另外，如果某个游戏将键盘的快捷键作为游戏的主要操作途径，则 MID 也会存在一些问题。然而，主要由鼠标进行操作的游戏则不受 MID 外形的影响。</p>
<p><strong>最佳方案：</strong>开发人员应减少进行游戏所需的命令数量，以此解决 MID 输入方式有限的问题。但是，更灵活的解决方案则是创建屏幕按钮。特别是提供那些与环境相关的按钮，仅在游戏需要时才会出现，这就提供了一种开放的解决方案，有效解决输入方面的问题。</p>
<br />
<p><strong>3.3.2．解决键盘问题</strong></p>
<p><strong>问题：</strong>除发出命令外，许多游戏还要求使用键盘来输入信息，如为人物命名、创建人物资料、保存游戏或在线聊天等。通常，大多数游戏在登录时都需要使用键盘输入人物名称，但在其它时刻都不需要使用键盘。某些游戏还要求玩家使用键盘来命名保存的游戏。在许多情况下，屏幕键盘不会出现在游戏界面上，因此无法解决这些问题。</p>
<p><strong>最佳方案：</strong>开发人员在设计游戏时应避免其与屏幕键盘产生冲突（例如，不将游戏默认设置为全屏模式），或者将游戏设计为仅在需要时，才会在界面上提供屏幕键盘。有一种简单的方法可用来减少键盘输入，即提供诸如人物名称、保存游戏名称等文本字符串的默认值，并允许使用屏幕选项来选择这些值。这些文本字符串的其它值也可通过添加界面按钮来提供，使用该界面按钮可随机在开发人员创建的人物名单中选择新值。也可根据玩家游戏结束时的屏幕截图，以及日期与时戳来识别保存的游戏。由于聊天功能通常不是游戏的核心内容，所以在 MID 中一般都会禁用该功能，并且不会对用户体验造成影响。</p>
<p><img src="http://software.intel.com/file/12980" alt="" /></p>
<p><strong>图 9. 全屏模式下显示的屏幕键盘。</strong></p>
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="260" align="center">
<tbody>
<tr>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/prevarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">上一部分</a></td>
<td class="sectionBodyText" style="TEXT-ALIGN: center"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid">1</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2">2</a> 3  <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">4</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5">5</a></td>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">下一部分</a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/nextarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
</tr>
<tr>
<td colspan="5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/spacer.gif" border="0" alt="" width="1" height="8" /><br />
<div class="sectionBodyText" style="TEXT-ALIGN: center">第 3 页, 共 5 页</div>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3</link>
      <pubDate>Sun, 15 Feb 2009 01:08:24 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>面向 MID 进行用户界面设计的经验之谈-2</title>
      <description><![CDATA[ <br />
<div class="sectionHeading">3. UI 设计方面的挑战以及有关 MID 的 BKM</div>
<p>尽管 PC 架构以及全功能 PC 操作系统会降低开发人员将应用从桌面 PC 移植到 MID 的难度，MID 自身的外形仍为应用 UI 的设计提出了许多新的挑战。Hildon 应用框架是一种类似于设备的应用框架，这也给应用 UI 的设计带来了一些难题。</p>
<p><strong>3.1．屏幕尺寸</strong></p>
<p>由于 MID 的屏幕尺寸要远远小于传统屏幕尺寸，因此各种图形元素的尺寸就需要特殊处理。开发人员既要避免将按比例缩小的图形元素设计得过小，又要避免尺寸相同的图形元素占用太多的屏幕空间。具体来说，某些文本和图标可能比较难以辨认，屏幕上的按钮和单元可能不便于点击操作，一些游戏窗口可能无法放大到整个屏幕。</p>
<p><strong>3.1.1．文本和图标尺寸</strong></p>
<p><strong>问题</strong>：在移植到 MID 的应用界面上，文本或图标可能会缩小到某个尺寸，这可能使文本或图标变得难以辨认。一个在 15 英寸屏幕上能够正常显示的文本，如果放到 MID 使用的 5 - 7 英寸的屏幕上，用户将很难看清文本的内容。除了文本的实际字体大小外，聊天和其它文本窗口也将变得过小。如果通过降低字体大小来适应较小的窗口尺寸，那么文本将变得非常难以阅读。</p>
<br />
<p><img src="http://software.intel.com/file/12994" alt="" width="583" /></p>
<p>(a)</p>
<p><img src="http://software.intel.com/file/12996" alt="" /></p>
<p>(b)</p>
<p><strong>图 3. 适合于阅读的正常文本尺寸 (a) 与未经过合理的字体大小调整的文本 (b)。</strong></p>
<p><strong>最佳方案</strong>：理想情况下，针对 MID 设计的应用程序应尽量避免使用文本，此外，在选择字体时一定要考虑 MID 的屏幕尺寸。同样，图标设计上不应过分依赖于细节信息，这样，即便是在较小的 MID 屏幕上，也可以很容易地区分这些图标。在一些情况下，如果增大文本尺寸会对应用的其它元素造成影响，最佳的解决方案就是允许用户自行调整文本大小，根据他们自身的喜好来选择尺寸。</p>
<br />
<p><strong>3.1.2．按钮与其它元素的可点击性</strong></p>
<p><strong>问题</strong>：与文本过小的问题类似，按钮和其它可点击的元素增加了将软件移植到 MID 的复杂性。由于在 PC上使用的是定位功能更加精确的鼠标，而在 MID 中使用的则是手写笔或手指，因此，尽管 MID 的整体界面必须小于标准的 PC 界面，但 MID 界面上的按钮却应比后者更大。即使用户在小心翼翼的情况下或许能够正确选择某个按钮，但这无疑会极大的影响用户体验。</p>
<p><img src="http://software.intel.com/file/12998" alt="" /></p>
<p><strong>图 4. 按钮的可点击性。在一个 20 英寸的 PC 显示器上（左），用户可以轻松使用鼠标指针选择一张骨牌。然而，在 5 英寸的 MID 显示屏上（右），选择某个骨牌就变得非常困难，甚至根本无法辨认骨牌上的点数。</strong></p>
<p><strong>最佳方案</strong>：与文本和图标尺寸的问题相同，开发人员应通过使用较大且易于辨认的按钮或其它元素来避免这一问题。各元素之间也必须留有足够的空隙，以避免用户无意中选择了错误的按钮。如果某个文本标签与按钮或其它元素相邻，该标签应该是元素的可点击区域的一部分，使按钮更加易于点击，并且不会占用额外的空间。</p>
<br />
<p><strong>3.1.3．窗口大小</strong></p>
<p><strong>问题：</strong>如果应用窗口使用固定尺寸，而不是自动调整大小以适应整个屏幕，那么屏幕上的某些图像或元素将无法显示。MID 的宽屏一般使用 800x480 或 1024x600 的分辨率，这会使问题更加复杂，因为图像的宽高比必须与标准 PC 所采用的 4:3 的宽高比相匹配。</p>
<br />
<p><img src="http://software.intel.com/file/13000" alt="" /></p>
<br />
<p><strong>图 5. 窗口的可见度。在标准 PC 上（左），用户可以看到整个游戏区域，包括操作界面的信息区域。如果将窗口进行剪切，以适应 MID 更小的屏幕尺寸或其它宽高比（中），则如透明区域显示的那样，部分图像将无法显示出来。如果将图像按比例缩放到 MID 的屏幕尺寸（右），则基本上能看清所有图像，虽然有一定的图像扭曲，但仍在可以接受的范围内。</strong></p>
<p><strong>最佳方案：</strong>对于开发人员来说，解决这个问题的关键就是在开发 MID 用户界面时就应考虑 800x480 和 1024x600 的分辨率，可以缩小整个游戏窗口来适应屏幕，也可对界面进行重新安排，以充分利用宽屏的优势。例如，在某些情况下可提供滚动栏，允许用户手动或自动调整窗口来观看整个屏幕，从而提供可以接受的用户体验。</p>
<br />
<p><strong>3.2．触摸屏</strong></p>
<p>MID 使用的是触摸屏而非鼠标，这进一步增加了移植应用的复杂性。对于大多数软件操作而言，触摸屏的作用与鼠标类似，不同之处在于，用户拖动光标时产生的是线性的移动轨迹，而触摸屏产生的则是类似于点击按钮的操作效果。不点击就无法移动光标，以及左击与右击之间的关系也会导致一些问题。</p>
<br />
<p><strong>3.2.1．准确解读触摸屏输入信息</strong></p>
<p><strong>问题：</strong>MID 应用必须能够将用户提供的光标输入理解为一系列的点（等同于一系列的触摸屏点击操作），而不需要线性的移动模式（如同用鼠标移动光标所产生的操作）。在某些应用中（例如第一人称射击游戏），如果需要将图像切换到用户的视角，以使光标始终处于屏幕中央，这种问题就会变得尤为明显。在这种情况下，当用户触摸屏幕时，光标可能会四处随意跳动，而不是移动到用户点触的位置。</p>
<p><strong>最佳方案：</strong>如果游戏能够跟踪光标从 A 点到 B 点的移动，那么它应该将其理解为在 A 点和 B 点的两次点击，而不是在 A 点与 B 点之间移动。在 MID 上使用鼠标通常能够解决这个问题，但从用户体验的角度来看，这种解决方法显然不够理想。</p>
<br /> <br />
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="260" align="center">
<tbody>
<tr>
<td class="sectionBodyText" align="right"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/prevarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
<td class="sectionBodyText" align="left"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid">上一部分</a></td>
<td class="sectionBodyText" style="TEXT-ALIGN: center"><a href="/zh-cn/articles/best-known-methods-of-ui-design-for-mid">1</a> 2  <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">3</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-4">4</a> <a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-5">5</a></td>
<td class="sectionBodyText" align="right"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3">下一部分</a></td>
<td class="sectionBodyText" align="left"><a href="http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-3"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/nextarrow.gif" border="0" alt="" width="20" height="20" /></a></td>
</tr>
<tr>
<td colspan="5"><img src="http://cache-www.intel.com/plt/cd/ids/images/common/spacer.gif" border="0" alt="" width="1" height="8" /><br />
<div class="sectionBodyText" style="TEXT-ALIGN: center">第 2 页, 共 5 页</div>
</td>
</tr>
</tbody>
</table>
<br /> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2</link>
      <pubDate>Sun, 15 Feb 2009 01:03:58 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/best-known-methods-of-ui-design-for-mid-2</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>《移动游戏开发人员指南》</title>
      <description><![CDATA[ <div class="sectionHeading">介绍</div>
<p><em>在针对移动应用进行设计时，最大限度地改进连接、电源和带宽的管理.</em></p>
<p><strong>作者：Rajshree Chabukswar、Cody Northrop、Adam Lake、Ann-Charlotte Joseph、Chuck DeSylva </strong></p>
<p>游戏平台正在不断发展。几年前，很少有开发商考虑开发移动游戏的相关事宜。如今，时过境迁。去当地的咖啡馆走走，您可能就会看到有不少人在用笔记本电脑忙碌着什么。他们中的一些人是在办公。还有一些人在津津有味地阅读着自己喜欢的博客文章和新闻。而另一些人则在兴致勃勃地玩游戏。这些游戏有多种形式。其中一些是休闲游戏。通常这些游戏属于大型多人在线游戏（MMOG），需要最新一代的 CPU 和显卡技术来支持。</p>
<p>这些移动设备为开发商提供了其在开发过程中所需的全新能力和使用模式。例如，硬件厂商戴尔（XPS* 系列）和 Alienware（Area51* 系列）正在向消费者推出优秀的高端移动游戏平台。这些平台通常都拥有非常出色的移动显卡解决方案、充足的内存和高端的移动式 CPU，能够为移动游戏发烧友带来非凡的游戏体验。着眼于这些用户进行开发工作也为独立软件开发商（ISV）打开了一个新的市场，从中获得更多收益。此外，预计随着台式机与笔记本电脑差距的缩小，这一市场还将不断增长。</p>
<p><img src="http://software.intel.com/file/12783" border="0" alt="" width="358" height="237" /><br /> <br /> <strong>图 1：台式机与笔记本电脑的预计增长（单位：百万），资料来源：Gartner 公司，电脑季度预测，2005 年 3 月</strong></p>
<br />
<p>本文是一份关于移动游戏体验的手册。英特尔推出的面向移动应用开发的软件开发套件（SDK）和运行时程序 -- 英特尔移动平台软件开发套件，是支持移动游戏的首选机制。当电脑未安装该应用时，本开发商指南还为移动应用提供了另一种备选机制。本文的重点是笔记本电脑上的游戏，但其中许多原理同样适用于任何移动设备，包括手机、个人数字助理（PDA）或其它移动设备等。</p>
<p>从最高层面上来讲，移动游戏存在三个问题。尽管这些问题在台式机上也存在，但由于移动环境内的下列参数发生改变的可能性较大，因此应对移动应用给予特别关注：</p>
<ul>
<li>连接 </li>
<li>电源 </li>
<li>带宽 </li>
</ul>
<br />
<p><strong>连接：</strong> 指有关设备与网络和其它外围设备进行连接的问题。其中包括有线或无线连接。</p>
<p><strong>电源：</strong> 电池或电源插座的使用，会使建立在当前系统电源使用模式上的用户体验有所改变。</p>
<p><strong>带宽管理：</strong> 可划归为连接的分支主题。此处的问题包括在带宽降低或无线连接遇到干扰，以及暂时不能用时调整用户体验。</p>
<p>开发移动应用要求能够对上述几方面的突发变化做出调整，而本指南将帮助开发商在进行设计时考虑到这些问题。</p>
<p><a href="http://www.intel.com/cd/ids/developer/asmo-na/eng/260048.htm">查看全文</a></p>
<p><a href="http://software.intel.com/file/14180">查看全文</a></p>

 ]]></description>
      <link>http://software.intel.com/zh-cn/articles/mobile-games-developer-guide</link>
      <pubDate>Sun, 15 Feb 2009 00:18:53 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/mobile-games-developer-guide#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/mobile-games-developer-guide</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>UMPC 软件开发人员资源指南</title>
      <description><![CDATA[ <!-- div.callout {         background-color: #e6e6e6;         padding: 10px;         border: 1px solid #ababab;         font: 11px Verdana, Arial, Helvetica, sans-serif;          font-weight: normal; 	text-decoration: none; 	float: right; 	width: 200px; 	position: relative; --><!--l version="1.0" encoding="utf-8" standalone="no-->
<div class="Section1">
<div class="sectionHeading">摘要</div>
<p>那些希望开始为超便携电脑（UMPC）和超移动互联网终端（MID）创造应用的开发人员一般都已掌握了许多所需的开发工具和开发技巧。由于这些设备使用了各种版本的 Windows* 和 Linux* 操作系统，因此，针对 UMPC 和 MID 的应用开发更像是同一主题的变奏，而非全新的创作。在完成对核心开发环境的构建，并充分利用英特尔等厂商的开发人员工具套件对这一环境进行完善后，开发人员就能够快速投入到 UMPC 和 MID 应用的开发工作中，从容应对各种挑战。本文旨在引导读者收集面向 Windows 和 Linux 环境的开发工具，帮助他们针对这些平台进一步扩展目前的开发工作。</p>
<div class="sectionHeading">简介</div>
<p>UMPC 和 MID 设备为软件公司指明了一条开辟新市场的道路，许多厂商也正考虑如何充分利用这一巨大的商机。对于软件公司来说，其价值定位需要考虑的重要一点就是围绕这些设备的开发工作与传统 PC 相关的开发非常相似。此外，这些公司可充分利用现有工具和专业知识来对其产品进行更新换代，使之搭上 UMPC 和 MID 的顺风车。</p>
<p>在准备为 UMPC 和 MID 设备开发软件时，开发人员首先认识到的一点可能就是，开发工具、API 和技巧与围绕其它 x86 平台（如传统的笔记本电脑）进行的开发极为类似。一般情况下，开发人员都希望在标准的笔记本电脑或台式机上开发软件，而仅将 UMPC 或 MID 设备用于测试。</p>
<p>尽管可以在 UMPC 或 MID 设备上运行开发工具，但由于这些设备性能有限（如内存和硬盘容量过小），因此多数程序员都宁愿选择其它平台。一般情况下，在测试和调试阶段进行硬件迁移往往效率不高，相比之下，直接在 UMPC 或 MID 设备上编写代码还勉强可以接受。为此，本文所讨论的一系列工具将为您简化这一过程。</p>
<p>Windows 开发人员很可能会将 Microsoft Visual Studio* 作为 IDE，通过添加适当元素来实现个人风格，并对移动性和触摸屏等功能提供支持。Linux 开发人员可以在利用所选工具的同时参与各种开源计划，高效地为这些平台创造出高品质应用。这两类开发人员都能够从 x86 设备的应用、驱动程序、库和其它资源中获益。</p>
<p>BWindows 和 Linux 开发人员都能够通过编译器、库和分析器等英特尔® 软件开发产品来优化工作，获得高性能的英特尔® 架构设备。英特尔和其它厂商还为开发人员提供了一系列工具套件，以提高超便携设备软件的开发速度。下文将对这些产品的主要应用范围进行讨论。</p>
<div class="sectionHeading">消除电脑和 UMPC 之间的差距</div>
<p>在从传统电脑转向 UMPC 和 MID 的过程中，最突出的问题是两类平台间的物理差异。首先，必须考虑到小显示屏（约 5 至 7 英寸）、不用键盘和鼠标，以及触摸屏输入和硬件按钮在普通设备上的可行性。不仅如此，还必须设法提高设备的可用性，这不但会提高最终软件产品的质量，还会得到更多客户的认可和采用。</p>
<p>为了加速消除传统电脑和 UMPC/MID 设备之间的差异，开发人员需要借助多种英特尔和微软工具，具体包括：</p>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/windowsvista/aa904973.aspx">Microsoft UMPC 显示模拟器</a>*，一个在基于 Windows 的传统电脑上进行 UMPC 软件开发的辅助工具。无论开发平台采用何种分辨率设置，它都能为开发环境提供 800x480 的屏幕分辨率。这种简单的模拟非常接近应用在真实的 UMPC 设备上的运行表现。这使开发人员能够高效地改善设备的可用性和显示清晰度。 </li>
<li><a href="http://software.intel.com/zh-cn/articles/ultra-mobile-pc-evaluator-tool/">UMPC 评估工具</a>，用于快速评估现有电脑应用和多种 UMPC 设备之间的兼容性。为了能够模拟各种 UMPC 设备，该工具中使用了多种设备描述——工具随附的标准描述或开发人员创建的描述。该仿真器能够在运行时捕获键盘和鼠标信息，并检查其与一个或多个设备描述之间的兼容性。开发人员可以实时浏览评估结果，并将其记录在一个或两个文件中。 </li>
</ul>
<p>这些简单的免费工具能够显著提升应用的开发效率。由于 UMPC 设备的上市时间要早于 MID 设备，因此自然成为了这些工具的主要支持对象。目前，这些工具仅能够在 Windows 平台上使用。随着市场的日益成熟，此类工具会越来越多，对设备的支持情况也会不断改善。</p>
<div class="sectionHeading">英特尔开发人员工具套件</div>
<div class="callout"><strong>英特尔® 移动平台软件开发套件 1.2 版开放源代码项目</strong><br /> <br /> 英特尔® 移动平台软件开发套件 1.2 版是英特尔公司推出的一个免费的开放源代码项目，旨在为开发人员社区提供一个创新的解决方案，帮助开发人员开发各种移动感知应用。借助英特尔® 移动平台软件开发套件 1.2 版强大的特性集，开发人员将能够创造出高效、可靠的软件产品，满足移动计算环境的多变需求。<br /> <br /> 如欲了解更多信息，请访问：<a href="http://ossmpsdk.intel.com/">英特尔® 移动平台软件开发套件</a>。</div>
<p>A英特尔工具套件集是开发人员掌握的另一项重要资源，能够帮助开发人员更高效地满足与移动软件相关的设计需求（其中包括 UMPC 和 MID 软件的开发）。这些工具专门用于辅助开发支持多平台和多运行时环境的软件，这使其能够利用单一代码库应对产品（支持笔记本电脑、UMPC 和 MID）创建带来的种种挑战。</p>
<p>利用本文提到的软件和技术开发套件（SDK 和 TDK），开发人员将有效实现应用的移动性，打造出能够满足超便携设备需求的移动软件。为此，移动应用至少应能够在多变的网络连接情况下保持流畅运行，并通过出色的功耗管理来有效延长电池的使用时间，此外还必须充分利用设备的内存和硬盘等硬件资源，最后，还应当能够有效适应不断变化的可用网络带宽。</p>
<ul>
<li><a href="http://ossmpsdk.intel.com/">英特尔® 移动平台软件开发套件</a>提供的开放源代码库和运行时组件能够抽取上文提到的移动性问题，帮助程序员降低这些问题的解决难度。此外，该 SDK 包含的一个编程接口还能够在支持的平台和运行时中通用，可最大限度提高代码的复用率。其中提供的 API 还可以使应用轻松支持各种前瞻性技术，如全球定位系统（GPS）和射频识别（RFID）等。 </li>
<li><a href="/en-us/articles/intel-web-20-technology-development-kit-tdk">英特尔® Web 2.0 技术开发套件（TDK）</a>是一款基于 JavaScript* 的免版税 API，利用其完整可用的源代码，Web 应用将能够对有关执行平台的各种信息进行编程访问。这些信息涉及系统配置（如显示、存储和处理器）及其环境（如带宽和功率等级）。开发人员能够通过这些信息在执行环境下修改应用的行为，如在平台资源紧张时进行较低质量的图形渲染，或是在连接带宽不足时延迟大规模下载。这些功能都能够有效加快软件的开发速度，快速响应短时的运行时需求。 </li>
<li><a href="http://software.intel.com/zh-cn/articles/intel-laptop-gaming-technology-development-kit/">英特尔® 笔记本电脑游戏技术开发套件</a>提供了基于 C++ 的免版税 API，可收集各种系统信息，如网络信号强度和电池电量情况，以及各种用来在游戏中显示信息的界面要素。此外，利用该套件，开发人员还能够通过创建用户定制回调函数来处理特定的平台事件，从而改善游戏对所在环境的响应能力。例如，游戏可以在电池电量降至一定程度时降低渲染场景的复杂度，或是在玩家运行单机游戏时提醒其关闭 W-Fi（如已经打开），以延长电池的使用时间。 </li>
</ul>
<br />
<div class="sectionHeading">专门面向 Windows 平台的开发工具</div>
<p>Windows XP Tablet PC Edition 2005* 和 Windows Vista* 操作系统均支持超便携平台。以前仅 Windows XP Tablet PC Edition 支持的笔墨支持特性现已能够在所有版本的 Windows Vista 中实现。Visual Studio 则是基于 Windows 的 UMPC 和 MID 开发环境的常用开发中心。</p>
<p>为了在 Windows XP Tablet PC Edition 2005 或 Windows Vista 上创建出真实的开发环境，您首先要为实现无线连接、屏幕旋转和其它硬件指定操作安装额外的驱动程序。微软还向超便携平台的应用开发人员推荐了以下安装包；除非另有说明，这些安装包均可从 <a href="http://www.microsoft.com/downloads/">http://www.microsoft.com/downloads/* 下载</a>：</p>
<ul>
<li>.NET Framework 3.0（原 WinFX*）运行时组件 Beta 1 </li>
<li>The MSXML 6.0 Parser </li>
<li>Visual Studio 2005 from <a href="http://msdn.microsoft.com/trial">http://msdn.microsoft.com/trial</a>* </li>
<li>面向 .NET Framework 3.0 运行时组件（2005 年 9 月 CTP）的 NET Framework 3.0（原 WinFX）SDK（可实现对 <strong>InkCanvas </strong><strong>对象的访问</strong>） </li>
<li>Visual Studio Extensions for .NET Framework 3.0（原 WinFX）Beta1，能够为标记语言（代号为“XAML”）的开发提供 IntelliSense* 功能 </li>
<li>移动 PC 和 平板 PC 软件开发套件（9 月发布），可用于访问 <strong>InkAnalysis </strong><strong>对象</strong> </li>
</ul>
<p>如欲了解面向 UMPC 和 MID 的 Windows 应用开发的更多信息，请访问微软公司的 <a href="http://msdn2.microsoft.com/en-us/windowsvista/Aa904971.aspx">UMPC 开发人员中心</a></p>
<div class="sectionHeading">专门面向 Linux 平台的开发工具</div>
<p>与Windows 开发人员一样，Linux 开发人员也拥有多种开发工具来辅助其构建 UMPC 或 MID 软件。他们大多会选择使用 <a href="http://www.gnu.org/">GNU 自由软件基金会</a>* 提供的工具，其核心组件包括：</p>
<ul>
<li>GNU 编译器套装（GCC）是一套用于编译 C、C++、Objective-C、Fortran 和 Java 程序的编译器。 </li>
<li>GNU 二进制实用程序（binutils）提供了各种档案链接及管理工具，能够对目标代码、库、描述数据和符号名等进行处理。 </li>
<li>GNU C 库（glibc）是一组标准的 C 语言头文件和库例程，能够实施输入/输出和字符串处理等常见操作。 </li>
<li>PowerTOP • PowerTOP 是一款 Linux 工具，用于找出在计算机处于空闲状态时消耗额外电量的程序。此工具可从 <a href="http://www.lesswatts.org/projects/powertop/">lesswatts.org </a>下载。 </li>
<li><a href="http://www.lesswatts.org/projects/bltk/">Linux Battery Life Toolkit（BLTK）中</a>包含一个测试框架和 6 个示例工作负载。此工具套件框架用于启动工作负载、收集运行期间的统计数据，并汇总测试结果。该框架能够启动任何工作负载，但目前仅包含 6 个示例工作负载：即空闲（Idle）、阅读（Reader）、办公（Office）、DVD 播放（DVD Player）、软件开发（SW Developer）和 3D 游戏（3D-Gamer）。 </li>
</ul>
<p>此外，还有一系列工具可用于完善移动应用的开发环境。例如，<a href="http://www.gnome.org/mobile/">GNOME 移动和嵌入式计划</a>* （GNOME Mobile &amp; Embedded Initiative）就是另一项致力于开发移动开发工具和组件的开放源代码计划。该计划面向多种移动设备，为使用 C、C++ 或 Python 的开发人员提供了各种 API，此外还考虑在 Java* 移动与嵌入式平台（Java ME*）中加入专用组件。</p>
<p><a href="http://www.moblin.org">移动互联网 Linux* 计划</a>*（Mobile Internet Linux Project）是面向移动 Linux 开发人员的又一项开放源代码计划，该计划由英特尔发起，目标是加快跨平台移动 Linux 解决方案的开发速度。目前，围绕该计划发展起来的社区正致力于开发一系列专门工具和组件，以推动 UMPC 和 MID（以及智能手机等移动设备）软件的开发。多家移动 Linux 发行版（如 Ubuntu*、Red Flag 和 Pepper Linux）开发商均参与了此项计划。</p>
<div class="sectionHeading">集成英特尔® 软件开发产品</div>
<p>当主要的开发环境构建完成后，Windows 和 Linux 开发人员就可以利用英特尔® 软件开发产品来加快对 UMPC 和 MID 应用的调试。这些产品专门用于顺利集成流行的开发工具，如 Microsoft Visual Studio 2005* 、Eclipse* 、和 GNU 工具集：</p>
<ul>
<li>英特尔® 编译器能够生成针对英特尔® 处理器进行了高度优化的代码，与同类产品相比，它们一般会自动支持最新的处理器特性，以更快的速度投向市场。在英特尔® 软件网络上《<a href="/en-us/articles/using-the-intel-c-compiler-with-an-ultra-mobile-device">在超便携设备中使用英特尔® C++ 编译器</a>》一文中，您将了解到如何使用英特尔® C++ 编译器来构建程序，以满足超便携设备特定的部署需求。 </li>
<li>英特尔® VTune™ 性能分析器为开发人员提供了全面的性能视角，以及图形化的分析结果显示，能够帮助他们快速找出与特定性能问题相关的程序代码。英特尔® 调试助理（Intel® Tuning Assistant）能够将这些信息集中在一起，并对照参考一个庞大的知识库，针对发现的问题提出有针对性的解决建议。 </li>
<li>英特尔® 性能库提供了可复用的预先构建函数，这些经过优化的函数能够实现无故障的强大操作。英特尔® 集成性能基元中包含音频、视频、图像、密码、语音识别和信号处理函数；英特尔® 数学核心函数库则包含用于工程、科学和财务应用的各种数学函数。 </li>
<li>• 英特尔® 软件开发产品与核心 UMPC/MID 开发环境相结合能够显著加快产品的上市速度，这也是在该新兴产品市场中获得成功的一个重要考虑因素。 </li>
</ul>
<br />
<div class="sectionHeading">结论</div>
<p>众多软件厂商都在考虑如何抓住 UMPC 和 MID 设备带来的商机，目前，他们已经在开发工具方面取得了巨大进展。程序员目前使用的开发环境已为超便携应用的开发打下了良好的基础，而英特尔和第三方厂商提供的其它免费及商业化工具则进一步推动了这项开发工作。</p>
<p>由于 UMPC 和 MID 设备运行各种版本的 Windows 或 Linux 操作系统，因此我们能够通过单一代码库创建出能够在这些设备及传统电脑上运行的软件产品，当然，需要适应不同的设备外形。如欲详细了解如何解决这些问题，以及如何使软件提供出色的用户体验，请参阅配套的白皮书<a href="/en-us/articles/meeting-key-challenges-in-developing-software-for-umpcs-and-mids">《有关UMPC和 MID用软件的开发难题及解决之道》</a>。</p>
<div class="sectionHeading">其它资源</div>
<p>您可围绕如下材料进一步探讨本话题：</p>
<ul>
<li><a href="/en-us/articles/developer-resources-ultra-mobile-software">开发人员资源：超便携软件</a>，集合了各种工具、技术和其它开发人员资源来帮助开发人员改善 MID 和 UMPC 软件的质量，同时提升软件开发效率。 </li>
<li><a href="http://www.intel.com/products/mid/index.htm">英特尔 MID/UMPC 产品页面</a>，对 MID 和 UMPC 的功能进行介绍，并讨论与之相关的商机。 </li>
<li><a href="http://www.intel.com/software/mobile">英特尔® 软件网络移动软件开发社区</a>，汇集了各种与移动领域相关的开发人员信息，其中包括技术文档、软件开发套件、论坛、知识库和博客。 </li>
</ul>
<br />
<div class="sectionHeading">作者简介</div>
<strong><a href="/en-us/articles/author-page-matt-gillespie">Matt Gillespie</a> 是芝加哥地区的独立技术文档作者和编辑，主要关注领域为新兴的硬件和软件技术。在此之前，Matt 在英特尔公司为软件开发人员开展培训课程，他还曾在加州联邦银行互联网技术服务部工作过。在其职业生涯的最初几年，他还从事过金融出版和神经科学领域的作家兼编辑。</strong></div> ]]></description>
      <link>http://software.intel.com/zh-cn/articles/resource-guide-for-the-umpc-software-developer</link>
      <pubDate>Sat, 14 Feb 2009 22:02:11 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/resource-guide-for-the-umpc-software-developer#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/resource-guide-for-the-umpc-software-developer</guid>
      <category>移动软件开发社区</category>
    </item>
    <item>
      <title>支持移动互联网设备的linux操作系统平台上的Intel C++软件开发工具套件</title>
      <description><![CDATA[ Robert Müller-Albrecht 是英特尔的资深产品专家，他的白皮书概述了持移动互联网设备（Mobile Internet Device）的Intel® C++ Software Development Tool Suite for Linux* OS，目标读者主要是技术决策制订者。通过本文，您可以了解到为Moblin以及MID平台开发所需的基本英特尔软件工具的使用方法。<br /> 点击下载<a href="http://software.intel.com/file/14172">中文版本</a>的白皮书或<a href="http://software.intel.com/file/14174">英文版本</a>的白皮书。 ]]></description>
      <link>http://software.intel.com/zh-cn/articles/32074</link>
      <pubDate>Sat, 14 Feb 2009 08:00:40 -0800</pubDate>
      <comments>http://software.intel.com/zh-cn/articles/32074#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/zh-cn/articles/32074</guid>
      <category>移动软件开发社区</category>
      <category>英特尔® 凌动™ 软件开发社区</category>
    </item>
  </channel></rss>