热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【JavaScript】HybridApp开发四大主流移平台分析

转自http:dev.yesky.com23834657738.shtmlHybridApp在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网

转自http://dev.yesky.com/238/34657738.shtml

  Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java、Object-C、C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了。那么究竟什么才是Hybrid App呢?

  Hybrid App概念

  Hybrid App:Hybrid App is a mobile application that is coded in both browser-supported language and computer language. They are available through application distribution platforms such as the Apple App Store, Google Play etc. Usually, they are downloaded from the platform to a target device, such as iPhone, Android phone or Windows Phone. The subscribers need to install to run them.

  总体来讲,Hybrid App是同时采用网页语言与程序语言进行开发,通过不同的应用商店进行打包与分发,应用的特性更接近原生应用而且又区别与Web应用。但是在开发过程中同时使用了网页语言,所以开发成本与难度大大降低。也就是说Hybrid App兼具了Native App与Web App两者的诸多优点。

  浅析Hybrid App

  Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。目前已经有众多Hybrid App开发成功应用,比如百度、网易、街旁等知名移动应用,都是采用Hybrid App开发模式。

  经过众多开发者与成功案例证明Hybrid App兼具了Native App的良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。现在有更多的开发者在面临移动平台的选择,所以在这里根据开发中各个平台的使用情况,针对现在主流的平台进行分析。

  主流移动平台分析

  Hybrid App开发,现阶段主流的平台包括PhoneGap,AppCan,appMobi,Titanium等,它们基于webkit开源内核,使用HTML5 标准开发,适配机型简单,支持开发者自定义插件,并能很好的应用于商业,教育,娱乐等行业,成为移动开发者的首选开发平台。

  PhoneGap(Cordova)

,

  产品功能:

  PhoneGap是一款国外的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,最新版本是2.6.0, 它是基于HTML,CSS和Javascript的,可以使用一些开源的框架比如jQuery Mobile,Dojo Mobile,Sencha Touch等等来提高用户体验,也提供了比较丰富的原生插件调用。

  特性:

  1. 可以使用DreamWeaver 5.5编码,现在使用appMobi提供的xdk 进行模拟器开发。

  2. 代码开源,开发者可以放心使用。

  3. 兼容性,一次开发,多处运行。

  4. 使用JS+HTML5,成本低。

  优点:

  1. Native接口比较丰富,通过封装的API可以直接访问硬件,比如说加速,相机,指南针,GPS,文件访问等。

  2. 接口文档描述非常详细。

  3. 支持平台多,包括iOS,Android,Blackberry,Symbian,bada,Windows Phone 7,Windows Phone 8 等。

  缺点:

  1. 需要针对相应的平台环境配置,进行编译,打包测试,发布等等。由于使用Hybrid 开发的用户群,大部分是web开发者,对原生开发基本不了解,这无疑给每一个开发者增加了沉重的负担,需要对各个平台的开发都要需要了解,对硬件等等都要配置,加大开发成本。

  2. 使用效果启动慢,页面切换响应慢,数据请求慢。

  3. 文档虽比较详细但是基本是英文,对于国内大部分用户英文水平较差的是比较大的挑战。

  4. 因为是国外的框架,技术支持不够到位,出现问题,无法排解,成为技术攻关的难点。

  AppCan

,

  产品功能:

  AppCan是本土移动开发中使用最广的移动平台,网络舆论而言,AppCan是PhoneGap的中国化,但是从对AppCan实际使用,以及转向移动开发的朋友们互相交流反馈,他们是截然不同的两个移动平台,AppCan不仅封装了类似于PhoneGap的本地调用功能,而且封装了uexWindow多窗口机制,实现了移动端的iframe效果,虽然不是开源项目,但一直都有面向开发者的免费版,并且也有定位于企业用户的企业版套装,目前最新版本为2.2.X。

  特性:

  1. 提供的集成开发环境的IDE进行模拟器开发。

  2. 兼容性,一次开发,多处运行。

  3. 使用JS+HTML5 ,成本低。

  4. 在线打包。

  5. 代码加密保护机制。

  优点:

  1. 支持在线上传证书打包,对于不了解苹果,以及Android 环境开发的人是福音。

  2. 支持更多的原生调用,比如UI控件的封装,通讯类(socket),地图,支付宝等更多的原生控件支持。

  3. 拥有统一数据统计平台,便于运营管理开发的应用。

  4. 完善的技术支持,官方论坛以及Q群建设较为完善,使开发者更好的进行交流沟通。

  缺点:

  1. 虽然有中文的开发文档,但描述比较简单,希望他们丰富他们的API文档。

  2. 免费版本不支持自定义插件(据说企业版可以自定义插件)。

  3. 暂时只支持iOS,Android两大平台,不知道什么时候推出Windows Phone 8?

  4. 许多功能需要企业版才能实现,不过是收费的。

  Titanium

,

  产品功能:

  Titanium移动平台是所有移动开发平台中比较另类的,它将Javascript和本地库链接在一起,编译成字节码,针对iOS以及Android两个平台分别构建一个软件包。应用程序使用HTML,Javascript和CSS进行开发,并支持PHP,Ruby和Python。应用程序可以使用 Appcelerator API访问本地特性。并提供Appcelerator Studio开发环境,由于编译成本地代码,所以用户体验是最好的。

  特性:

  1. 针对不同平台生成对应的原生包 。

  2. 供Appcelerator Studio开发。

  优点:

  1. 针对JS解析生成原生控件,基本达到纯原生的用户体验。

  2. 支持自定义插件。

  缺点:

  1. API文档为英文,并且比较简单,对国内用户使用有一定挑战。

  2. 跟PhoneGap 同样,国外框架,技术支持困难。

  3. 支持Android,iOS,黑莓平台。

  4. 环境需要用户自己搭建比较复杂。

  appMobi

,

  产品功能:

  appMobi推出了全新开发工具XDK,这个工具使得开发者可以使用HTML5构建网络和移动平台的应用程序,可以进行屏幕仿真调试、设备实际调试和遥控调试等。

  特性:

  1. 使用XDK 进行开发。

  2. Html5+CSS+JS。

  3. 一次开发,多处运行。

  优点:

  1. 本地接口较为丰富,并且推出有游戏加速引擎,主要包括物理引擎、离线和动态缓存、媒体播放器、验证和加密、增强现实、二维码和QR扫描、更好的显示支持。

  缺点:

  1. 国外框架,技术支持差。

  目前已经有很多移动开发公司把PhoneGap进行了封装,提供打包、快速模板等开发环境。但是由于PhoneGap本身的局限性,如果要做长期的商业项目还有很长的路要走。而国内使用最多的AppCan,它从多个角度多种模式进行开发,可以满足国内从普通网站维护者到Web专业开发者等对于移动应用的需求。加上良好的技术支持,目前已经成为众多开发者的首选框架。而appMobi, Titanium移动平台,不同的用户根据自己的需求也有相应的选择。

  Hybrid App,一个特定时期的特定产品,不同的期望不同的选择。

,

【Javascript】Hybrid App开发 四大主流移平台分析,,

【Javascript】Hybrid App开发 四大主流移平台分析


推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
手机用户2502929967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有