Chinaunix首页 | 论坛 | 博客
  • 博客访问: 522560
  • 博文数量: 1344
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 14890
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-14 20:31
文章分类

全部博文(1344)

文章存档

2010年(1344)

我的朋友

分类:

2010-10-21 02:21:28

目录   自适应应用程序   设计和体系结构   显示区别   适用于本机应用程序的分辨率感知   适用于托管应用程序的分辨率感知   基本设备区别   其他设备区别   测试和进一步探索   当 microsoft 首度发行 pocket pc 2000 时以及在接下来的几年中,开发人员可以相对轻松地编写在所有设备上都运行良好的应用程序。通常,所有设备都具有相同的功能和特征:触摸支持、屏幕分辨率、纵向方向、api 集等等。因此,那时您可以完全将精力投放到自己应用程序的功能上,无需担心设备的这些其他元素,也绝不用担心它们可能会更改。   但更改是不可避免的。随着市场和技术的不断发展,涌现出越来越多的设备,这些设备开始采用不同的设计。不细说这当中的发展,让我们径直看下 2008 年的情况,现在已有 140 多种支持各种不同设计选择的 windows mobile? 电话,这些选择包括 12 键键盘和 qwerty 键盘、直板式和折叠式、是否支持 gps、正方形、纵向和横向屏幕、wi-fi、蓝牙和红外通信以及依设备而不同的其他功能。与 pocket pc 2000 不同,现在客户比较容易就能找到符合其需要、品位和预算的设备。   自适应应用程序   不过,由于 windows mobile 设备的不断多样化,开发人员必须要了解这些设备间的区别,并在应用时考虑哪种最适合。开发人员现在需要构建自适应应用程序,即在所有 windows mobile 设备上正常运行且外观精美的应用程序。   幸运的是,作为操作系统,windows mobile 可在所有设备上提供最一致的任何移动平台的核心 api 集之一。无论设备的移动运营商或硬件制造商是谁,windows mobile 开发人员看到的核心 api 集都是相同的(在多个位置均有设计,以与存在于桌面上的那些 api 集匹配)。   因此,构建自适应应用程序的多数开发人员会发现,处理不同的显示分辨率、每英寸点数 (dpi) 以及方向将成为需要重点关注的方面。对于少数开发人员,设备功能(如电话的存在、gps 等等)的区别、windows mobile 主要版本之间的 api 更改以及设计面向触摸与非触摸设备也是需要考虑的方面。   我将向您介绍一些开发人员可用于构建自适应应用程序的工具和技术。我会介绍一些常规设计和体系结构原理,然后深入介绍有关适应屏幕和功能的区别的详情。   尽管选择构建自适应应用程序时一定会有一些必须加以注意的其他事项,但是预先投资的优势经常远胜于以下方式:针对每个当前(和未来)设备开发和测试应用程序版本,或选择不支持某种设备从而限制可能的用户群。   设计和体系结构   构建自适应应用程序时,遵循经过时间考验的实践和良好的体系结构模式是很重要的。从实践的角度来看,通过认真并明确地确定要求,您可以开始了解自己的应用程序所需的最小设备配置文件。您还可以识别应用程序可以动态使用的可选功能(如果存在)。采取此方法,您可以确保自己的应用程序可以在最多数的设备上运行,而不仅仅限于最常用的几种设备。   举一个简短的示例,假设有人要求我构建一个简单的包裹递送跟踪应用程序。我研究了我的要求,确定需要收集签名以表明包裹已成功传递。实际应用时应将包裹状态上传到服务器以用于联机跟踪,这可作为一项可有可无的功能。由于需要收集签名,我的应用程序将仅限于触摸设备(windows mobile professional 和 classic)。认识到这一点,我现在可以随意使用要求触摸的其他功能(如按钮控件)。   同时,我应注意架构连接组件。例如,如果假设应用程序有权访问蜂窝数据连接,则我无需清除不包含电话但可以包含 wi-fi 的 classic 设备。   最后,您应该注意到,如果我的客户改变主意并删除签名需求,考虑到我随后将使用按钮控件,所以我不必支持非触摸设备 (window mobile standard)。   显示区别   如前所述,屏幕分辨率、dpi 和方向上的差别通常是构建自适应应用程序时最棘手的问题。针对这些差别做打算并仔细考虑体系结构在实现解决方案时也将产生重要影响。   当前支持的 windows mobile 6 分辨率、dpi、方向和图标维度显示在图 1 中。除此之外,microsoft 偶尔会添加新配置、原始设备制造商 (oem) 和移动运营商。有些设备也支持动态屏幕方向旋转。例如,纵向显示为 240×320 的设备可以在键盘滑出时旋转为 320×240 横向显示。 图 1 windows mobile 6 显示选项 windows mobile professional 和 classic(有触摸屏) 分辨率dpi方向小图标大图标 240×24096正方形16×1632×32 240×32096纵向和横向16×1632×32 240×40096纵向和横向16×1632×32 320×320128正方形21×2143×43 480×480192正方形32×3264×64 240×240192纵向和横向32×3264×64 240×240192纵向和横向32×3264×64 windows mobile standard(没有触摸屏) 分辨率dpi方向小图标大图标 176×22096纵向16×1632×32 240×320131纵向和横向22×2244×44 320×320131正方形22×2244×44 240×400131纵向和横向22×2244×44 440×240131横向22×2244×44   相比从前,以下要求更显重要:应用程序不采用一个或多个屏幕特征,而是被编写为能动态适应并支持所有分辨率、方向以及至少 96 dpi 和 131 dpi。(192 dpi 也很重要,但往往限于极少数设备。128 dpi 与 131 dpi 非常接近,不会产生重大问题。)   有多种同时适用于本机和托管应用程序开发的资源和工具,可使此任务更加简单。我将介绍其中一些资源和工具,并分析一些可在构建分辨率感知应用程序过程中使用的常规方法和最佳实践。   适用于本机应用程序的分辨率感知   windows mobile 6 sdk 为使用本机代码编写分辨率感知应用程序提供了两种主要资源:uilayout 示例中的可重用 screenlib 类和 deviceresolutionaware.h 标头。uilayout 示例可在 windows mobile sdk 的 samplescommoncppwin32 目录中找到。deviceresolutionaware.h 安装在 microsoft? visual studio? 安装目录的 vcceatlmfcinclude 目录下。   screenlib 提供了一组帮助函数,用于对齐屏幕上的元素。例如,您可以使用 dockcontrol 函数将给定控件停靠到屏幕某个边缘或所有四个边缘来填充客户端区域。optimizewidth 和 optimizeheight 函数将某个控件(或多个控件 — 对于 optimizewidth 函数)与显示器对齐并调整其大小,左右或上下分别留出一小块边距。提供的其他函数可用于对齐控件和将一组控件调整为相同大小。在这些函数中,当大量使用基于窗体的应用程序时,screenlib 可能最有用。 如果喜欢适用于 windows mobile 的自适应应用程序请收藏或告诉您的好朋友.
阅读(178) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~