`

跨平台手机软件开发技术纵览

 
阅读更多

随着苹果手机应用商店的成功,中移动、电信和联通也纷纷推出自己的手机应用商城,51CTO曾多次报道《中国三大电信运营商转战“软件商店”》的消息。可以说,进行手机应用软件开发已成为一个潮流。但有一个问题一直困扰着广大开发人员:作为一名开发者,开发支持多个手机平台(没有一个绝对领先者、需要漫长的学习过程)的软件需要高昂的成本。终于,这一问题有望得到解决。

开端

 

      当手持电脑刚步入主流的时候,开发者只有一个选择:Palm Pilot。仅仅过了五年,他们又不得不考虑塞班和Pocket PC (亦即后来的Windows Mobile)。截至2009年,已经至少有八个智能手机平台:两个Windows Mobile版本,两个黑莓版本, iPhone,Android,塞班,和webOS,更别提那些运行Java程序的传统功能手机。

 

影响

开发者不得不在操作系统中做出艰难的选择。更要命的是用户越来越分散,呼吁不同版本的软件,没有一个操作系统绝对领先。直到几个月前,他们还只有一个选择:为不同的手机平台单独开发软件,选择支持哪些平台,花费巨额费用,而得到的回报是一个未知数。

但是,这一问题正在发生变化。开发者有三个办法可以实现跨平台开发。技术虽然尚不成熟,但进展会很快。

HTML 5和手机网

第一个选择就是开发手机网页版软件。可以访问本地数据库的HTML 5让这一点成为可能。目前的问题有两个:第一,HTML 5的普及性;第二,用户是否愿意把HTML 5当成一种标准。第一个问题可以通过时间和来自其它操作系统平台的压力得以解决,而第二个问题是个大问题,用户接受网页版软件需要一个心理变化过程。

Flash

Adobe最近宣布进军移动领域,推出了支持大部分平台的Flash浏览器,以及一个“Flash到iPhone软件”编译器。这样,开发者只需在flash里编写所有软件,然后通过编译软件在多种手机浏览器上部署就可以了。

这也面临着HTML 5的问题,因为用户接受在浏览器内运行软件需要一个适应过程。此外,苹果反对在浏览器中使用Flash的强硬立场也是一个巨大障碍,因为需要两个完全不同的创建过程。

要想Flash得到普及,操作系统厂家不得不对网页版软件和非网页版软件一视同仁。

JavaScript和本地软件

有一类新的软件正在崛起,这些本地软件针对特定平台汇编,但使用用户界面的网页技术。这种方法潜力最大。最著名的要算PhoneGap。其它同类软件还包括Appcelerator和Rhomobile(使用Ruby on Rails网页语言)。

这些开源技术都允许开发者使用本地代码编写后台过程,然后利用HTML,CSS和JavaScript开发用户界面,然后把该软件编译成本地软件,然后上传到软件商店,通过下载安装进行发布。

但是手机开发的最大问题不是后端。所有平台的骨干部分都基于C或Java,问题在于开发用户界面需要深入了解各种手机。跨平台界面开发技术解决了大部分此类问题。该技术的唯一不足就是跨平台软件看上去不那么“本地化”,需要高超的设计和CSS技巧。

结论

随着智能手机行业的不断发展,我们很难看到一个绝对领先者(不同于PC领域),因而,开发者不得不针对多种平台开发软件。但是,现在有了跨平台开发技术,开发者可以大大降低开发成本,缩短学习过程。

这些技术目前处于早期阶段,但这是大势所趋。Flash,HTML 5和JavaScript将让“一次编写,处处通用”变为现实;届时,跨平台的手机应用软件开发将成为现实。

分享到:
评论
1 楼 jingleyan 2014-10-21  
[b][/b][i][/i][u][/u]
引用
[img][/img][url][/url][flash=200,200][/flash]

相关推荐

    软件开发辅助工具纵览

    软件开发的过程中,利用一些辅助软件可以方便软件的开发,提高开发的效率和质量。 本文对目前应用最广泛的开发辅助软件进行一个系统的简要介绍

    网上信息抽取技术纵览

    网上信息抽取技术纵览,从各个方面讲解了当下留香的网上信息抽取技术。

    华为软件开发过程规范

    ### 华为软件开发过程规范知识点解析 #### 一、软件开发过程规范概述 **目的:** 本规范旨在为软件产品的开发提供一个清晰、明确、具体的框架,以便于实现规范化、系统化及工程化管理。这有助于提升软件生命周期的...

    量子信息技术纵览.pptx

    量子信息技术纵览 量子信息技术是基于量子力学原理的信息处理技术,具有巨大的优势和潜力,正在改变我们的生活和工作方式。本篇文章将对量子信息技术的基本概念、量子计算机、量子加密、从实验室到市场的商业化挑战...

    java语言纵览

    总之,Java语言以其跨平台、面向对象、健壮性等特性,成为开发者的重要工具,无论是在桌面应用、移动应用还是企业级应用开发中,都有着不可替代的地位。随着技术的不断进步,Java将继续在软件开发领域扮演重要角色。

    软件开发过程规范

    - **目的**:本规范旨在明确软件开发的各个阶段,确保项目管理、技术活动等方面的高度规范性,以此来提高软件产品的质量,缩短开发周期,降低开发与维护成本,并通过规范化管理提升软件开发的效率与成功率。...

    软件开发过程规范(软件工程)

    ### 软件开发过程规范(软件工程) #### 一、引言 1. **目的**:本规范...以上是对软件开发过程规范(软件工程)的详细介绍,涵盖了技术过程和管理过程的关键内容,旨在帮助项目团队有效地管理和执行软件开发项目。

    单片机在线编程技术纵览.pdf

    2. **更充足的产品软件开发与调试时间**:随着烧录时机的延迟,软件开发与调试的时间变得更加充裕。 3. **支持软件开发外包**:通过适当的方式,可以在不损害知识产权的前提下与外部合作伙伴共享项目。 4. **降低...

    现在网络安全技术纵览

    21世纪全世界的计算机都将通过Internet联到一起,随着Internet的发展,网络丰富的信息资源给用户带来了极大的方便,但同时也给上网用户带来了安全问题。由于Internet的开放性和超越组织与国界等特点,使它在安全性上...

    2022年中国大数据产业一级市场纵览(32页).pdf

    报告可能会提及当前热门技术的应用,包括大数据处理框架、分布式存储、实时分析技术、大数据集成和管理平台等。 8. 应用案例:大数据在多个行业中的应用案例分析对于了解市场实际情况很有帮助。这些案例可能包括...

    微软虚拟化技术纵览系列之一:微软虚拟化解决方案概览

    微软虚拟化技术是现代IT环境中不可或缺的一部分,它允许企业在一台物理服务器上运行多个独立的虚拟机,从而提高硬件利用率,简化管理,降低成本,并提供更好的业务连续性和灾难恢复能力。本篇将聚焦微软的虚拟化解决...

    软件加密技术内幕

    第5章 软件加密技术 5.1 反调试技术(Anti-Debug) 5.1.1 句柄检测 5.1.2 SoftICE后门指令 5.1.3 int68子类型 5.1.4 ICECream子类型 5.1.5 判断NTICE服务是否运行 5.1.6 INT 1 检测 5.1.7 利用...

    1 微积分纵览

    总的来说,"微积分纵览"这个课件将带领学生全面地探索微积分的世界,通过理论讲解和实例分析,帮助他们建立起微积分的概念框架,并熟练运用微积分的方法解决实际问题。国防工业大学的这门课程将为学生打下坚实的数学...

    iphone OS 纵览(apple开发人员guide book)

    ### iPhone OS纵览 (Apple开发人员Guide Book) #### 一、引言 在《iPhone OS纵览》这一章节中,Apple官方提供了对于iPhone操作系统(现称为iOS)的基础介绍和技术概述。该文档旨在帮助开发者理解iOS的基本架构、...

    创造客户价值——Linux解决方案中心纵览.pdf

    这些中心集合了专业的技术团队、完善的基础设施、丰富的设备支持和高质量的咨询服务,帮助最终用户和独立软件开发商(ISV)构建基于Linux的新一代企业技术平台。 IBM公司的Linux解决方案合作中心是一个典型的例子,它...

    UML语言纵览

    ### UML语言纵览——类图详解 #### 一、引言 统一建模语言(Unified Modeling Language,简称UML)是一种广泛应用于软件工程...掌握类图不仅有助于提高团队间的沟通效率,还能增强软件开发过程的规范性和可维护性。

    淘宝开发平台 Golang SDK, 集成简单快捷,也可以快速添加本SDK没有集成的接口 .rar

    大部分的集成开发环境都针对一种特点的语言,goland是JetBrains开发的一款针对go语言的跨平台IDE。支持windows、macOS与Ubuntu平台。 因为专注,所以专业,goland为go程序提供了强大的支持。 语法高亮是必不可少的功能...

    软件加密技术内幕 软件加密技术内幕

    1.1 PE文件格式格式纵览 1.2 PE文件结构 第2章 PE分析工具编写 2.1 文件格式检查 2.2 FileHeader和OptionalHeader内容的读取 2.3 得到数据目录(Data Dircetory)信息 2.4 得到块表(SectionTable)信息 2.5 得到输出表...

Global site tag (gtag.js) - Google Analytics