• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 建筑房产 > 正文

    智能手机客户端应用技术浅析

    时间:2020-09-18 08:01:30 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:Symbian操作系统占有大额的智能手机终端市场,Symbian C++应用程序开发难度较高,融入了多种平台特性。Windows Mobile是微软主推的智能手机应用平台,传统的Windows程序员可以比较轻松的完成由PC客户端至手机客户端开发的过渡。Android智能平台由Google公司主导,基于Linux嵌入式内核,融合大量成熟的基础类库,上层应用基于Java开发,难度较小,市场未来值得关注。

    关键词:智能手机;操作系统;Symbian;Windows Mobile;Android

    中图分类号:TP316文献标识码:A文章编号:1009-2374 (2010)12-0049-02

    一、背景介绍

    随着3G技术的推广和移动互联网的普及,手机端应用逐渐走向大众生活。移动互联网依靠其庞大的用户基础——超出Internet用户数量,成为IT界新兴的应用领域。除了基本的上网、彩信服务之外,基于手机平台的客户端软件层出不穷,主要集中在手机阅读、手机游戏、手机杀毒、手机社区等应用领域。

    手机客户端与传统的PC机不同,大量的厂商分别基于自己的操作系统平台构建手机应用。文章将手机客户端应用技术分为两类:平台级技术和通用技术,其中通用技术较为普及,一般采用J2ME作为开发方法,而围绕平台级技术的讨论较少,文章将给出典型的平台级应用技术代表,探讨其实现手机客户端软件的方式方法。

    二、平台级客户端技术

    不同厂商智能移动客户端采用不同的操作系统平台,其中,国内市场主要涉及的智能手机操作系统有:Symbian、Windows Mobile和Android。

    (一)Symbian

    Symbian中的应用程序通常分为两个部分:Engine和UI,Engine是程序的核心,它主要处理运算和数据,而UI主要处理数据的显示和所有行为,客户端应用程序的开发主要和UI相关。Symbian的UI可以分为传统控制体系结构、基于对话框的体系结构和视图体系结构。

    Symbian OS应用程序是在CCoeControl类的基础上继承出自身View和Controls,将之存放在应用程序的Control Stack中。这些Controls会根据应用程序的需要来创建释放或显示隐藏,以产生相应的操作。如果主体应用是对话框,应该使用基于对话框的体系结构,使用Dialogs的好处是可以靠编辑Resource文件来修改内容和布局,而不需要重新编译那些C++代码。使用View的应用程序每次只能有一个活动的View,当另一个View要激活时,当前的View就要被释放。当一个View被释放后,所有的菜单、对话框以及包含的应用都将被关闭。每个View都被当作一个应用UI对待,它必须提供Id()函数以便为系统所标识,它也要重载Do ActivateL(),Do Deactivate(),Handle Foreground EventL(),Handl CommandL()和Handle Status Pane Size Change()函数以处理各种事件。

    Symbian操作系统中的应用程序开发,使用C++语言,然而Symbian C++与标准的C++却不完全相同。例如,C++中的构造函数在Symbian C++中使用两段构造机制取代;new运算符需要和清除栈机制一并使用;普通平台的多线程机制在Symbian系统中使用活动对象模拟实现。所有的特殊机制的建立,旨在资源宝贵的嵌入式操作系统中正确的运行应用程序。

    开发阶段,可以使用模拟器调试程序。应用程序安装之前,被打包成Sis文件,Series602.0应用可以直接安装,而Series603.0(及以后版本)和UIQ程序必须经过官方签名之后(Symbian Signed),才可以安装于真机之上。

    (二)Windows Mobile

    Windows Mobile是Microsoft用于Pocket PC和Smart phone的软件平台。微软将熟悉的Windows桌面扩展到了个人设备中。考虑Pocket PC和Smart phone的主要使用特性方面:Smart phone主要是在格式因素和使用两方面作为一种电话设备而设计的。它经过良好的微调,可以用于发出和接收呼叫,并且还可以作为消息处理设备;Pocket PC主要是作为一种小型个人计算机而设计的,对于查看和管理数据与增强消息处理而言很不错。单纯就手机而言,基于Pocket PC的手机居多,大多采用触屏式设计,而基于Smart Phone的手机市场份额较小,通常支持硬件键盘。

    考虑Windows Mobile上的应用开发,当提及MFC、VS2003/2005等概念时,开发人员会自然联想到传统的Windows应用程序开发。的确,Windows Mobile上的应用程序与传统的Windows应用程序差别不大。开发人员可以基于MFC构建对话框应用或者Document-View结构的应用程序。Windows Mobile沿用了“消息传递”的应用程序开发机制:不同的UI对象(窗体)之间,彼此掌握对方的Handle,经由标准的或自定义的Windows消息传递程序信息。具体应用领域、标准的Win Socket、DLL和多线程机制均可以应用于Mobile平台。

    与传统PC端的Windows应用不同的是,Windows Mobile手机端应用开发需要考虑其硬件环境,例如:键值的获取和设定、电话模块、短信模块等。同时应该注意,微软官方提供的SDK帮助中,有大量的开发示例,其中很大一部分程序并没有采用MFC类库,而是标准的Windows开发模式,且使用了大量的goto语句,参考时应该尽量领会其意义,并改写为结构化代码。

    与Symbian系统相同,Windows Mobile开发的程序也需要通过签名认证,二者的区别是:未签名的Symbian程序严格禁止安装,而Windows Mobile程序仅仅会提示安装风险。

    (三)Android

    Android一词的本义指“机器人”,Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。虽然目前国内基于Android系统的移动客户端和应用程序尚不多见,但考虑Google公司的大力推广,Android存在光明的未来。

    Android是基于Linux内核的软件平台和操作系统。采用了软件堆层 (Software Stack)的架构,主要分为三部分:底层以Linux核心为基础,由C语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序、短信程序等,应用软件则由各公司自行开发,以Java编写。

    除了熟悉的Linux底层内涵,就中间层而言,Android集成了大量的优秀类库:Sqlite,开放的单机文件数据库系统、OpenGL、图形图像处理库、Media Framework、媒体格式制作库等。因此,基于Android的应用具有良好的开发技术积累,同时,最上端的应用程序曾采用Java语言也降低了应用程序开发的难度。

    三、J2ME通用技术

    J2ME是通用手机客户端开发技术,特别在手机游戏领域,占有市场垄断地位。J2ME是Java2的一个组成部分,官方将其定位成一种高度优化的Java运行环境,主要针对消费类电子设备的解决方案。

    J2ME运行环境和目标十分多样化,而且资源限制也十分严格。为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J2ME的架构分为Configuration、Profile和Optional Packages。它们的组合取舍形成了具体的运行环境。Configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了虚拟机特性和基本的类库;Profile建立在Configuration基础之上,一起构成了完整的运行环境。它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和API;而Optional Package提供附加的、模块化的和更为多样化的功能。

    J2ME技术的普及,使得J2ME开发存在良好的程序员基础和开发环境支持,因此,开发过程较平台级客户端技术简单。更大嵌入式系统提供商一方面极力支持Java技术,另一方面又对Java屏蔽底层接口,所以,J2ME仅适用于上层应用开发,不能够实现手机底层模块操作。

    四、结语

    本文介绍了三种常见的智能手机开发平台,其特点和区别见表1:

    表1 三种智能手机平台开发对比

    平台语言开源难度市场份额

    SymbianSymbianC++部分开源高高

    Windows MobileC++,C#不开源中较高

    AndroidJava开源中未来可观

    无论采用哪种平台,未来市场中,智能手机的普及和手机客户端应用的推广必然是大势所趋。也应该注意,与Windows PC平台应用相比,智能手机客户端的开发难度更高,需要考虑屏幕适配和平台移植问题。

    参考文献

    [1]Nokia.Designing CPP Applications for Series 60 Nokia[EB/OL].http///info/sw.nokia.com/pdf.html.2009.

    [2]Baidu.Android[EB/OL].http://baike.baidu.com/view/1241829.htm.

    作者简介:侯勇 (1979-),男,河南郑州人,河南经贸职业学院助教,硕士,研究方向:嵌入式系统、网络通信。

    相关热词搜索: 浅析 智能手机 应用技术 客户端

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网