手机、桌面和浏览器应用程序开发的差异


  使用 Flex 可以针对以下部署环境开发应用程序: 浏览器
  将应用程序部署为 SWF 文件,以便在运行于浏览器内的 Flash Player 中使用。
  桌面
  针对桌面计算机(例如 Windows 计算机或 Macintosh)部署独立的 AIR 应用程序。
  手机
  针对移动设备(例如手机或平板电脑)部署独立的 AIR 应用程序。
  Flash Player 运行时与 AIR 运行时类似。在两个运行时中可以执行的操作大部分都相同。除允许在浏览器外部署独立的应用程序之外,AIR 还提供与主机平台的紧密集成。通过这种集成可以实现许多功能,例如访问设备的文件系统、创建和处理本地 SQL 数据库,等等。  移动触摸屏设备的应用程序与桌面和浏览器应用程序有以下不同之处: 为了通过触控输入实现简便的操作,手机组件通常具有比桌面或浏览器应用程序中更大的点击区域。  在触摸屏设备上,滚动等操作的交互模式不同。 由于屏幕区域有限,因此手机应用程序通常设计为在屏幕上同时只显示少量的用户界面。  用户界面的设计必须考虑不同设备之间屏幕分辨率的差异。 相较于桌面设备,手机和平板电脑的 CPU 和 GPU 性能更为有限。 由于移动设备上可用内存有限,因此应用程序必须注意节约内存。  手机应用程序可以随时(例如在接听电话或短信时)退出和重新启动。 因此,构建适用于移动设备的应用程序不仅仅是将桌面应用程序缩小为不同的屏幕大小。通过 Flex,您可以针对每个外观因素分别创建适当的用户界面,同时在手机、浏览器和桌面项目之间共享基础模型和数据访问代码。 在 Flex 中创建手机应用程序时,将使用 Spark 组件集。Sprak 组件在 spark.components.* 包中定义。但由于性能原因,或者由于并非所有 Spark 组件都具有手机主题外观,手机应用程序并不支持整个 Spark 组件集。
  除 MX 图表控件和 MX Spacer 控件外,手机应用程序不支持 mx.* 包中定义的 MX 组件集。  下表列出了在手机应用程序中可以使用、不可以使用或需要谨慎使用的组件: 
  组件 组件 能否用在手机程序中? 注释 Spark ActionBar Spark BusyIndicator Spark TabbedViewNavigator Spark TabbedViewNavigatorApplication Spark View Spark ViewMenu Spark ViewNavigator Spark ViewNavigatorApplication 是 这些新组件支持手机应用程序。  Spark Button Spark CheckBox Spark DataGroup Spark Group/HGroup/VGroup/TileGroup Spark Image/BitmapImage Spark Label Spark List Spark RadioButton/RadioButtonGroup Spark SkinnableContainer Spark Scroller Spark TextArea Spark TextInput 是 这些组件大部分都具有手机主题外观。尽管 Label、Image 和 BitmapImage 不具有手机外观,但也可以使用。
  某些 Spark 布局容器(例如 Group 及其子类)不具有外观。因此,可以在手机应用程序中使用这些组件。  其他 Spark Skinnable 组件   建议不要使用 除上面列出的组件外,建议不要使用其它 Skinnable Spark 组件,因为这些组件不具有适用于手机主题的外观。如果组件不具有手机主题外观,您可以为应用程序创建一个外观。  Spark DataGrid  Spark RichEditableText Spark RichText 建议不要使用 出于性能考虑,建议不要使用这些组件。尽管这些组件可以用在手机应用程序中,但这样做会影响性能。
  对于 DataGrid 控件,性能取决于呈示的数据量。对于 RichEditableText 和 RichText 控件,性能取决于文本量及应用程序中的控件数量。  除 Spacer 和图表以外的 MX 组件   否 手机应用程序不支持 MX Button、CheckBox、List、DataGrid 等 MX 组件。这些组件对应于 mx.controls.* 和 mx.containers.* 包中的 Flex 3 组件。  MX Spacer   是 Spacer 不使用外观,因此可以用在手机应用程序中。  MX 图表组件   是,但存在性能隐患 可以在手机应用程序中使用 AreaChart 和 BarChart 等 MX 图表控件。MX 图表控件位于 mx.charts.* 包中。
  但这会导致移动设备无法达到最佳性能,具体取决于图表数据的规模和类型。 
  默认情况下,Flash Builder 的手机项目库路径中不包含 MX 组件。要在应用程序中使用 MX 图表组件,请在库路径中添加 mx.swc 和 charts.swc。 手机应用程序不支持以下 Flex 功能: 由于移动设备在性能方面的局限性,手机应用程序的某些开发环节与浏览器和桌面应用程序的开发不同。下面是一些性能方面的注意事项: 以 ActionScript 编写项呈示器
  开发手机应用程序时,您希望使列表滚动具有尽可能高的性能。以 ActionScript 编写项呈示器可以获得最高的性能。尽管您可以使用 MXML 编写项呈示器,但这样可能会降低应用程序的性能。 
  Flex 提供两个项呈示器,且已优化为适合在手机应用程序中使用:spark.components.LabelItemRenderer 和 spark.components.IconItemRenderer。有关这些项呈示器的更多信息,请参阅结合使用手机项呈示器与 Spark 基于列表的控件。 
  有关以 ActionScript 创建自定义项呈示器的更多信息,请参阅自定义 Spark 项呈示器。有关手机和桌面项呈示器之间不同点的更多信息,请参阅手机和桌面项呈示器之间的不同点。 使用 ActionScript 和已编译的 FXG 图形或位图开发自定义外观
  Flex 附带的手机外观采用 ActionScript 编写,带有已编译的 FXG 图形,可提供最高的性能。您可以使用 MXML 编写外观,但应用程序的性能可能会有所降低,具体取决于使用 MXML 外观的组件数量。要获得最高的性能,请以 ActionScript 编写外观并使用已编译的 FXG 图形。有关更多信息,请参阅设置 Spark 外观以及 FXG 和 MXML 图形。 使用不依赖文本布局框架 (TLF) 的文本组件
  许多 Spark 文本控件都依赖 TLF。如果在手机应用程序中使用 TLF 控件,会使性能受到影响。有关 TLF 的更多信息,请参阅关于 Sprak 文本控件。 
  Spark Label 控件不依赖 TLF。Spark TextInput 和 TextArea 控件具有不依赖 TLF 的手机主题外观。为获得最佳效果,请在应用程序中使用 Label、TextInput 和 TextArea 控件,但在编写自定义项呈示器时不要使用这些控件。在自定义项呈示器中,请使用 StyleableTextField 控件。有关更多信息,请参阅自定义 Spark 项呈示器。 
  Spark RichText 和 RichEditableText 依赖 TLF。使用这些控件可以显示丰富的内容,但会影响性能。  在手机应用程序中谨慎使用 MX 图表组件
  可以在手机应用程序中使用 AreaChart 和 BarChart 等 MX 图表控件。但它们会影响性能,具体取决于图表数据的规模和类型。 

猜你喜欢

转载自wangangie28.iteye.com/blog/1572501