phoneGap可行性分析
http://sunny-liang.iteye.com/blog/1452495
1 移动应用现状
移动应用产品往往常常考虑多个平台的支持.单一平台很难保证应用的覆盖面或者换句话说就是用户群体的量和持续的活跃性上从长期的角度而言往往存在短板.另外从开发的角度而言.多平台的支持往往需要建立不同的技术团队.而平台之间开发技术也是完全迥异的. 开发一个具有相同业务的应用Natural-Application需要使用到不同平台的框架和开发语言.使用C/C++ 的 Symbian、使用 Object C 的 iOS 和使用 Java 的 Android 应用开发技术,几乎是完全无法融合的. PhoneGap跨平台移动应用开发框架正是应运而生.
我们需要搞清楚几个概念:Web App,Native App,Hybird App移动平台Application几个概念:
Web App
这个主要是采用统一的标准的HTML,JavaScript.CSS等web技术开发.通过不同平台的浏览器访问来实现跨平台.同时可以通过浏览器支持充分使用HTML5特性,缺点是这些基于浏览器的应用无法调用系统API来实现一些高级功能,也不适合高性能要求的场合.
而PhoneGap正是Hybird APP目前框架中集大成者
phoneGap是Nitobi开发的一个免费开源的开发框架,目前最新版本是1.5,用来构建跨平台的使用HTML,CSS和JavaScript的应用程序。以written once, run everywhere一次编译到处运行而受欢迎,只需要改动少量代码而实现跨平台。
上图是phonegap与jquery mobile结合一起的mobile应用。这样应用都为简单的移动web应用,在国内来说,phonegap的成功案例比较少,目前还处于研究阶段。
要求开发人员掌握html、css、javascript技术,特别要求javascript技术,在javascript基础上需要掌握jQuery mobil框架ajax通讯技术。
日前,phonegap框架热度如火如荼。一项技术当然会有其优缺点,我们是选用phonegap还是选择Native APP,要先分析两者的利弊,再根据具体应用选择,
PhoneGap通过调用JavaSCript 调用API库实现和各个平台的SDK进行无差别的交互. 以达到调用不同平台手机上摄像头,文件系统,重力感应.GPS定位等功能。
phonegap开发人员可以从web开发人员转入,目前来说web开发人员较多,成本也较低,转入phonegap开发后,可以降低移动应用产品的开发成本。这样,移动应用数量将直线提升。
比起传统的Web程序,PhoneGap提供了一些列的JS 的类,可以直接访问硬件。比如加速,相机,指南针,GPS,文件访问等,可以让你用JS方便地调用系统的硬件。以弥补传统Web程序的一块错误。
PhoneGap的架构很复杂,但对于大多数开发者来说,并不需要了解phonegap内部,只用很简单的配置就可以搭好环境。只用专注写好自己的Web页面,拷贝进去就可以了。
另外,html、javascript、css都运行在各平台内置浏览器webkit之上,受到webkit处理速度影响。目前来说运行速度比较慢,性能较差。
如果你的程序需要3D功能,或者对界面刷新有较高的要求,比如类似于游戏的程序现在来说还只是用原生的语言会比较好。PhoneGap支持API还有待在各个平台逐步完善
phonegap应用程序对平台资源的使用依赖于phonegap框架本身,由于phonegap是第三方框架,做不到100%调用平台资源,只有依靠phonegap的升级满足调用平台资源的需求。
有测试表明,用phonegap于android java开发同一个应用。运行phonegap应用内存消耗远大于原生态android java应用。对于频繁操作,释放内存较慢,从而导致内存消耗量飙升。
目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便。调试js只能选择firefox firebug调试。
phonegap可以满足web开发人员转入。但由于html5的新发展,对javascript、css的要求更高。所以开发良好用户体验应用,在开发费用上并不太乐观。
Android应用类型 |
Html5 (phonegap) |
Android java |
功能实现 |
Html + jQuery基础库 |
ListView组件 |
文件大小 |
159KB |
23KB(只用了系统的原生界面) |
内存占用 |
45.37MB(RSS) |
27.02MB(RSS) |
数据通信 |
Ajax |
Apache http Java功能包 |
启动速度 |
打开相同订阅源2.7秒 |
打开相同订阅源2.3秒 |
操作响应速度 |
正常操作速度流畅,频繁操作响应会变慢 |
操作速度流畅 |
稳定性 |
在Monkey测试注入大约4万个事件时,整个应用已经处于空白无响应状态。有连接超时情况发生。手动频繁操作会引起,响应速度变慢,webkit的WebView不能很好释放内存,甚至会引起应用的crash。 |
能较好处理Activity切换延时等待。运行较为流畅。Monkey测试时书签列表页切换时有时候会出现黑色背景,然后再载入列表,比正常速度稍慢。能够比较好的释放内存,没有出现过应用crash的情况。 |
资源占用 |
对于频繁操作时,内存释放不够理想,导致内存占用上升。 |
内存占用相对比较稳定。 |
开发成本 |
运用html + css + javascript开发,适合前端人员开发。由于webkit在不同的终端机发行版本不一样,所以需要针对不同的机型进行适配。同时对于不同屏幕大小在适配上也只能通过Javascript进行控制实现。 |
适合有Java开发经验的程序员,可以充分利用Android提供的组件进行开发。但是开发学习成本较高。 |
开发难度 |
目前phonegap只使用一个WebView,开发时需要使用OPOA的模式,对代码的组织方式及开发方式有较高要求。同时介于手机的资源有限,对如何管理和分配内存提出了要求。目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便。 |
需要有Java开发经验,同时对Android开发体系有较深入的了解。 |
多人协作 |
OPOA模式并不利于多人协作并行开发,只能通过基础的javascript的设计模式来解决多人协作的问题。 |
比较方便支持多人协作并行开发。 |
其它问题 |
1.内存优化:webapp因为是基于浏览器的,而浏览器自身是进行了相应的优化的,所以在图片显示上很不错。 原生app如果在一页中显示比较多的图片的时候,必须比较细致完善的进行内存优化工作,否则极易出现因为图片资源过大而引起的崩溃问题。 2.图片缩放裁切 webapp一般情况下通过js和css来进行缩放裁切。在进行图片动态缩放的时候,页面显示情况不是很正常(抖动,跳跃)。最好的办法是后端服务器对图片处理后再发送给手机端。 原生app可以直接通过java来对图片进行处理。 3.布局 原生app可以利用android提供的特殊技术方案,来自动适应多种分辨率的屏幕。如9png 和多drawable目录。 相当简单方面。 但是在交互方面,原生app的开发量会比较大。 webapp就比较杯具一些了,需要开发者比较多的关注。 可以通过js来动态的获取屏幕尺寸进行资源调整和加载(开发几套不同的ui,然后根据分辨率js动态加载),这个会花费比较多的时间。 4.调试 webapp js调试不太方便,特别是调用外部应用的时候。如果是本应用内部,可以通过firebug进行调试。 |
在用户体验方面。phonegap运行速度相对慢,页面动画切换有点卡,这影响着用户体验。这些原因能否解决,这取结于移动平台的webkit的性能优化和对html、css、javascript的支持程度。
在硬件支持与内存方面。一个应用用两种方式实现,native app消耗内存较低,要求硬件支持较低。phonegap消耗内存较大,内存释放效率较低,因而要求的硬件支持相比之下就高了。
phoneGap可行性分析相关推荐
- phonegap+emberjs+python手机店发展,html5实现本地车类别~
商城开发项目,现在需要做出APP,无奈出场前android但不是很精通.最后选择phonegap实现app. 由于之前办理购物车分为登陆和登陆后两种情况,登录前必须充分利用本地存储.而基于phoneg ...
- phonegap调用摄像头
phonegap的HTML5的代码 是通用的 自己写了个 可是发现 在安卓机上市可以实现拍照的 但是iOS上却不行 这是为什么 我一直不解 document.addEventListe ...
- phonegap android,Phonegap 3不适用于Android Studio
对我来说,这似乎很简单,但我根本做不到. 我已经成功安装了npm install -g phonegap并安装了phonegap. C:\var\www\sexdiaries.co.uk>pho ...
- 使用面向 iOS 的本机插件扩展 PhoneGap
本文细致探讨了 Xcode(以 iOS 设备为目标)中的 PhoneGap(也称为 Apache Cordova)应用程序本机插件.如果您刚开始接触 PhoneGap 或者需要回顾 PhoneGap ...
- phonegap 2.7 ios配置安装详细教程(2.9通用)
原地址:http://www.cnblogs.com/yansi/archive/2013/05/14/3078222.html 在移动开发日益激烈的情况下我也不得不硬着头皮尝试下新鲜的html5的a ...
- 第一个PhoneGap程序以及错误解决
2019独角兽企业重金招聘Python工程师标准>>> 1. 新建一个Android工程. 2.将PhoneGap\phonegap-2.9.0\lib\android下的cordo ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- Android PhoneGap源码分析——白名单
对于单独的Web app应用来说,加载进来的url一般不能保证它的安全性.那么如何来处理url安全性的问题呢. 让我们来看看PhoneGap是如何做的. PhoneGap采用了白名单的形式,认为在白名 ...
- phoneGap+jquery mobile项目经验
最近一个月,一直在用phoneGap+jquery mobile来开发一项目. 下面谈谈自己在开发过程中遇到的一些问题以及解决方法. 开始选择框架时,曾试过采用其他框架做UI,例如chocolat ...
最新文章
- c语言中的字节和元素,C语言指向数组元素的指针
- 10大常见的安全漏洞!你知道吗?
- 背景属性的相关属性设置
- numpy/arrayobject.h”: No such file or directory
- win7 64 pl/sql developer 不能选择database下来框
- IP头、TCP头、UDP头详解以及定义
- 网页中层或菜单被Flash挡住的解决办法
- java类的设计技巧
- 链表(Linked List)之环形链表
- 自学python到什么程度就可以工作-零基础学到什么程度可以找一份python工作?Python学习路线规划...
- Java单元测试用例的编写
- 无纸化办公软件app 快用这款科学处理办公事宜的便签
- CNN卷积神经网络误差反传推导
- GTD时间管理-节假日时间安排 | 每天成就更大成功
- 【汇编程序】编写一个在显示器上显示的一个笑脸字符的程序
- 锤子发新机了,就在2020年10月21日晚,锤子发版新机坚果R2和配套的TNT扩展本
- python趋势外推法
- 实时语音转文字app简易demo(这里使用了阿里的接口,可以替换成科大讯飞)
- mysql 两表拼接_数据库将两张表进行横向连接(拼接成一张表的形式显示)
- Python趣味编程 | 看看如何用Python生成素描风格的自拍照,并且加上Logo
热门文章
- java开发cms视频教程下载地址_Java + MySQL 开发CMS系统实例教程
- 案例-简介小米侧边栏(HTML、CSS)
- 海康VisionMaster绘制图形到显示窗口
- error: The following untracked working tree files would be overwritten by merge:
- 神舟刷蓝天w650dbios_在DOS中给神舟蓝天刷EC和BIOS的通用方法【AMI】
- Ajax到底是什么?
- JavaSE面向对象-笔记
- Linux命令解释之rpm
- php 呼叫中心 源码,FreeSWITCH+Workerman+PHP 搭建呼叫中心
- 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构